2026 FIFA World Cup
Model predictions
A Dixon-Coles bivariate Poisson model fit on 49,215 senior internationals, then run through 10,000 Monte Carlo tournament simulations. Compared live against consensus-market implied probabilities.
Top 10 favorites
Champion probabilities
From 10,000 Monte Carlo tournament runs.
Model vs. consensus markets
Top mispricings
Where the Dixon-Coles model disagrees most with publicly traded implied probabilities, ranked by |edge| × √(liquidity).
| # | Team | Direction | Model P(W) | Market P(W) | Edge | Recent form |
|---|---|---|---|---|---|---|
| 1 | Argentina | ↑ UNDER | 26.1% | 9.0% | +17.1pp | 14W 3D 3L · GD +1.65/g |
| 2 | Colombia | ↑ UNDER | 11.7% | 1.6% | +10.1pp | 8W 5D 7L · GD +0.6/g |
| 3 | France | ↓ OVER | 3.1% | 16.1% | -13.0pp | 13W 3D 4L · GD +1.05/g |
| 4 | Spain | ↓ OVER | 8.4% | 16.0% | -7.6pp | 14W 6D 0L · GD +1.7/g |
| 5 | England | ↓ OVER | 3.2% | 11.1% | -7.9pp | 15W 1D 4L · GD +1.75/g |
| 6 | Ecuador | ↑ UNDER | 6.1% | 0.6% | +5.5pp | 6W 13D 1L · GD +0.45/g |
| 7 | Portugal | ↓ OVER | 2.2% | 7.4% | -5.2pp | 11W 7D 2L · GD +1.3/g |
| 8 | Germany | ↓ OVER | 0.9% | 5.3% | -4.4pp | 13W 3D 4L · GD +1.4/g |
| 9 | Uruguay | ↑ UNDER | 3.8% | 1.0% | +2.8pp | 5W 11D 4L · GD +0/g |
| 10 | Paraguay | ↑ UNDER | 2.3% | 0.5% | +1.8pp | 8W 6D 6L · GD +0/g |
| 11 | Brazil | ↑ UNDER | 11.4% | 8.5% | +2.9pp | 9W 6D 5L · GD +0.65/g |
| 12 | Netherlands | ↓ OVER | 1.2% | 3.3% | -2.1pp | 10W 8D 2L · GD +1.5/g |
| 13 | Senegal | ↑ UNDER | 2.1% | 0.6% | +1.5pp | 15W 3D 2L · GD +1.75/g |
| 14 | Morocco | ↑ UNDER | 3.9% | 1.7% | +2.2pp | 16W 4D 0L · GD +1.45/g |
| 15 | Australia | ↑ UNDER | 1.2% | 0.2% | +1.0pp | 12W 4D 4L · GD +1/g |
UNDER = model thinks team is undervalued relative to consensus markets. OVER = model thinks team is overvalued.
Stage-by-stage
Tournament progression probabilities
Probability each team reaches each stage of the bracket — based on simulation outcomes, not seeding alone.
| Team | R32 | R16 | QF | SF | Final | Champion |
|---|---|---|---|---|---|---|
| Argentina | 98.9% | 86.3% | 65.7% | 48.2% | 35.3% | 26.1% |
| Colombia | 93.9% | 71.5% | 52.6% | 35.6% | 23.7% | 11.7% |
| Brazil | 99.1% | 79.0% | 48.2% | 33.3% | 18.3% | 11.4% |
| Spain | 97.4% | 72.1% | 49.8% | 31.3% | 18.6% | 8.4% |
| Ecuador | 97.2% | 61.7% | 37.1% | 19.8% | 10.2% | 6.1% |
| Japan | 94.4% | 56.6% | 31.3% | 17.1% | 7.9% | 4.5% |
| Morocco | 94.0% | 62.4% | 29.7% | 16.7% | 7.7% | 3.9% |
| Uruguay | 91.6% | 59.2% | 35.3% | 18.2% | 9.3% | 3.8% |
| England | 95.5% | 60.1% | 33.3% | 14.1% | 6.4% | 3.2% |
| France | 87.5% | 58.4% | 28.8% | 16.7% | 8.0% | 3.1% |
| Paraguay | 82.4% | 47.9% | 27.2% | 12.8% | 6.0% | 2.3% |
| Portugal | 78.6% | 46.7% | 28.4% | 14.4% | 6.5% | 2.2% |
| Senegal | 84.1% | 53.8% | 25.6% | 13.4% | 5.9% | 2.1% |
| Australia | 77.4% | 40.9% | 21.1% | 9.5% | 4.1% | 1.2% |
| Netherlands | 86.5% | 41.3% | 19.6% | 8.3% | 3.0% | 1.2% |
| Algeria | 79.0% | 43.9% | 22.6% | 8.7% | 2.8% | 1.2% |
| Norway | 77.3% | 43.0% | 17.1% | 7.9% | 3.1% | 1.0% |
| Canada | 96.2% | 48.8% | 19.8% | 6.9% | 2.2% | 0.9% |
| Germany | 93.3% | 42.2% | 18.1% | 7.0% | 2.4% | 0.9% |
| Switzerland | 95.0% | 46.3% | 18.1% | 6.4% | 2.1% | 0.7% |
| Croatia | 85.0% | 38.9% | 17.7% | 5.4% | 1.8% | 0.7% |
| Mexico | 93.5% | 41.4% | 15.8% | 6.9% | 2.8% | 0.6% |
| Iran | 78.1% | 37.9% | 16.5% | 6.1% | 2.3% | 0.5% |
| Belgium | 78.5% | 37.2% | 15.8% | 5.8% | 2.1% | 0.5% |
Showing top 24 by champion probability of 48 total teams.
Underlying ratings
Top 30 teams by World Football ELO
The ELO rating is one input to the Dixon-Coles likelihood — but recent goal difference, opponent strength, and venue all feed in too.
Did the model actually work?
Calibration backtest — World Cups 2018 + 2022
Across 128 real WC matches, the dots cluster near the dashed diagonal — meaning when the model said 30%, teams actually won close to 30% of the time. The Brier-skill improvement of +7.0% over a uniform baseline tracks this.
| Model | Window | Brier | Log-loss |
|---|---|---|---|
| DixonColes | 2018 | 0.5947 | 0.9991 |
| Uniform(1/3) | 2018 | 0.6667 | 1.0986 |
| DixonColes | 2022 | 0.6460 | 1.1049 |
| Uniform(1/3) | 2022 | 0.6667 | 1.0986 |
| DixonColes | ALL | 0.6203 | 1.0520 |
| Uniform(1/3) | ALL | 0.6667 | 1.0986 |
The math
Methodology
Plain-English description of what the model is doing under the hood.
1. Likelihood
For a match between home team i and away team j, we model the score (X, Y) as a bivariate Poisson with the Dixon-Coles low-score correction:
λ_h = exp(α_i + β_j + γ) (home expected goals) λ_a = exp(α_j + β_i) (away expected goals) P(X=x, Y=y) = τ(x,y,λ_h,λ_a,ρ) · Poisson(x;λ_h) · Poisson(y;λ_a)
α is each team's attack strength, β the defense strength, γ the home-field advantage (zeroed out for neutral-venue World Cup matches), and τ the Dixon-Coles τ correction that fixes the underestimation of 0-0 / 1-0 / 0-1 / 1-1 scorelines.
2. Time decay
Each match contributes a weight exp(-ξ · days_since_match) with ξ = 0.0019, which means a game's weight halves roughly every 365 days. A friendly from 2014 still informs the fit — just less than last week's UEFA Nations League match.
3. Fit
We minimize the weighted negative log-likelihood with L-BFGS-B, with the identifiability constraint that the first team's attack rating is fixed at 0 and the attack ratings are recentered to sum to zero after the fit. This gives clean, comparable attack/defense numbers across all 333 rated teams.
4. Tournament simulation
With fitted parameters, we run 10,000 Monte Carlo simulations of the full 48-team bracket: group stage → R32 → R16 → QF → SF → Final. For each match we sample a score from the bivariate Poisson, advance the winner, and aggregate stage-reach probabilities across all simulations.
5. Market comparison
For each team, we pull the implied win probability from public consensus prediction markets and compute edge = p_model − p_market. Mispricings are ranked by |edge| × √(liquidity) so large edges in thin markets don't dominate.
6. Calibration
Backtested on World Cups 2018 + 2022 — 128 matches. The model's Brier score (0.620) is +7.0% better than a uniform (1/3, 1/3, 1/3) baseline (0.667). Log-loss tells the same story.
Source code
The full Python implementation is open source: src/model/dixon_coles.py and src/model/simulator.py on our GitHub. Pull it, refit it on your own data, or argue with our priors.