Data Science · Sports Modeling
FIFA World Cup 2026Prediction Model
A statistical model that forecast the 2026 World Cup one stage at a time. It is trained on 48,235 international matches; after every stage the real results were fed back in and the whole tournament was re-simulated. Walk through the eight snapshots to see what the model thought, when it thought it, and how it turned out.
Python · pandas · statsmodels · NumPy · Poisson GLM · Elo · Monte Carlo · Next.js
How it ended




Spain 1–0 Argentina (after extra time) in the Final. The model’s last snapshot, taken before the Final, gave Argentina 53% and Spain 47% to lift the trophy.
The story in four numbers
Before a ball was kicked the model ranked the eventual champion #2.
Share of matches where the single most likely result happened (random guessing: 33%).
Share of ties where the team the model favoured advanced (coin flip: 50%).
Predicted on average vs. actually scored — a check on the goal model.
How the title odds moved
Each line is one team’s probability of winning the trophy, re-estimated at every snapshot from kickoff to the semi-finals. Tap a snapshot to compare the teams.
Tap a column to inspect that snapshot · tap a team to hide or show it · a line falls to 0% when the team is knocked out
The eight snapshots
As real results came in, a new forecast was published for everything that remained. Eight snapshots, from before kickoff to the Final — open any of them to see its predictions.
Argentina15.8%
Argentina18.3%
Argentina21.5%
Argentina22.6%
Argentina22.2%
Argentina25.0%
Argentina33.3%
Argentina53.0%Was the model any good?
Every match was scored against the odds the model had when it was still unplayed. Group games are judged on the 90-minute result, knockout ties on who advanced.
| Stage | Matches | Called | Avg. prob. on what happened | Log loss |
|---|---|---|---|---|
| Matchday 1 | 24 | 11/24 (46%) | 41% | 1.07 |
| Matchday 2 | 24 | 18/24 (75%) | 52% | 0.76 |
| Matchday 3 | 24 | 14/24 (58%) | 50% | 0.79 |
| Round of 32 | 16 | 13/16 (81%) | 64% | 0.47 |
| Round of 16 | 8 | 6/8 (75%) | 60% | 0.53 |
| Quarter-finals | 4 | 4/4 (100%) | 63% | 0.47 |
| Semi-finals | 2 | 2/2 (100%) | 57% | 0.57 |
| Third place | 1 | 0/1 (0%) | 49% | 0.71 |
| Final | 1 | 0/1 (0%) | 47% | 0.76 |
| Group stage | 72 | 43/72 (60%) | 47% | 0.87 |
| Knockouts | 32 | 25/32 (78%) | 61% | 0.51 |
Knockout rows count who advanced. Goal columns use only ties settled in 90 minutes, because extra-time scores are not comparable with a 90-minute forecast; that subset skews towards decisive results, so read it with care.
Reading the scorecard
In the group stage the single most likely result happened 60% of the time, against 33% for random guessing, with a log loss of 0.87 versus 1.10 for a model that always says “one third each”. In the knockouts the favoured team advanced in 25 of 32 ties.
The hardest stage was Matchday 1: a log loss of 1.07 barely improved on the 1.10 baseline. Every later stage with at least 8 matches beat its own baseline by a wider margin.
Each matchday has only 24 matches and the later rounds even fewer, so stage-to-stage differences are mostly noise. Treat the table as an honest audit, not as proof that the model got better or worse as the tournament went on.
Did updating during the tournament help?
From matchday 2 on, the snapshots update every team’s Elo with the real results. Comparing those odds with the frozen pre-tournament odds for the very same matches: Matchday 2: log loss 0.757 updated vs 0.762 frozen (better); Matchday 3: log loss 0.790 updated vs 0.782 frozen (not better).
The evidence is mixed: with 24 matches per matchday the difference is within noise.
The biggest surprises
The results the model thought least likely — measured with its own pre-match odds.
Spain0–0Cape Verde
Model gave this result 8.1%
Qatar1–1Switzerland
Model gave this result 9.8%
Ecuador0–0Curaçao
Model gave this result 13.6%
England0–0Ghana
Model gave this result 15.3%
Ivory Coast1–0Ecuador
Model gave this result 16.3%
South Africa1–0South Korea
Model gave this result 17.3%
How it works
Two models, one ensemble
A Poisson + Elo regression over the full history is blended (60/40) with a Poisson GLM that learns per-team attack & defense strengths from 2010 onward. Recent matches are weighted more heavily.
Goals → everything
Each match becomes a probability grid over scorelines. From that single grid we derive win/draw/loss, over/under 2.5, both-teams-to-score and the most likely results.
Simulated 20,000 times
The entire tournament — group stage through the final — is Monte-Carlo simulated 20,000 times. Each run resolves the bracket using the official FIFA seeding rules for third-place teams.
Updated by results, never by hindsight
After each stage the real scores are locked in and every team’s Elo is updated with the World Football Elo formula. The two models are not refitted, and a played match always keeps the odds the model had before kickoff.
The 48 nations
Twelve groups of four. Each row shows the team's current Elo rating and its rank among all 48 qualified nations.
Group A
Top seed · Mexico
Mexico1875#18
South Korea1758#28
South Africa1517#45
Czech Republic1740#29Group B
Top seed · Canada
Canada1788#23
Switzerland1891#17
Qatar1421#48
Bosnia and Herzegovina1595#40Group C
Top seed · Brazil
Brazil1991#5
Morocco1827#22
Scotland1782#24
Haiti1548#44Group D
Top seed · United States
United States1726#31
Australia1777#25
Paraguay1834#20
Turkey1911#13Group E
Top seed · Germany
Germany1932#10
Ecuador1938#9
Ivory Coast1695#35
Curaçao1434#47Group F
Top seed · Netherlands
Netherlands1948#8
Japan1906#14
Tunisia1628#38
Sweden1712#33Group G
Top seed · Belgium
Belgium1894#15
Iran1772#26
Egypt1696#34
New Zealand1562#43Group H
Top seed · Spain
Spain2157#1
Uruguay1892#16
Saudi Arabia1576#42
Cape Verde1578#41Group I
Top seed · France
France2063#3
Senegal1860#19
Norway1914#11
Iraq1607#39Group J
Top seed · Argentina
Argentina2115#2
Austria1830#21
Algeria1772#27
Jordan1680#36Group K
Top seed · Portugal
Portugal1989#6
Colombia1982#7
Uzbekistan1714#32
DR Congo1652#37Group L
Top seed · England
England2024#4
Croatia1912#12
Panama1730#30
Ghana1510#46Elo ratings sourced pre-tournament. This is a probabilistic model for analysis and entertainment, not betting advice. Methodology snapshot: trained on data up to 2026-06-11.