Research edition · independent model

The Prediction
Book · WC 2026

An independent statistical forecast of all 72 group-stage matches and a 100,000-tournament simulation of the knockout bracket — ratings fit on 11,978 internationals, tuned by cross-validation, beholden to no betting market.

Predicted champion
🇦🇷 Argentina 15.1%
Trained on
11,978 matches, 2013–2026
Out-of-sample log-loss
0.846 vs 1.099 base
Vs market model
6.9pt avg gap

Tournament outlook

/ 100,000 simulations

Title probabilities from simulating the whole tournament 100,000 times, each run perturbed by a random per-team form shock so a single model never hardens tiny edges into false certainty.

The race for the trophy

Top 16 by title probability
01 🇦🇷 Argentina 15.1%
02 🇪🇸 Spain 12.4%
03 🏴󠁧󠁢󠁥󠁮󠁧󠁿 England 8.9%
04 🇧🇷 Brazil 8.8%
05 🇫🇷 France 8.8%
06 🇵🇹 Portugal 7.4%
07 🇨🇴 Colombia 5.6%
08 🇧🇪 Belgium 5.2%
09 🇩🇪 Germany 3.8%
10 🇺🇾 Uruguay 3.0%
11 🇳🇱 Netherlands 2.9%
12 🇲🇦 Morocco 2.3%
13 🇭🇷 Croatia 2.2%
14 🇨🇭 Switzerland 1.6%
15 🇪🇨 Ecuador 1.5%
16 🇳🇴 Norway 1.2%
Most likely final
🇦🇷 Argentina
lifts the trophy in 15.1% of simulations.
Projected final: 🇪🇸 Spain vs 🇦🇷 Argentina.

How far each side runs

Probability of reaching each round
TeamGrpR32QFSFFinWin
🇦🇷 Argentina 74% 98% 52% 36% 24% 15.1%
🇪🇸 Spain 68% 98% 46% 32% 21% 12.4%
🏴󠁧󠁢󠁥󠁮󠁧󠁿 England 63% 97% 46% 28% 16% 8.9%
🇧🇷 Brazil 61% 97% 47% 29% 16% 8.8%
🇫🇷 France 62% 95% 46% 30% 16% 8.8%
🇵🇹 Portugal 50% 94% 43% 24% 14% 7.4%
🇨🇴 Colombia 42% 92% 37% 20% 11% 5.6%
🇧🇪 Belgium 63% 95% 42% 20% 11% 5.2%
🇩🇪 Germany 71% 100% 33% 19% 9% 3.8%
🇺🇾 Uruguay 28% 91% 25% 13% 7% 3.0%
🇳🇱 Netherlands 37% 87% 27% 14% 6% 2.9%
🇲🇦 Morocco 23% 91% 28% 13% 6% 2.3%
🇭🇷 Croatia 31% 90% 24% 12% 5% 2.2%
🇨🇭 Switzerland 47% 85% 23% 9% 4% 1.6%
🇪🇨 Ecuador 4% 81% 20% 9% 4% 1.5%
🇳🇴 Norway 21% 76% 18% 8% 3% 1.2%

Group stage

/ 12 groups

Projected final tables (expected points and goal difference, with real points where matches have already been played) and the predicted result of every fixture. The coloured bar marks the two automatic qualifiers and the third-place line that chases one of the eight best-third spots.

