I have been building a World Cup forecasting pipeline around one object: a predictive distribution over final scores. Win-draw-loss probabilities, exact-score tips, knockout paths, and the total-goals forecast are then derived from that same distribution instead of being estimated as separate problems.

The current version is described in a non-peer-reviewed working paper. The model is a state-dependent goal-arrival generator. Goals are treated as jumps in a continuous-time score state; the transition law at full time gives a joint distribution over scorelines. For the 2026 forecast I combine the event-time generator with a calibrated random-forest layer using historical log-score weights, then use modal scorelines as the public score forecasts.

The forecast below is a freeze candidate dated June 8, 2026. It uses historical international matches available up to June 7, a football-ranking.com strength snapshot from June 4, and no player or lineup covariates. The total-goals side forecast excludes shootout goals and in-match penalty goals.

Headline Predictions

Target Prediction
Champion France
Runner-up Argentina
Final France - Argentina, 1-1, France advances by model-implied win probability
Third place Spain
Total goals 259
Total-goals 10th-90th percentile range 239-279

Method In Brief

The generator estimates goal-arrival intensities as functions of team strength, current score state, and match timing. It then propagates those intensities into score probabilities. For each fixture, the forecast stores both result-class probabilities and exact-score probabilities. A stacked model recalibrates win-draw-loss masses with weights 0.65 on the event-time generator and 0.35 on a calibrated random forest, while retaining a coherent final-score distribution for score and tournament calculations.

This matters because the forecast target changes the evaluation. A model can be good at win-draw-loss probabilities and less good at exact scores; betting-market prices can dominate close-to-kickoff probabilities while being a different information set than a strict pre-tournament forecast. The working paper therefore treats the forecast object, information set, and scoring rule as part of the method.

