Still In It

METHODOLOGY

Where probabilities come from

Match-level probabilities are anchored to real-money prediction-market prices from Kalshi (kalshi.com), a regulated US prediction-market exchange. Specifically, we use Kalshi's group qualifier markets — binary contracts of the form “Will Mexico advance from Group A?” — which directly price each team's probability of finishing in the top 2 (or as one of the 8 best third-placed teams). We fetch these via Kalshi's free public API and take the mid-price between the bid and ask for each team. Because these are independent binary contracts rather than a mutually-exclusive set, no per-group normalisation is needed.

Because Kalshi lists group-level markets rather than per-match markets, we use a FIFA-ranking logistic heuristic to seed match-level win/draw/loss probabilities, then run an Iterative Proportional Fitting (IPF) calibration loop: we simulate each group, compare our P(finish top 2) against Kalshi's advancement prices, scale the match odds to close the gap, and repeat (up to 5 iterations, tolerance 2 percentage points). This directly pins the 2nd/3rd-place boundary — the boundary that decides round-of-32 qualification — rather than just the top of each group. If the calibration gap remains above 10 percentage points after convergence, we blend the result 50/50 back toward the heuristic prior to avoid emitting unreliable odds.

✅ Current calibration gap: ≤0.0 pp across all groups — our sim tracks Kalshi prices closely.

How city probabilities are computed

We run 10,000 Monte Carlo simulations of the remaining group stage each time fresh prices arrive or a match result lands. In each run we sample a W/D/L outcome for every unplayed match from the calibrated probabilities, compute all 12 group standings using FIFA's official tiebreaker rules (points → goal difference → goals → head-to-head → fair play → FIFA ranking), and route every team through the official bracket — including the Annex C rules that determine which best-third-placed teams play where. City probabilities are the fraction of runs where a team plays in each city.

During live matches, Kalshi's in-play market prices already reflect the current score and time remaining, so re-polling and re-simulating is enough to produce updated live probabilities. The live badge on team pages tells you whether you're seeing market-implied numbers or a “if current scores hold” estimate when the market data is temporarily unavailable.

Booking guidance

Group-stage matches are always labelled “✅ Confirmed — safe to book” because venues and dates are fixed regardless of results. Knockout stops say “🔒 Locked in” only when mathematically guaranteed. Everything else is probabilistic — book refundable tickets until a stop locks in. City probability bars above 40% are shown in green; 20–40% in amber; below that in grey. These are informational market-implied probabilities, not betting advice. No betting links are displayed anywhere on this site.

Data freshness

Probabilities are refreshed every 60 minutes. During live matches the refresh cadence drops to every minute. User page loads never trigger external API calls — you're always reading from a pre-computed cached result. All times shown are UTC.

Last computed: Tue, 28 Jul 2026 20:50:17 GMT · Odds as of: Tue, 28 Jul 2026 20:50:10 GMT · 10,000 simulation runs

Probabilities informed by prediction-market prices from Kalshi (kalshi.com). Still In It is an unofficial fan site, not affiliated with FIFA, Kalshi, or any bookmaker. Display shows only derived simulation outputs — raw market price feeds are not shown.