Group A top 2 advance · best 3rds qualify
TeamPts*GD*R32
1 🇲🇽 Mexico 6.4 +2.9 98%
2 🇰🇷 South Korea 5.8 +1.1 93%
3 🇨🇿 Czech Republic 3.0 -0.6 60%
4 🇿🇦 South Africa 1.6 -3.4 23%
🇲🇽 Mexico 2–0 South Africa 🇿🇦
🇰🇷 South Korea 2–1 Czech Republic 🇨🇿
🇨🇿 Czech Republic 1-0 South Africa 🇿🇦
🇲🇽 Mexico 1-1 South Korea 🇰🇷
🇨🇿 Czech Republic 1-1 Mexico 🇲🇽
🇿🇦 South Africa 0-1 South Korea 🇰🇷
Group B top 2 advance · best 3rds qualify
TeamPts*GD*R32
1 🇨🇭 Switzerland 4.9 +1.7 85%
2 🇨🇦 Canada 4.2 +0.8 78%
3 🇧🇦 Bosnia and Herzegovina 3.2 -0.8 58%
4 🇶🇦 Qatar 2.7 -1.7 44%
🇨🇦 Canada 1–1 Bosnia and Herzegovina 🇧🇦
🇶🇦 Qatar 1–1 Switzerland 🇨🇭
🇨🇭 Switzerland 1-0 Bosnia and Herzegovina 🇧🇦
🇨🇦 Canada 2-0 Qatar 🇶🇦
🇨🇭 Switzerland 1-1 Canada 🇨🇦
🇧🇦 Bosnia and Herzegovina 1-1 Qatar 🇶🇦
Group C top 2 advance · best 3rds qualify
TeamPts*GD*R32
1 🇧🇷 Brazil 6.0 +4.3 97%
2 🇲🇦 Morocco 5.2 +2.1 91%
3 🏴󠁧󠁢󠁳󠁣󠁴󠁿 Scotland 4.5 -0.8 83%
4 🇭🇹 Haiti 0.5 -5.6 6%
🇧🇷 Brazil 1–1 Morocco 🇲🇦
🇭🇹 Haiti 0–1 Scotland 🏴󠁧󠁢󠁳󠁣󠁴󠁿
🏴󠁧󠁢󠁳󠁣󠁴󠁿 Scotland 0-0 Morocco 🇲🇦
🇧🇷 Brazil 3-0 Haiti 🇭🇹
🇲🇦 Morocco 2-0 Haiti 🇭🇹
🏴󠁧󠁢󠁳󠁣󠁴󠁿 Scotland 0-1 Brazil 🇧🇷
Group D top 2 advance · best 3rds qualify
TeamPts*GD*R32
1 🇺🇸 United States 5.7 +3.0 96%
2 🇦🇺 Australia 5.7 +2.0 95%
3 🇹🇷 Turkey 2.9 -1.8 49%
4 🇵🇾 Paraguay 2.5 -3.3 37%
🇺🇸 United States 4–1 Paraguay 🇵🇾
🇦🇺 Australia 2–0 Turkey 🇹🇷
🇺🇸 United States 1-1 Australia 🇦🇺
🇹🇷 Turkey 1-1 Paraguay 🇵🇾
🇹🇷 Turkey 1-1 United States 🇺🇸
🇵🇾 Paraguay 0-0 Australia 🇦🇺
Group E top 2 advance · best 3rds qualify
TeamPts*GD*R32
1 🇩🇪 Germany 6.7 +7.4 100%
2 🇨🇮 Ivory Coast 5.9 +1.2 96%
3 🇪🇨 Ecuador 3.8 +0.8 81%
4 🇨🇼 Curaçao 0.7 -9.4 5%
🇩🇪 Germany 7–1 Curaçao 🇨🇼
🇨🇮 Ivory Coast 1–0 Ecuador 🇪🇨
🇩🇪 Germany 2-0 Ivory Coast 🇨🇮
🇪🇨 Ecuador 2-0 Curaçao 🇨🇼
🇪🇨 Ecuador 1-1 Germany 🇩🇪
🇨🇼 Curaçao 0-2 Ivory Coast 🇨🇮
Group F top 2 advance · best 3rds qualify
TeamPts*GD*R32
1 🇸🇪 Sweden 5.1 +3.1 95%
2 🇳🇱 Netherlands 5.0 +1.9 87%
3 🇯🇵 Japan 4.5 +1.0 80%
4 🇹🇳 Tunisia 1.3 -6.0 15%
🇳🇱 Netherlands 2–2 Japan 🇯🇵
🇸🇪 Sweden 5–1 Tunisia 🇹🇳
🇳🇱 Netherlands 1-1 Sweden 🇸🇪
🇹🇳 Tunisia 0-1 Japan 🇯🇵
🇯🇵 Japan 1-1 Sweden 🇸🇪
🇹🇳 Tunisia 0-1 Netherlands 🇳🇱
Group G top 2 advance · best 3rds qualify
TeamPts*GD*R32
1 🇧🇪 Belgium 6.6 +3.8 95%
2 🇮🇷 Iran 4.4 +0.4 76%
3 🇪🇬 Egypt 3.4 -1.0 60%
4 🇳🇿 New Zealand 2.0 -3.3 31%
🇧🇪 Belgium 1-0 Egypt 🇪🇬
🇮🇷 Iran 1-0 New Zealand 🇳🇿
🇧🇪 Belgium 1-0 Iran 🇮🇷
🇳🇿 New Zealand 0-0 Egypt 🇪🇬
🇪🇬 Egypt 0-0 Iran 🇮🇷
🇳🇿 New Zealand 0-2 Belgium 🇧🇪
Group H top 2 advance · best 3rds qualify
TeamPts*GD*R32
1 🇪🇸 Spain 7.2 +5.6 98%
2 🇺🇾 Uruguay 5.6 +2.2 91%
3 🇸🇦 Saudi Arabia 2.3 -3.2 37%
4 🇨🇻 Cape Verde 1.6 -4.6 23%
🇪🇸 Spain 3-0 Cape Verde 🇨🇻
🇸🇦 Saudi Arabia 0-1 Uruguay 🇺🇾
🇪🇸 Spain 2-0 Saudi Arabia 🇸🇦
🇺🇾 Uruguay 2-0 Cape Verde 🇨🇻
🇺🇾 Uruguay 0-1 Spain 🇪🇸
🇨🇻 Cape Verde 0-0 Saudi Arabia 🇸🇦
Group I top 2 advance · best 3rds qualify
TeamPts*GD*R32
1 🇫🇷 France 6.6 +3.8 95%
2 🇳🇴 Norway 4.4 +0.4 76%
3 🇸🇳 Senegal 3.8 -0.4 67%
4 🇮🇶 Iraq 1.7 -3.8 26%
🇫🇷 France 1-0 Senegal 🇸🇳
🇮🇶 Iraq 0-1 Norway 🇳🇴
🇫🇷 France 2-0 Iraq 🇮🇶
🇳🇴 Norway 1-1 Senegal 🇸🇳
🇸🇳 Senegal 1-0 Iraq 🇮🇶
🇳🇴 Norway 0-1 France 🇫🇷
Group J top 2 advance · best 3rds qualify
TeamPts*GD*R32
1 🇦🇷 Argentina 7.4 +5.2 98%
2 🇦🇹 Austria 4.3 +0.4 76%
3 🇩🇿 Algeria 3.3 -1.3 60%
4 🇯🇴 Jordan 1.7 -4.3 27%
🇦🇷 Argentina 2-0 Algeria 🇩🇿
🇦🇹 Austria 1-0 Jordan 🇯🇴
🇦🇷 Argentina 1-0 Austria 🇦🇹
🇯🇴 Jordan 1-1 Algeria 🇩🇿
🇩🇿 Algeria 1-1 Austria 🇦🇹
🇯🇴 Jordan 0-2 Argentina 🇦🇷
Group K top 2 advance · best 3rds qualify
TeamPts*GD*R32
1 🇵🇹 Portugal 6.3 +3.3 94%
2 🇨🇴 Colombia 5.9 +2.6 92%
3 🇺🇿 Uzbekistan 2.4 -2.5 41%
4 🇨🇩 DR Congo 1.9 -3.4 30%
🇵🇹 Portugal 2-0 DR Congo 🇨🇩
🇺🇿 Uzbekistan 0-1 Colombia 🇨🇴
🇵🇹 Portugal 2-0 Uzbekistan 🇺🇿
🇨🇴 Colombia 2-0 DR Congo 🇨🇩
🇨🇴 Colombia 1-1 Portugal 🇵🇹
🇨🇩 DR Congo 0-0 Uzbekistan 🇺🇿
Group L top 2 advance · best 3rds qualify
TeamPts*GD*R32
1 🏴󠁧󠁢󠁥󠁮󠁧󠁿 England 7.0 +4.5 97%
2 🇭🇷 Croatia 5.5 +2.3 90%
3 🇵🇦 Panama 2.2 -3.3 37%
4 🇬🇭 Ghana 2.0 -3.5 33%
🏴󠁧󠁢󠁥󠁮󠁧󠁿 England 1-0 Croatia 🇭🇷
🇬🇭 Ghana 1-1 Panama 🇵🇦
🏴󠁧󠁢󠁥󠁮󠁧󠁿 England 2-0 Ghana 🇬🇭
🇵🇦 Panama 0-2 Croatia 🇭🇷
🇭🇷 Croatia 2-0 Ghana 🇬🇭
🇵🇦 Panama 0-2 England 🏴󠁧󠁢󠁥󠁮󠁧󠁿

