An interactive Monte Carlo over the FIFA World Cup 2026 Random Selection Draw — calibrated against my own two applications.
In the first week of January 2026 I placed several bets in the FIFA World Cup 2026 Random Selection Draw. The two applications below are representative of those bets — one low-demand group-stage match (selected) and one quarterfinal (not selected) — chosen because they bracket the interesting range of per-match demand. After the draw closed I started wondering: what were the actual odds on each, given how lopsided the demand was across matches?
FIFA published two useful aggregate numbers and almost nothing else:
Per-match counts were never released. So the modeling problem is: given those aggregates and a few well-defined unknowns, can we put a credible interval on the probability of winning a specific application? Yes — and you don't need anything more sophisticated than a Monte Carlo over informed priors. Drag the sliders below to play with the assumptions; the histogram, heatmap, and credible intervals re-render live.
Illustrative of the bets placed; not an exhaustive list. Outcomes shown for these two are real and used as the data point the page reasons about.
| Match | Date | Venue | Cat | Tickets | Price | Result |
|---|---|---|---|---|---|---|
| M5: Haiti vs Scotland | Sat 13 Jun, 21:00 | Gillette | 3 | 1 | $180 | ✅ Selected |
| M97: Quarterfinal | Thu 9 Jul, 16:00 | Gillette | 3 | 1 | $650 | ❌ Not selected |
where
q — tickets requested per application (capped at 4 per match by FIFA)T_cat = capacity × public-pool fraction × category supply shareD_cat = total match demand × category demand shareThat's the whole thing. Everything interesting is in how you put priors on the four inputs — and in respecting two anchors FIFA did publish (500M total demand, 77/104 matches over 1M).
| Input | Source | How I treat it |
|---|---|---|
| Stadium capacity | FIFA published | Fixed (Gillette: 65,878) |
| Public-pool fraction | Industry rule of thumb | Prior centered at 65%, with uncertainty |
| Pre-sale drainage | FIFA: "nearly 2M tickets sold before phase 3" | Prior centered at 20% drainage of T_cat |
| Cat 3 supply share | Logical (largest tier) | Prior centered at 35% |
| Cat 3 demand share | Cheap-tier downgrade behaviour | Interpolates 40% (low-demand) → 55% (high-demand) |
| Per-match demand | Unpublished | M5 lognormal at 800k; M97 at 5M; rescaled per-iteration to the 500M anchor |
| q-rule | Unspecified by FIFA | Toggleable: linear-in-q or application-equal |
10,000 worlds. Each input has a prior; the output is a distribution of P(win), which is the honest answer.
P(win) for Cat 3, 1 ticket — under your current slider settings (drainage, cd-interpolation, and q-rule are all respected). My two matches are plotted as points.
I applied for one ticket per match, two total. The 40-ticket aggregate cap doesn't bind here, so the two draws can be treated as independent. If you'd applied for many tickets across many matches, you'd want a sequential-draw correction — at the cap, your earlier wins reduce your remaining lottery participation. Most of this page is conditioned on q=1 per application and the model is honest about that.
Expected wins across the two representative applications under the median model: —. Observed: 1 of 2. The observed configuration (selected on the low-demand match, not on the quarterfinal) is the second-most-likely outcome under the central model — not strongly evidence-of nor evidence-against. With only two data points the prior dominates; the data weakly tilts toward demand being a touch lower than central.
| # | Assumption | Value / status |
|---|---|---|
| A. Lottery mechanics | ||
| A1 | Selection uniform random within (match, category) | Asserted by FIFA |
| A2 | All applications equally weighted in Random Selection Draw | Implied by FIFA's "open to anyone" framing |
| A3 | Outcomes independent across matches for one applicant | Tight at q_total ≪ 40 |
| A4 | P(win) is linear in q (tickets per app) | Toggleable above; truth is somewhere between linear and app-equal |
| A5 | All-or-nothing: app wins all q tickets or none | Standard FWC behavior |
| B. Supply (per match, public pool) | ||
| B1 | Public-pool fraction | 0.65 default, 0.40–0.80 range |
| B2 | Cat 3 supply share | 0.35 default, 0.20–0.50 range |
| B3 | Supply shares constant across matches/stages | Acknowledged limitation; KO matches likely shift toward Cat 1/2 |
| B4 | Pre-sale drainage of T_cat | 20% default, 0–40% (now modeled) |
| B5 | Cat 4 (host residents only) is a separate sub-pool | Carved out |
| C. Demand (per match) | ||
| C1 | M5 (Haiti vs Scotland) total ticket-requests | Lognormal centered at 800k, σ=0.5 |
| C2 | M97 (Quarterfinal) total ticket-requests | Lognormal centered at 5M, σ=0.4 |
| C3 | Cat 3 demand share | 40% (low-demand) → 55% (high-demand), interpolated |
| C4 | Demand-share covariance with match popularity | Modeled (now) |
| C5 | Σ demand_i across 104 matches ≈ 500M | Enforced via per-iteration rescaling (now) |
| C6 | "Effective" demand = reported demand | Open question — likely overstates by 10–30% (bots, duplicates) |
| D. Application specifics (for the two representative bets) | ||
| D1 | Cat 3 application | True for both representative bets |
| D2 | 1 ticket per application (q=1) | True for both representative bets |
| D3 | Downgrade acceptance | Accepted, not modeled (small upward bias on P) |
| D4 | Two applications independent | Tight at the q-totals shown |
| E. Modeling choices | ||
| E1 | Lognormal demand priors | Right-skewed count data; σ values eyeballed |
| E2 | Truncated normals for fractions | Bounded, symmetric |
| E3 | 10,000 Monte Carlo samples | Stable to ~0.1pp on quantiles |
| E4 | No Bayesian update from observed outcome | N=2 too weak; prior dominates |
| E5 | Heatmap fixed at Cat 3, q=1 | Generalization needs small-multiples |
| F. Calibration anchors | ||
| F1 | 500M+ total ticket requests (FIFA, Jan 2026) | Used as global sum constraint |
| F2 | 77 of 104 matches received 1M+ requests | Used to size below/above-1M buckets |
| F3 | Top applicant nations: hosts + Germany, England, Brazil, Spain, Portugal, Argentina, Colombia | Qualitative input to M5 prior (neither team in top 7) |
| F4 | Gillette Stadium capacity 65,878 | Public |
| F5 | "Nearly 2M tickets sold before phase 3" | Used to set pre-sale drainage default |
The single biggest unknown in this model is per-match demand. FIFA may publish post-tournament attendance and sales-by-match data — if any of that becomes public, the natural next step is a proper Bayesian update: sample the prior, compute the likelihood from observed sell-through, post the updated probability. That'll meaningfully tighten the credible intervals here, and may force a real shift on the central estimates if FIFA's released numbers diverge from these priors.
Other follow-ups, in rough order of effect: