We put our pre-match prediction for every game next to what actually happened. Everything is recomputed leak-safe — using only what was known before kickoff — so this is an honest track record, not a highlight reel.
Since September 2026 every national-team prediction comes from the Stack: a goal-based team-strength model combined with an Elo rating that accounts for venue, altitude and travel. We picked it by testing each candidate on men's internationals it had never seen. Settings were tuned on 2010–2018 matches, and the scores below come from a single pass over 2019–2026.
| Model | Error score (RPS) |
|---|---|
| Stack (current) | 0.1626 |
| All-nations Elo | 0.1671 |
| Plain Elo | 0.1690 |
| Model | Error score (RPS) |
|---|---|
| Stack (current) | 0.1549 |
| Our World Cup engine | 0.1552 |
| All-nations Elo | 0.1622 |
| Plain Elo | 0.1670 |
Stack vs all-nations Elo: −0.0045 (95% interval −0.0057 to −0.0033).
Lower is better. The margin is small per match, but it held in every year and every type of competition. At the World Cup it tied the engine we used during the tournament. These are probabilities, not betting tips. How we tested
Each model predicted every match using only results from before that match. Team strengths are refit every week and the other settings once a year. The error score is the ranked probability score on the 90-minute result: it rewards putting probability on what happened and penalises confident misses. The 95% interval comes from resampling whole match days. The sections below score the engine that was live during the 2026 World Cup.
When we say a result is X% likely, how often does it actually happen? The closer the two columns, the better-calibrated the model.
| Our confidence | Avg predicted | Actually happened | Matches |
|---|---|---|---|
| <40% | 38% | 20% | 5 |
| 40–50% | 46% | 50% | 18 |
| 50–60% | 55% | 62% | 21 |
| 60–75% | 67% | 63% | 32 |
| 75%+ | 82% | 79% | 28 |
Head-to-head over matches with a frozen pre-kickoff market price (Polymarket closing line): our pure model, the market alone, and the blend we actually publish. Lower Brier/RPS is better.
| Forecast | Brier score | RPS | Outcome correct |
|---|---|---|---|
| Model only | 0.547 | 0.168 | 64% |
| Market only | 0.529 | 0.166 | 52% |
| Blend (60%) | 0.531 | 0.165 | 60% |
25 matches with a clean pre-kickoff line
Average gap between our expected number and the real one (per team, per match).
Each prediction is recomputed using only information available before kickoff (team strength, recent form, earlier matches). Fouls and cards aren't shown — they're not predictable from team strength. Statistical model, not betting advice.