Every match, called

/ 72 fixtures

The single most likely scoreline, the win / draw / loss split (the coloured bar) and the model's expected goals for all 72 group-stage games. Search a team, filter by group, or show only played or upcoming fixtures.

Grp A · MD1 11 Jun 2026 · 19:00 UTC ✓ 2-0
🇲🇽Mexico
2-0 predicted
South Africa🇿🇦
Mexico win · 69% xG 1.9–0.6
Likely: 2-0 15% · 1-0 15% · 1-1 10%
Actual 2–0
Grp A · MD1 12 Jun 2026 · 02:00 UTC ✗ 2-1
🇰🇷South Korea
1-1 predicted
Czech Republic🇨🇿
Czech Republic win · 35% xG 1.2–1.2
Likely: 1-1 15% · 0-0 11% · 0-1 10%
Actual 2–1
Grp B · MD1 12 Jun 2026 · 19:00 UTC ✗ 1-1
🇨🇦Canada
1-0 predicted
Bosnia and Herzegovina🇧🇦
Canada win · 57% xG 1.7–0.8
Likely: 1-0 13% · 1-1 12% · 2-0 12%
Actual 1–1
Grp D · MD1 13 Jun 2026 · 01:00 UTC ✓ 4-1
🇺🇸United States
1-1 predicted
Paraguay🇵🇾
United States win · 43% xG 1.4–1.0
Likely: 1-1 14% · 1-0 11% · 0-0 10%
Actual 4–1
Grp B · MD1 13 Jun 2026 · 19:00 UTC ✗ 1-1
🇶🇦Qatar
0-2 predicted
Switzerland🇨🇭
Switzerland win · 74% xG 0.7–2.4
Likely: 0-2 13% · 0-3 10% · 0-1 10%
Actual 1–1
Grp C · MD1 13 Jun 2026 · 22:00 UTC ✗ 1-1
🇧🇷Brazil
0-0 predicted
Morocco🇲🇦
Brazil win · 45% xG 1.1–0.6
Likely: 0-0 20% · 1-0 19% · 1-1 13%
Actual 1–1
Grp C · MD1 14 Jun 2026 · 01:00 UTC ✓ 0-1
🇭🇹Haiti
0-2 predicted
Scotland🏴󠁧󠁢󠁳󠁣󠁴󠁿
Scotland win · 66% xG 0.7–2.0
Likely: 0-2 13% · 0-1 12% · 1-1 11%
Actual 0–1
Grp D · MD1 14 Jun 2026 · 04:00 UTC ✓ 2-0
🇦🇺Australia
1-1 predicted
Turkey🇹🇷
Australia win · 36% xG 1.2–1.1
Likely: 1-1 15% · 0-0 11% · 1-0 10%
Actual 2–0
Grp E · MD1 14 Jun 2026 · 17:00 UTC ✓ 7-1
🇩🇪Germany
4-0 predicted
Curaçao🇨🇼
Germany win · 94% xG 4.0–0.5
Likely: 4-0 12% · 3-0 12% · 5-0 10%
Actual 7–1
Grp F · MD1 14 Jun 2026 · 20:00 UTC ✗ 2-2
🇳🇱Netherlands
1-1 predicted
Japan🇯🇵
Netherlands win · 44% xG 1.4–1.1
Likely: 1-1 14% · 1-0 10% · 0-0 9%
Actual 2–2
Grp E · MD1 14 Jun 2026 · 23:00 UTC ✗ 1-0
🇨🇮Ivory Coast
0-1 predicted
Ecuador🇪🇨
Ecuador win · 48% xG 0.6–1.2
Likely: 0-1 19% · 0-0 18% · 1-1 13%
Actual 1–0
Grp F · MD1 15 Jun 2026 · 02:00 UTC ✓ 5-1
🇸🇪Sweden
1-1 predicted
Tunisia🇹🇳
Sweden win · 52% xG 1.5–0.8
Likely: 1-1 13% · 1-0 13% · 2-0 11%
Actual 5–1
Grp H · MD1 15 Jun 2026 · 16:00 UTC
🇪🇸Spain
3-0 predicted
Cape Verde🇨🇻
Spain win · 90% xG 3.1–0.3
Likely: 3-0 16% · 2-0 16% · 4-0 12%
Grp G · MD1 15 Jun 2026 · 19:00 UTC
🇧🇪Belgium
1-0 predicted
Egypt🇪🇬
Belgium win · 63% xG 1.7–0.6
Likely: 1-0 16% · 2-0 15% · 0-0 11%
Grp H · MD1 15 Jun 2026 · 22:00 UTC
🇸🇦Saudi Arabia
0-1 predicted
Uruguay🇺🇾
Uruguay win · 67% xG 0.4–1.7
Likely: 0-1 20% · 0-2 17% · 0-0 13%
Grp G · MD1 16 Jun 2026 · 01:00 UTC
🇮🇷Iran
1-0 predicted
New Zealand🇳🇿
Iran win · 58% xG 1.5–0.6
Likely: 1-0 17% · 2-0 14% · 0-0 13%
Grp I · MD1 16 Jun 2026 · 19:00 UTC
🇫🇷France
1-0 predicted
Senegal🇸🇳
France win · 59% xG 1.6–0.6
Likely: 1-0 17% · 2-0 14% · 0-0 13%
Grp I · MD1 16 Jun 2026 · 22:00 UTC
🇮🇶Iraq
0-1 predicted
Norway🇳🇴
Norway win · 64% xG 0.6–1.8
Likely: 0-1 15% · 0-2 14% · 1-1 11%
Grp J · MD1 17 Jun 2026 · 01:00 UTC
🇦🇷Argentina
2-0 predicted
Algeria🇩🇿
Argentina win · 75% xG 2.1–0.5
Likely: 2-0 17% · 1-0 15% · 3-0 12%
Grp J · MD1 17 Jun 2026 · 04:00 UTC
🇦🇹Austria
1-0 predicted
Jordan🇯🇴
Austria win · 63% xG 1.8–0.7
Likely: 1-0 13% · 2-0 13% · 1-1 11%
Grp K · MD1 17 Jun 2026 · 17:00 UTC
🇵🇹Portugal
2-0 predicted
DR Congo🇨🇩
Portugal win · 77% xG 2.2–0.4
Likely: 2-0 17% · 1-0 15% · 3-0 12%
Grp L · MD1 17 Jun 2026 · 20:00 UTC
🏴󠁧󠁢󠁥󠁮󠁧󠁿England
1-0 predicted
Croatia🇭🇷
England win · 49% xG 1.3–0.7
Likely: 1-0 16% · 0-0 14% · 1-1 14%
Grp L · MD1 17 Jun 2026 · 23:00 UTC
🇬🇭Ghana
1-1 predicted
Panama🇵🇦
Panama win · 37% xG 1.1–1.2
Likely: 1-1 15% · 0-0 12% · 0-1 11%
Grp K · MD1 18 Jun 2026 · 02:00 UTC
🇺🇿Uzbekistan
0-1 predicted
Colombia🇨🇴
Colombia win · 67% xG 0.5–1.7
Likely: 0-1 18% · 0-2 16% · 0-0 12%
Grp A · MD2 18 Jun 2026 · 16:00 UTC
🇨🇿Czech Republic
1-0 predicted
South Africa🇿🇦
Czech Republic win · 54% xG 1.5–0.7
Likely: 1-0 15% · 1-1 13% · 2-0 12%
Grp B · MD2 18 Jun 2026 · 19:00 UTC
🇨🇭Switzerland
1-0 predicted
Bosnia and Herzegovina🇧🇦
Switzerland win · 64% xG 1.9–0.7
Likely: 1-0 13% · 2-0 13% · 1-1 11%
Grp B · MD2 18 Jun 2026 · 22:00 UTC
🇨🇦Canada
2-0 predicted
Qatar🇶🇦
Canada win · 68% xG 2.2–0.8
Likely: 2-0 12% · 1-0 10% · 1-1 10%
Grp A · MD2 19 Jun 2026 · 01:00 UTC
🇲🇽Mexico
1-1 predicted
South Korea🇰🇷
Mexico win · 50% xG 1.5–0.9
Likely: 1-1 14% · 1-0 13% · 0-0 11%
Grp D · MD2 19 Jun 2026 · 19:00 UTC
🇺🇸United States
1-1 predicted
Australia🇦🇺
United States win · 39% xG 1.3–1.1
Likely: 1-1 14% · 0-0 10% · 1-0 10%
Grp C · MD2 19 Jun 2026 · 22:00 UTC
🏴󠁧󠁢󠁳󠁣󠁴󠁿Scotland
0-0 predicted
Morocco🇲🇦
Morocco win · 46% xG 0.6–1.1
Likely: 0-0 19% · 0-1 19% · 1-1 13%
Grp C · MD2 20 Jun 2026 · 00:30 UTC
🇧🇷Brazil
3-0 predicted
Haiti🇭🇹
Brazil win · 91% xG 3.4–0.4
Likely: 3-0 15% · 2-0 13% · 4-0 12%
Grp D · MD2 20 Jun 2026 · 03:00 UTC
🇹🇷Turkey
1-1 predicted
Paraguay🇵🇾
Turkey win · 38% xG 1.2–1.1
Likely: 1-1 15% · 0-0 11% · 1-0 11%
Grp F · MD2 20 Jun 2026 · 17:00 UTC
🇳🇱Netherlands
1-1 predicted
Sweden🇸🇪
Netherlands win · 51% xG 1.7–1.1
Likely: 1-1 12% · 2-1 10% · 1-0 9%
Grp E · MD2 20 Jun 2026 · 20:00 UTC
🇩🇪Germany
2-0 predicted
Ivory Coast🇨🇮
Germany win · 63% xG 1.9–0.8
Likely: 2-0 12% · 1-0 12% · 1-1 11%
Grp E · MD2 21 Jun 2026 · 00:00 UTC
🇪🇨Ecuador
2-0 predicted
Curaçao🇨🇼
Ecuador win · 83% xG 2.5–0.4
Likely: 2-0 18% · 3-0 14% · 1-0 14%
Grp F · MD2 21 Jun 2026 · 04:00 UTC
🇹🇳Tunisia
0-1 predicted
Japan🇯🇵
Japan win · 55% xG 0.7–1.5
Likely: 0-1 16% · 1-1 13% · 0-0 13%
Grp H · MD2 21 Jun 2026 · 16:00 UTC
🇪🇸Spain
2-0 predicted
Saudi Arabia🇸🇦
Spain win · 84% xG 2.6–0.4
Likely: 2-0 17% · 3-0 15% · 1-0 13%
Grp G · MD2 21 Jun 2026 · 19:00 UTC
🇧🇪Belgium
1-0 predicted
Iran🇮🇷
Belgium win · 56% xG 1.6–0.8
Likely: 1-0 13% · 1-1 13% · 2-0 12%
Grp H · MD2 21 Jun 2026 · 22:00 UTC
🇺🇾Uruguay
2-0 predicted
Cape Verde🇨🇻
Uruguay win · 75% xG 2.0–0.4
Likely: 2-0 18% · 1-0 18% · 3-0 12%
Grp G · MD2 22 Jun 2026 · 01:00 UTC
🇳🇿New Zealand
0-0 predicted
Egypt🇪🇬
Egypt win · 45% xG 0.7–1.1
Likely: 0-0 18% · 0-1 18% · 1-1 14%
Grp J · MD2 22 Jun 2026 · 17:00 UTC
🇦🇷Argentina
1-0 predicted
Austria🇦🇹
Argentina win · 65% xG 1.7–0.5
Likely: 1-0 18% · 2-0 16% · 0-0 12%
Grp I · MD2 22 Jun 2026 · 21:00 UTC
🇫🇷France
2-0 predicted
Iraq🇮🇶
France win · 81% xG 2.4–0.4
Likely: 2-0 18% · 1-0 14% · 3-0 14%
Grp I · MD2 23 Jun 2026 · 00:00 UTC
🇳🇴Norway
1-1 predicted
Senegal🇸🇳
Norway win · 39% xG 1.2–1.0
Likely: 1-1 15% · 0-0 13% · 1-0 12%
Grp J · MD2 23 Jun 2026 · 03:00 UTC
🇯🇴Jordan
1-1 predicted
Algeria🇩🇿
Algeria win · 54% xG 0.9–1.6
Likely: 1-1 13% · 0-1 12% · 0-2 11%
Grp K · MD2 23 Jun 2026 · 17:00 UTC
🇵🇹Portugal
2-0 predicted
Uzbekistan🇺🇿
Portugal win · 71% xG 2.0–0.5
Likely: 2-0 16% · 1-0 16% · 3-0 11%
Grp L · MD2 23 Jun 2026 · 20:00 UTC
🏴󠁧󠁢󠁥󠁮󠁧󠁿England
2-0 predicted
Ghana🇬🇭
England win · 81% xG 2.3–0.4
Likely: 2-0 18% · 1-0 15% · 3-0 14%
Grp L · MD2 23 Jun 2026 · 23:00 UTC
🇵🇦Panama
0-2 predicted
Croatia🇭🇷
Croatia win · 70% xG 0.7–2.1
Likely: 0-2 14% · 0-1 12% · 0-3 10%
Grp K · MD2 24 Jun 2026 · 02:00 UTC
🇨🇴Colombia
2-0 predicted
DR Congo🇨🇩
Colombia win · 73% xG 1.9–0.4
Likely: 2-0 17% · 1-0 17% · 3-0 11%
Grp B · MD3 24 Jun 2026 · 19:00 UTC
🇨🇭Switzerland
1-1 predicted
Canada🇨🇦
Switzerland win · 48% xG 1.4–0.9
Likely: 1-1 14% · 1-0 13% · 0-0 11%
Grp B · MD3 24 Jun 2026 · 19:00 UTC
🇧🇦Bosnia and Herzegovina
1-1 predicted
Qatar🇶🇦
Bosnia and Herzegovina win · 43% xG 1.4–1.0
Likely: 1-1 14% · 1-0 11% · 0-0 10%
Grp C · MD3 24 Jun 2026 · 22:00 UTC
🇲🇦Morocco
2-0 predicted
Haiti🇭🇹
Morocco win · 75% xG 2.0–0.4
Likely: 2-0 18% · 1-0 17% · 3-0 12%
Grp C · MD3 24 Jun 2026 · 22:00 UTC
🏴󠁧󠁢󠁳󠁣󠁴󠁿Scotland
0-1 predicted
Brazil🇧🇷
Brazil win · 67% xG 0.6–1.9
Likely: 0-1 15% · 0-2 15% · 1-1 10%
Grp A · MD3 25 Jun 2026 · 01:00 UTC
🇨🇿Czech Republic
1-1 predicted
Mexico🇲🇽
Mexico win · 42% xG 0.9–1.2
Likely: 1-1 14% · 0-1 13% · 0-0 13%
Grp A · MD3 25 Jun 2026 · 01:00 UTC
🇿🇦South Africa
0-1 predicted
South Korea🇰🇷
South Korea win · 52% xG 0.7–1.4
Likely: 0-1 16% · 0-0 14% · 1-1 13%
Grp E · MD3 25 Jun 2026 · 20:00 UTC
🇪🇨Ecuador
1-1 predicted
Germany🇩🇪
Germany win · 41% xG 1.0–1.3
Likely: 1-1 14% · 0-1 12% · 0-0 11%
Grp E · MD3 25 Jun 2026 · 20:00 UTC
🇨🇼Curaçao
0-2 predicted
Ivory Coast🇨🇮
Ivory Coast win · 68% xG 0.6–1.9
Likely: 0-2 15% · 0-1 15% · 1-1 10%
Grp F · MD3 25 Jun 2026 · 23:00 UTC
🇯🇵Japan
1-1 predicted
Sweden🇸🇪
Japan win · 41% xG 1.4–1.2
Likely: 1-1 14% · 1-0 9% · 0-0 9%
Grp F · MD3 25 Jun 2026 · 23:00 UTC
🇹🇳Tunisia
0-1 predicted
Netherlands🇳🇱
Netherlands win · 65% xG 0.7–1.9
Likely: 0-1 14% · 0-2 14% · 1-1 11%
Grp D · MD3 26 Jun 2026 · 02:00 UTC
🇹🇷Turkey
1-1 predicted
United States🇺🇸
Turkey win · 38% xG 1.4–1.3
Likely: 1-1 14% · 1-0 9% · 2-1 9%
Grp D · MD3 26 Jun 2026 · 02:00 UTC
🇵🇾Paraguay
0-0 predicted
Australia🇦🇺
Australia win · 36% xG 0.9–1.0
Likely: 0-0 17% · 1-1 15% · 0-1 14%
Grp I · MD3 26 Jun 2026 · 19:00 UTC
🇸🇳Senegal
1-0 predicted
Iraq🇮🇶
Senegal win · 53% xG 1.3–0.6
Likely: 1-0 19% · 0-0 17% · 2-0 13%
Grp I · MD3 26 Jun 2026 · 19:00 UTC
🇳🇴Norway
0-1 predicted
France🇫🇷
France win · 58% xG 0.8–1.8
Likely: 0-1 12% · 1-1 12% · 0-2 12%
Grp H · MD3 27 Jun 2026 · 00:00 UTC
🇺🇾Uruguay
0-1 predicted
Spain🇪🇸
Spain win · 49% xG 0.7–1.3
Likely: 0-1 16% · 0-0 14% · 1-1 14%
Grp H · MD3 27 Jun 2026 · 00:00 UTC
🇨🇻Cape Verde
0-0 predicted
Saudi Arabia🇸🇦
Saudi Arabia win · 40% xG 0.8–1.0
Likely: 0-0 18% · 0-1 16% · 1-1 14%
Grp G · MD3 27 Jun 2026 · 03:00 UTC
🇪🇬Egypt
0-0 predicted
Iran🇮🇷
Iran win · 41% xG 0.8–1.1
Likely: 0-0 17% · 0-1 16% · 1-1 14%
Grp G · MD3 27 Jun 2026 · 03:00 UTC
🇳🇿New Zealand
0-2 predicted
Belgium🇧🇪
Belgium win · 79% xG 0.5–2.4
Likely: 0-2 16% · 0-3 13% · 0-1 13%
Grp L · MD3 27 Jun 2026 · 21:00 UTC
🇭🇷Croatia
2-0 predicted
Ghana🇬🇭
Croatia win · 70% xG 2.0–0.6
Likely: 2-0 15% · 1-0 14% · 3-0 10%
Grp L · MD3 27 Jun 2026 · 21:00 UTC
🇵🇦Panama
0-2 predicted
England🏴󠁧󠁢󠁥󠁮󠁧󠁿
England win · 81% xG 0.4–2.4
Likely: 0-2 17% · 0-3 14% · 0-1 13%
Grp K · MD3 27 Jun 2026 · 23:30 UTC
🇨🇴Colombia
1-1 predicted
Portugal🇵🇹
Portugal win · 37% xG 1.1–1.2
Likely: 1-1 15% · 0-0 12% · 0-1 11%
Grp K · MD3 27 Jun 2026 · 23:30 UTC
🇨🇩DR Congo
0-0 predicted
Uzbekistan🇺🇿
Draw draw · 37% xG 0.7–0.9
Likely: 0-0 21% · 0-1 16% · 1-1 14%
Grp J · MD3 28 Jun 2026 · 02:00 UTC
🇩🇿Algeria
1-1 predicted
Austria🇦🇹
Austria win · 45% xG 1.0–1.4
Likely: 1-1 14% · 0-1 11% · 0-0 10%
Grp J · MD3 28 Jun 2026 · 02:00 UTC
🇯🇴Jordan
0-2 predicted
Argentina🇦🇷
Argentina win · 87% xG 0.3–2.8
Likely: 0-2 17% · 0-3 16% · 0-1 12%

