Title odds · who wins the World Cup?
▾Each team's chance to lift the trophy, from 20,000 simulations of the whole tournament — every remaining group match sampled from the model, then the verified knockout bracket played out (ties resolved by extra-time/penalty coin-flip).
What the model learned · team strength
▾Latent attack and defense strengths (posterior means, ranked by overall quality). These are the parameters the model fits from goals — the reason behind every projected scoreline. Bars are relative to the WC2026 field.
Group A
▾Group B
▾Group C
▾Group D
▾Group E
▾Group F
▾Group G
▾Group H
▾Group I
▾Group J
▾Group K
▾Group L
▾Upcoming matches
chronological · soonest firstNothing here yet.
Results
chronological · every played matchKnockout bracket
The verified WC2026 knockout tree. Empty slots show the model's projected qualifier (top two per group by chance to advance); Best 3rd-placed slots are cross-group and filled once the eight qualifying third places are known.
Best Bets
No open bets — the tournament is down to two games and both markets are efficient. FINAL, Spain v Argentina: the model leans Argentina (52% to lift the cup, on the Dibu Martínez shootout edge + reigning-champ pedigree), but Polymarket favours SPAIN 59% — and that's the defensible number: Spain have been the tournament's best side (6+ clean sheets, beat France 2-0 in the semi), which a goals-only model under-weights. The model's Argentina lean is most likely its blind spot, not an edge → Pass (Argentina's shootout dominance keeps the trophy genuinely live in the ~29% of finals that reach penalties). 3RD PLACE, France v England: the model likes England (40% vs France's ~50% market), but it's a low-stakes bronze game → Pass. ✓ Tournament track record: R16 calls England-to-advance (Mexico 2-3 England) and Belgium-to-advance (USA 1-4 Belgium) both WON; the QF/SF slates were correctly all-Pass.
Penalty-shootout scoutkeeper style · shooters · who wins a shootout
A 90-minute draw goes to extra time, then penalties. Our model assumes a naive 50/50 shootout; this replaces it with researched numbers. Keeper style: pre-committer dives early off a scouted dossier, reactor waits and reads the shot, mixed adds deception, unknown has no public profile. Penalties decide only ~3–8% of ties, so this is a tiebreaker — except where a keeper is elite (e.g. Bono).
The decisive sub-plot of the final. Dibu Martínez is the world's best shootout GK (Argentina 6-1 all-time, won the '22 title on penalties); Spain have the WORST WC shootout record of any nation (1W-4L). Polymarket favours Spain 59% to lift the cup (they've been the better side in open play), but in the ~29% of finals that reach penalties Argentina are heavy favourites — which is why the model (Argentina 52% incl. pens) and the reigning-champ narrative keep the trophy genuinely live.
England are 1W-3L but improving (Pickford's dossier + a deep taker pool); France are 2W-3L with back-to-back final losses ('06, '22). Slight England edge if it goes the distance — but this is a low-stakes bronze game where motivation, not pens, decides it.
Model vs Market
Live market comparison is currently unavailable (no open Polymarket markets resolved at build time). It returns automatically once upcoming-match markets are live.
Live Fair Value
No upcoming matches to track yet.
How this works
Every number on this page comes from one Bayesian statistical model fit to historical results — no hand-tuning, no bookmaker odds. Here's the honest version of what it does and what it can't.
The model
A Bayesian hierarchical double-Poisson (the Dixon–Coles lineage). Each team carries a latent attack and defense strength; goals are Poisson-distributed around those strengths, with a single home-advantage term that switches off at neutral venues.
log λ_home = intercept + home_adv·(1−neutral) + atk[home] − def[away] log λ_away = intercept + atk[away] − def[home]
It's fit by MCMC (PyMC + nutpie), so every prediction integrates over the full posterior — the scoreline grid reflects genuine parameter uncertainty, not a single point estimate.
The data
The CC0 martj42/international_results dataset — 8,000+ men's international matches since 2018, 284 teams. The model uses only goals, venue (neutral flag), date and tournament.
It deliberately has no xG, shots, lineups, player ratings, or betting odds — those barely exist for international football and aren't in a free, redistributable source. This is a goals-only model, and honest about it.
Does it actually work?
On a temporal backtest (train on the past, predict the future, no leakage) it scores RPS 0.166 — about 9% better than Elo (0.182). RPS is the standard proper score for ordered 1X2 outcomes.
It's also well-calibrated — when it says 30%, it happens about 30% of the time. The reliability curve should hug the diagonal:
Reliability across all home/draw/away probabilities on 8152 matches (24456 probability–outcome pairs). Points on the diagonal = perfectly calibrated; point size = bin count. Mean miscalibration (ECE) 1.8%. In-sample check — the backtest scores are the out-of-sample skill measure.
On the 104 WC2026 matches played so far — a small, noisy sample — it has called 51% of over/under-2.5 totals correctly and nailed 13/104 exact final scores, placing on average 17% of its probability on the actual goal total. With only ~104 matches these in-tournament figures will bounce around; the backtest numbers above are the stable measure of skill.
| Model | RPS | log-loss | Brier | acc |
|---|---|---|---|---|
| Double-Poisson (shipped) | 0.1659 | 0.861 | 0.505 | 60.1% |
| + Dixon–Coles | 0.1659 | 0.860 | 0.505 | 60.1% |
| + Confederation layer ★ | 0.1651 | 0.857 | 0.504 | 59.8% |
| + Both ★ | 0.1651 | 0.856 | 0.504 | 60.1% |
| Elo baseline | 0.1818 | 0.937 | 0.547 | 49.3% |
Lower RPS / log-loss / Brier is better. ★ = best. Expanding-window temporal backtest, no leakage.
What we tested and rejected
The interesting part of a model is what didn't help. On the same backtest, all of these were within run-to-run noise or worse, so they're off:
- Time-decay weighting (recent matches count more) — best variant ~−0.3% RPS, inside the noise.
- Tournament-importance weighting — slightly hurt.
- Blending with Elo — a weighted average only got worse as more Elo was added; pure Bayesian was optimal.
- Confederation hierarchy (shrink teams toward their AFC/CAF/… mean) — a hair better on paper but inside the noise, and it muddied the model's convergence, so it's off.
- Dixon–Coles low-score correction — once correctly bounded, it's RPS-neutral (a genuinely tiny effect for international football).
The model sits at the goals-only information ceiling: with this data, the plain double-Poisson is as good as it gets. We measured that rather than assuming it.
Source: martj42/international_results (CC0). Built with Python, pandas, PyMC. Predictions are probabilistic — a 70% favourite still loses three times in ten.