JUICEBET Aviator challenge builder & cost simulator
snapshot
How this tool works
  1. It estimates how many players will complete an Aviator challenge and what it will cost, using a frozen 30-day snapshot of real JuiceBet Aviator play (game 7787). It runs entirely in your browser and does not connect to Metabase live.
  2. Build the challenge in the Tasks panel: add one or more of the six Spribe task types and set your own targets. For catch multiplier, set the multiplier and how many times. Multiple tasks must all be completed.
  3. Pick the format. Race = limited prizes, first to complete win, cost capped at the pool. Mission = everyone who completes gets paid.
  4. Set the assumptions — active players in the window, window length, opt-in rate, own-funds turnover floor, free-bet cost factor, runs per week.
  5. Read the results. Winners or demand, who misses out (Race), expected and worst-case cost, and a chart of which activity tiers your winners come from.

Accuracy: catch multiplier, total bet number and total bet amount are modelled exactly. Sum of multipliers, total win and total net profit are game-variance approximations, marked “approx”. Keeping current: the snapshot date is shown top-right; click “Update data”, paste a fresh Metabase pull (query included) and apply — or ask Claude to re-pull.

Format

Tasks — all must be completed

Add any of the six Spribe task types and set your own targets.

Prizes

Audience & assumptions

Opt-in rate85%
Free-bet cost factor70%

Where the winners come from

Estimated daily completions by player activity (bets per day)

Completions concentrate in the highest-activity buckets.

Update data — keep the model current as you grow

Embedded baseline: Aviator (game 7787), last 30 days. Refresh by running the query in Metabase, or ask Claude to re-pull, then paste updated JSON and apply. Data stays in this file.

Metabase query used
WITH pd AS (
  SELECT customer_id, played_date::date AS d, COUNT(*) AS bets,
         SUM(played_amount_from_balance) AS stake_bal
  FROM casino_customer_bets
  WHERE csn_game_id = 7787 AND played_date >= CURRENT_DATE - INTERVAL '30 days'
  GROUP BY customer_id, played_date::date
), b AS (
  SELECT *, CASE WHEN bets<=2 THEN '1–2' WHEN bets<=5 THEN '3–5'
    WHEN bets<=10 THEN '6–10' WHEN bets<=20 THEN '11–20' WHEN bets<=40 THEN '21–40'
    WHEN bets<=75 THEN '41–75' WHEN bets<=150 THEN '76–150' WHEN bets<=300 THEN '151–300'
    WHEN bets<=600 THEN '301–600' ELSE '600+' END AS bucket FROM pd
)
SELECT bucket, COUNT(*) AS player_days,
  ROUND(100.0*COUNT(*)/SUM(COUNT(*)) OVER (),1) AS pct,
  ROUND(AVG(bets)) AS avg_bets, ROUND(AVG(stake_bal/NULLIF(bets,0))) AS avg_stake
FROM b GROUP BY bucket ORDER BY MIN(bets);