The predicted bracket

/ modal path

The single most likely knockout bracket: projected group finishers seeded into the official FIFA Round-of-32 structure, each tie called for the side the model makes more likely to advance (its confidence shown beside the pick). Scroll sideways to follow the run to the final.

Round of 32

🇰🇷 South Korea
🇨🇦 Canada
50%
🇩🇪 Germany
🇨🇿 Czech Republic
74%
🇸🇪 Sweden
🇲🇦 Morocco
61%
🇧🇷 Brazil
🇳🇱 Netherlands
64%
🇫🇷 France
🏴󠁧󠁢󠁳󠁣󠁴󠁿 Scotland
81%
🇨🇮 Ivory Coast
🇳🇴 Norway
66%
🇲🇽 Mexico
🇯🇵 Japan
54%
🏴󠁧󠁢󠁥󠁮󠁧󠁿 England
🇪🇨 Ecuador
68%
🇺🇸 United States
🇧🇦 Bosnia and Herzegovina
66%
🇧🇪 Belgium
🇩🇿 Algeria
77%
🇨🇴 Colombia
🇭🇷 Croatia
61%
🇪🇸 Spain
🇦🇹 Austria
79%
🇨🇭 Switzerland
🇪🇬 Egypt
70%
🇦🇷 Argentina
🇺🇾 Uruguay
70%
🇵🇹 Portugal
🇸🇳 Senegal
75%
🇦🇺 Australia
🇮🇷 Iran
51%