Group-stage score predictions
Date Group Match Prediction
2026-06-11 A Mexico - South Africa 1-0
2026-06-11 A South Korea - Czechia 1-0
2026-06-12 B Canada - Bosnia & Herzegovina 1-1
2026-06-12 D United States - Paraguay 1-0
2026-06-13 B Qatar - Switzerland 1-1
2026-06-13 C Brazil - Morocco 1-1
2026-06-13 E Ivory Coast - Ecuador 1-1
2026-06-13 C Haiti - Scotland 1-1
2026-06-13 F Sweden - Tunisia 1-1
2026-06-14 D Australia - Türkiye 1-1
2026-06-14 E Germany - Curaçao 3-0
2026-06-14 F Netherlands - Japan 1-1
2026-06-15 H Spain - Cape Verde 3-0
2026-06-15 G Belgium - Egypt 1-0
2026-06-15 H Saudi Arabia - Uruguay 1-1
2026-06-15 G Iran - New Zealand 2-0
2026-06-15 J Argentina - Algeria 2-0
2026-06-16 J Austria - Jordan 2-0
2026-06-16 K Portugal - DR Congo 2-0
2026-06-16 I France - Senegal 2-0
2026-06-16 L England - Croatia 1-0
2026-06-16 I Iraq - Norway 1-1
2026-06-16 L Ghana - Panama 1-1
2026-06-16 K Uzbekistan - Colombia 1-1
2026-06-18 A Czechia - South Africa 1-1
2026-06-18 B Switzerland - Bosnia & Herzegovina 2-0
2026-06-18 B Canada - Qatar 1-1
2026-06-18 A Mexico - South Korea 1-1
2026-06-19 D United States - Australia 1-1
2026-06-19 C Scotland - Morocco 1-1
2026-06-19 E Ecuador - Curaçao 2-0
2026-06-19 C Brazil - Haiti 3-0
2026-06-19 D Türkiye - Paraguay 0-1
2026-06-20 F Netherlands - Sweden 2-0
2026-06-20 E Germany - Ivory Coast 2-0
2026-06-20 F Tunisia - Japan 0-1
2026-06-20 G New Zealand - Egypt 0-2
2026-06-21 H Spain - Saudi Arabia 3-0
2026-06-21 G Belgium - Iran 1-1
2026-06-21 H Uruguay - Cape Verde 2-0
2026-06-22 J Argentina - Austria 2-0
2026-06-22 I France - Iraq 3-0
2026-06-22 L Panama - Croatia 1-1
2026-06-22 I Norway - Senegal 1-1
2026-06-22 K Colombia - DR Congo 2-0
2026-06-23 K Portugal - Uzbekistan 2-0
2026-06-23 L England - Ghana 3-0
2026-06-23 J Jordan - Algeria 1-1
2026-06-24 B Switzerland - Canada 1-1
2026-06-24 B Bosnia & Herzegovina - Qatar 1-1
2026-06-24 C Scotland - Brazil 0-2
2026-06-24 C Morocco - Haiti 2-0
2026-06-24 F Japan - Sweden 1-0
2026-06-24 F Tunisia - Netherlands 0-2
2026-06-24 A Czechia - Mexico 1-1
2026-06-24 A South Africa - South Korea 1-1
2026-06-24 D Türkiye - United States 1-1
2026-06-24 D Paraguay - Australia 1-1
2026-06-25 E Ecuador - Germany 1-1
2026-06-25 E Curaçao - Ivory Coast 1-1
2026-06-25 H Cape Verde - Saudi Arabia 1-1
2026-06-25 H Uruguay - Spain 1-1
2026-06-26 G Egypt - Iran 1-1
2026-06-26 G New Zealand - Belgium 0-2
2026-06-26 I Norway - France 0-2
2026-06-26 I Senegal - Iraq 2-0
2026-06-26 K Colombia - Portugal 1-1
2026-06-26 K DR Congo - Uzbekistan 1-1
2026-06-26 J Algeria - Austria 1-1
2026-06-26 J Jordan - Argentina 0-3
2026-06-27 L Panama - England 0-2
2026-06-27 L Croatia - Ghana 2-0
Knockout path predictions
Match Stage Fixture Prediction Advances
73 Round of 32 South Korea - Canada 1-1 South Korea
74 Round of 32 Germany - Australia 2-0 Germany
75 Round of 32 Netherlands - Morocco 1-0 Netherlands
76 Round of 32 Brazil - Japan 2-0 Brazil
77 Round of 32 France - Egypt 2-0 France
78 Round of 32 Ecuador - Senegal 1-1 Senegal
79 Round of 32 Mexico - Ivory Coast 1-1 Mexico
80 Round of 32 England - Norway 2-0 England
81 Round of 32 United States - Qatar 1-0 United States
82 Round of 32 Belgium - Czechia 2-0 Belgium
83 Round of 32 Colombia - Croatia 1-1 Colombia
84 Round of 32 Spain - Austria 2-0 Spain
85 Round of 32 Switzerland - Algeria 1-0 Switzerland
86 Round of 32 Argentina - Uruguay 2-0 Argentina
87 Round of 32 Portugal - Panama 2-0 Portugal
88 Round of 32 Paraguay - Iran 1-1 Iran
89 Round of 16 Germany - France 1-1 France
90 Round of 16 South Korea - Netherlands 1-1 Netherlands
91 Round of 16 Brazil - Senegal 2-0 Brazil
92 Round of 16 Mexico - England 1-1 England
93 Round of 16 Colombia - Spain 1-1 Spain
94 Round of 16 United States - Belgium 1-1 Belgium
95 Round of 16 Argentina - Iran 2-0 Argentina
96 Round of 16 Switzerland - Portugal 1-1 Portugal
97 Quarter-final France - Netherlands 1-1 France
98 Quarter-final Spain - Belgium 1-0 Spain
99 Quarter-final Brazil - England 1-1 Brazil
100 Quarter-final Argentina - Portugal 1-1 Argentina
101 Semi-final France - Spain 1-1 France
102 Semi-final Brazil - Argentina 1-1 Argentina
103 Third-place play-off Spain - Brazil 1-0 Spain
104 Final France - Argentina 1-1 France