Round of 16

🇩🇪 Germany
🇫🇷 France
63%
🇨🇦 Canada
🇲🇦 Morocco
66%
🇧🇷 Brazil
🇳🇴 Norway
74%
🇯🇵 Japan
🏴󠁧󠁢󠁥󠁮󠁧󠁿 England
72%
🇨🇴 Colombia
🇪🇸 Spain
62%
🇺🇸 United States
🇧🇪 Belgium
75%
🇦🇷 Argentina
🇦🇺 Australia
83%
🇨🇭 Switzerland
🇵🇹 Portugal
68%

Quarter-finals

🇫🇷 France
🇲🇦 Morocco
64%
🇪🇸 Spain
🇧🇪 Belgium
65%
🇧🇷 Brazil
🏴󠁧󠁢󠁥󠁮󠁧󠁿 England
51%
🇦🇷 Argentina
🇵🇹 Portugal
63%

Semi-finals

🇫🇷 France
🇪🇸 Spain
57%
🏴󠁧󠁢󠁥󠁮󠁧󠁿 England
🇦🇷 Argentina
59%

Final

🇪🇸 Spain
🇦🇷 Argentina
55%

Champion

🇦🇷Argentina predicted winner

Graded against reality

/ 12 played

A true holdout: for this table the ratings were re-fit with every 2026 World Cup game removed, so the model had never seen these results when it called them. (The live forecast does learn from them.) The headline number is the out-of-sample log-loss of 0.846 across 4,481 historical matches in rolling cross-validation — a uniform 33/33/33 guess scores 1.099.

0.846
CV log-loss (4,481 games)
42%
Holdout accuracy
0.618
Holdout Brier
6.9%
Avg gap vs market model
MatchActualPredictedCallHit
🇲🇽 Mexico v South Africa 🇿🇦 2–0 2-0 Mexico
🇰🇷 South Korea v Czech Republic 🇨🇿 2–1 1-1 Czech Republic
🇨🇦 Canada v Bosnia and Herzegovina 🇧🇦 1–1 1-0 Canada
🇺🇸 United States v Paraguay 🇵🇾 4–1 1-1 United States
🇶🇦 Qatar v Switzerland 🇨🇭 1–1 0-2 Switzerland
🇧🇷 Brazil v Morocco 🇲🇦 1–1 0-0 Brazil
🇭🇹 Haiti v Scotland 🏴󠁧󠁢󠁳󠁣󠁴󠁿 0–1 0-2 Scotland
🇦🇺 Australia v Turkey 🇹🇷 2–0 1-1 Australia
🇩🇪 Germany v Curaçao 🇨🇼 7–1 4-0 Germany
🇳🇱 Netherlands v Japan 🇯🇵 2–2 1-1 Netherlands
🇨🇮 Ivory Coast v Ecuador 🇪🇨 1–0 0-1 Ecuador
🇸🇪 Sweden v Tunisia 🇹🇳 5–1 1-1 Sweden

How the book is written

/ method
01 · DATA

11,978 internationals

Every full international between FIFA-ranked nations from 2013 to 2026 (210 teams), with venue, neutrality and competition — World Cup games already played included.

02 · WEIGHTING

Recency & importance

Each match is weighted by a 4.1-year half-life and by competition — a World Cup tie counts more than twice a friendly, where teams rotate and experiment.

03 · RATINGS

Opponent-adjusted MLE

An attack and defence rating per team plus a home-field term are fit by penalised maximum likelihood (L-BFGS), shrunk toward a FIFA-rank prior so beating minnows counts for less.

04 · TUNING

Cross-validation

Half-life, shrinkage, prior strength and the Dixon-Coles ρ are chosen by rolling-origin cross-validation on historical results — never by copying a betting market.

05 · TOURNAMENT

100,000 simulations

Groups (hosts at home), the official R32 bracket with the eight best thirds, and knockouts decided over 90′, extra time and penalties — all run 100k times with per-tournament form shocks.

The match model

For a fixture between teams i and j, expected goals are λᵢ = exp(μ + attᵢ − defⱼ + γ·host), where γ applies only to a host nation (USA, Mexico, Canada) at home — every other World Cup game is neutral. Those expected goals feed a Dixon-Coles bivariate Poisson with a low-score correction ρ; the win/draw/loss split, over/under, both-teams-to-score and the modal scoreline all come from that single matrix.

Fully independent

Nothing here is calibrated to a betting market. The ratings come only from match results, with the FIFA ranking as a weak prior. In rolling cross-validation the model scores a log-loss of 0.846 over 4,481 out-of-sample matches (a uniform guess scores 1.099). On a true holdout — the ratings re-fit with every 2026 game removed — it called 42% of the played matches and posted a Brier of 0.618. Even so it lands within 6.9 points, on average, of a public market model it never saw: independent in construction, sane in result.

Team news (availability layer)

A team-strength model is blind to who is actually fit. On top of the ratings, confirmed significant absences carry a small, conservative attack/defence adjustment — the one place real-time information enters. Current adjustments (as of 2026-06-15):

TeamNetConfirmed absence(s)
🇧🇷 Brazil -0.14 Rodrygo, Militao, Estevao out; Neymar a doubt
🇩🇪 Germany -0.13 No.1 GK ter Stegen (hamstring) and Gnabry (adductor) ruled out
🇳🇱 Netherlands -0.13 Xavi Simons (ACL) and Timber (groin) ruled out
🇺🇸 United States -0.06 Carter-Vickers (Achilles) ruled out
🇪🇸 Spain -0.03 Fermin Lopez and Samu Omorodion out (squad depth)
🏴󠁧󠁢󠁥󠁮󠁧󠁿 England -0.02 Grealish (foot) out (rotation)
🇦🇷 Argentina -0.02 Foyth (Achilles) out (squad depth)

This is why the model rates Brazil, Germany and the Netherlands below their raw strength — each has lost multiple starters. Full-strength sides (France, Portugal, Belgium) are unadjusted.

What was tried and dropped

Honest negative results, each measured on the same cross-validation: an Elo stack (worse log-loss, 0.855 vs 0.846), a rest-days / fatigue feature (no signal — corr ≈ −0.01), and shorter-memory ratings (CV preferred a four-year half-life). The draw probabilities are already near-perfectly calibrated, so the model picks few draws on purpose. Conclusion: the team-rating model is at its accuracy ceiling for goals-and-ranking data; only new information (team news, player-level data, shot-based xG) moves it further.

Honesty about the limits

Beyond confirmed absences the model knows nothing about line-ups, tactics, travel or motivation. A modal scoreline like 1-1 is typically only a 10–15% shot — football is mostly noise, and these are probabilities, not promises.

Data sources & credit

Fixtures and venues from the open WC26 Form Book; historical results from the martj42 international-results dataset; FIFA world ranking as a strength prior. Built as an independent modelling exercise.