Open record
Open Prediction Record Every forecast is locked before kick-off and compared to the result afterwards. We keep the matches the model got right — and the ones it got wrong — so anyone can audit its long-term performance, not just a cherry-picked highlight reel.
World Cup open prediction record
47 / 58
Of the matches where the model had a clear direction, the result matched its call (about 81%, so far).
Model on track 47 Too close · unscored 38 Model missed 11
🟢 Model on track —— The result matched the model’s main call.
🟡 Too close · unscored —— Below the 55% scoring threshold — too close to call, not counted in the hit rate.
🔴 Model missed —— The result differed from the model — usually finishing, red cards, goalkeeping or individual errors.
Below-threshold matches are never scored — whether the model's lean turned out right or wrong. The gate cuts both ways.
Extra time / penalties: an extra-time winner counts as the result; a penalty shoot-out counts as a 90-minute draw.
Football is inherently uncertain — any single result can turn on a red card, injury, goalkeeping or in-game tactics. This page exists to make the model’s history public for anyone to audit, not to guarantee future outcomes.
Every prediction stays on the record
Not just the matches it got right — the ones the model missed are kept in full, and you can read every one.
See all 11 misses → ✦ Pro shows each match’s top-3 scorelines Beyond win probability, see the three most likely scorelines and the odds the model gives each. Explore Pro → All 96 matches
✦ = actual score was in the pre-locked top-3 (display only, not scored)
Jul 7 · Knockout · R16
Switzerland 0–0 PEN Colombia
Pre-match: Switzerland 26 · draw 32 · Colombia 41 — no clear lean, not scored
Pre-match top-3 1-1 16% ✦ 0-0 10% 1-2 9%
Too close · unscoredJul 7 · Knockout · R16
Argentina 3–2 Egypt
Pre-match: Argentina 84% clearly stronger → on track
Pre-match top-3 2-0 20% 3-0 16% 1-0 15%
Model on trackJul 7 · Knockout · R16
United States 1–4 Belgium
Pre-match: United States 29 · draw 33 · Belgium 38 — no clear lean, not scored
Pre-match top-3 1-1 16% 0-0 10% 1-2 9%
Too close · unscoredJul 6 · Knockout · R16
Portugal 0–1 Spain
Pre-match: Portugal 17 · draw 30 · Spain 53 — model leaned Spain (direction right); below the 55% scoring line, not scored
Pre-match top-3 1-1 14% 0-2 10% 1-2 10%
Too close · unscoredJul 6 · Knockout · R16
Mexico 2–3 England
Pre-match: Mexico 30 · draw 33 · England 37 — no clear lean, not scored
Pre-match top-3 1-1 16% 0-0 10% 1-2 9%
Too close · unscoredJul 5 · Knockout · R16
Brazil 1–2 Norway
Pre-match: Brazil 46 · draw 31 · Norway 22 — model leaned Brazil (direction wrong); below the 55% scoring line, not scored
Pre-match top-3 1-1 15% 0-0 10% 2-1 10%
Too close · unscoredJul 4 · Knockout · R16
Paraguay 0–1 France
Pre-match: France 74% clearly stronger → on track
Pre-match top-3 0-2 16% ✦ 0-1 12% 0-3 12%
Model on trackJul 4 · Knockout · R16
Canada 0–3 Morocco
Pre-match: Canada 20 · draw 31 · Morocco 50 — model leaned Morocco (direction right); below the 55% scoring line, not scored
Pre-match top-3 1-1 15% 0-0 10% 1-2 10%
Too close · unscoredJul 4 · Knockout · R32
Colombia 1–0 Ghana
Pre-match: Colombia 87% clearly stronger → on track
Pre-match top-3 2-0 21% 3-0 18% ✦ 1-0 15%
Model on trackJul 3 · Knockout · R32
Argentina 3–2 AET Cape Verde
Pre-match: Argentina 90% clearly stronger → on track
Pre-match top-3 2-0 19% 3-0 18% 1-0 13%
Model on trackJul 3 · Knockout · R32
Australia 1–1 PEN Egypt
Pre-match: Australia 41 · draw 32 · Egypt 26 — no clear lean, not scored
Pre-match top-3 ✦ 1-1 16% 0-0 10% 2-1 9%
Too close · unscoredJul 3 · Knockout · R32
Switzerland 2–0 Algeria
Pre-match: Switzerland 51 · draw 30 · Algeria 18 — model leaned Switzerland (direction right); below the 55% scoring line, not scored
Pre-match top-3 1-1 15% 2-1 10% 0-0 10%
Too close · unscoredJul 2 · Knockout · R32
Portugal 2–1 Croatia
Pre-match: Portugal 46 · draw 32 · Croatia 23 — model leaned Portugal (direction right); below the 55% scoring line, not scored
Pre-match top-3 1-1 15% 0-0 10% ✦ 2-1 10%
Too close · unscoredJul 2 · Knockout · R32
Spain 3–0 Austria
Pre-match: Spain 72% clearly stronger → on track
Pre-match top-3 2-0 15% 1-0 12% ✦ 3-0 11%
Model on trackJul 2 · Knockout · R32
United States 2–0 Bosnia-Herzegovina
Pre-match: United States 70% clearly stronger → on track
Pre-match top-3 ✦ 2-0 14% 1-0 11% 1-1 11%
Model on trackJul 1 · Knockout · R32
Belgium 3–2 AET Senegal
Pre-match: Belgium 43 · draw 26 · Senegal 31 — no clear lean, not scored
Pre-match top-3 1-1 15% 2-1 9% 0-0 9%
Too close · unscoredJul 1 · Knockout · R32
England 2–1 Congo DR
Pre-match: England 80% clearly stronger → on track
Pre-match top-3 2-0 16% 3-0 13% 1-0 11%
Model on trackJul 1 · Knockout · R32
Mexico 2–0 Ecuador
Pre-match: Mexico 38 · draw 27 · Ecuador 35 — no clear lean, not scored
Pre-match top-3 1-1 15% 0-0 9% 2-1 9%
Too close · unscoredJun 30 · Knockout · R32
France 3–0 Sweden
Pre-match: France 78% clearly stronger → on track
Pre-match top-3 2-0 16% ✦ 3-0 13% 1-0 11%
Model on trackJun 30 · Knockout · R32
Ivory Coast 1–2 Norway
Pre-match: Norway 62% favoured → on track
Pre-match top-3 1-1 13% 0-2 11% ✦ 1-2 10%
Model on trackJun 30 · Knockout · R32
Netherlands 1–1 PEN Morocco
Pre-match: Netherlands 49 · draw 26 · Morocco 25 — model leaned Netherlands (direction wrong); below the 55% scoring line, not scored
Pre-match top-3 ✦ 1-1 14% 2-1 10% 0-0 9%
Too close · unscoredJun 29 · Knockout · R32
Germany 1–1 PEN Paraguay
Pre-match: Germany 49 · draw 26 · Paraguay 25 — model leaned Germany (direction wrong); below the 55% scoring line, not scored
Pre-match top-3 ✦ 1-1 14% 2-1 10% 0-0 9%
Too close · unscoredJun 29 · Knockout · R32
Brazil 2–1 Japan
Pre-match: Brazil 49 · draw 26 · Japan 26 — model leaned Brazil (direction right); below the 55% scoring line, not scored
Pre-match top-3 1-1 14% ✦ 2-1 10% 0-0 9%
Too close · unscoredJun 28 · Knockout · R32
South Africa 0–1 Canada
Pre-match: Canada 58% favoured → on track
Pre-match top-3 1-1 13% 0-2 10% 1-2 10%
Model on trackJun 28 · Group Stage · Group J
Algeria 3–3 Austria
Pre-match: Algeria 32 · draw 29 · Austria 39 — no clear lean, not scored
Pre-match top-3 1-1 16% 0-0 10% 1-2 9%
Too close · unscoredJun 28 · Group Stage · Group J
Jordan 1–3 Argentina
Pre-match: Argentina 89% clearly stronger → on track
Pre-match top-3 0-3 13% 0-2 11% 0-4 11%
Model on trackJun 27 · Group Stage · Group K
Colombia 0–0 Portugal
Pre-match: Colombia 28 · draw 28 · Portugal 44 — no clear lean, not scored
Pre-match top-3 1-1 16% ✦ 0-0 10% 1-2 9%
Too close · unscoredJun 27 · Group Stage · Group K
Congo DR 3–1 Uzbekistan
Pre-match: Congo DR 37 · draw 29 · Uzbekistan 34 — no clear lean, not scored
Pre-match top-3 1-1 16% 0-0 10% 2-1 9%
Too close · unscoredJun 27 · Group Stage · Group L
Panama 0–2 England
Pre-match: England 71% clearly stronger → on track
Pre-match top-3 ✦ 0-2 12% 1-1 11% 0-3 10%
Model on trackJun 27 · Group Stage · Group L
Croatia 2–1 Ghana
Pre-match: Croatia 80% clearly stronger → on track
Pre-match top-3 2-0 13% 3-0 11% ✦ 2-1 8%
Model on trackJun 27 · Group Stage · Group G
New Zealand 1–5 Belgium
Pre-match: Belgium 88% clearly stronger → on track
Pre-match top-3 0-3 13% 0-2 12% 0-4 11%
Model on trackJun 27 · Group Stage · Group G
Egypt 1–1 Iran
Pre-match: Egypt 29 · draw 29 · Iran 43 — no clear lean, not scored
Pre-match top-3 ✦ 1-1 16% 0-0 10% 1-2 9%
Too close · unscoredJun 27 · Group Stage · Group H
Cape Verde 0–0 Saudi Arabia
Pre-match: Cape Verde 29 · draw 29 · Saudi Arabia 42 — no clear lean, not scored
Pre-match top-3 1-1 16% ✦ 0-0 10% 1-2 9%
Too close · unscoredJun 27 · Group Stage · Group H
Uruguay 0–1 Spain
Pre-match: Spain 61% favoured → on track
Pre-match top-3 1-1 13% 0-2 11% 1-2 10%
Model on trackJun 26 · Group Stage · Group I
Norway 1–4 France
Pre-match: France 60% favoured → on track
Pre-match top-3 1-1 13% 0-2 11% 1-2 10%
Model on trackJun 26 · Group Stage · Group I
Senegal 5–0 Iraq
Pre-match: Senegal 67% clearly stronger → on track
Pre-match top-3 2-0 12% 1-1 12% 2-1 10%
Model on trackJun 26 · Group Stage · Group D
Türkiye 3–2 United States
Pre-match: Türkiye 32 · draw 31 · United States 37 — no clear lean, not scored
Pre-match top-3 1-1 15% 1-2 9% 0-0 9%
Too close · unscoredJun 26 · Group Stage · Group D
Paraguay 0–0 Australia
Pre-match: Paraguay 38 · draw 31 · Australia 31 — no clear lean, not scored
Pre-match top-3 1-1 15% 2-1 9% ✦ 0-0 9%
Too close · unscoredJun 25 · Group Stage · Group F
Tunisia 1–3 Netherlands
Pre-match: Netherlands 84% clearly stronger → on track
Pre-match top-3 0-2 18% 0-3 15% 0-1 12%
Model on trackJun 25 · Group Stage · Group F
Japan 1–1 Sweden
Pre-match: Japan 54 · draw 28 · Sweden 17 — model leaned Japan (direction wrong); below the 55% scoring line, not scored
Pre-match top-3 ✦ 1-1 14% 2-1 10% 2-0 10%
Too close · unscoredJun 25 · Group Stage · Group E
Ecuador 2–1 Germany
Pre-match: Ecuador 30 · draw 31 · Germany 39 — no clear lean, not scored
Pre-match top-3 1-1 15% 1-2 9% 0-0 9%
Too close · unscoredJun 25 · Group Stage · Group E
Curaçao 0–2 Ivory Coast
Pre-match: Ivory Coast 71% clearly stronger → on track
Pre-match top-3 ✦ 0-2 14% 1-1 11% 0-3 10%
Model on trackJun 25 · Group Stage · Group A
Czechia 0–3 Mexico
Pre-match: Mexico 77% clearly stronger → on track
Pre-match top-3 0-2 15% ✦ 0-3 12% 0-1 11%
Model on trackJun 25 · Group Stage · Group A
South Africa 1–0 South Korea
Pre-match: South Korea 55% → missed; model gave the result 17%
Pre-match top-3 1-1 13% 1-2 10% 0-2 10%
Model missedJun 24 · Group Stage · Group C
Scotland 0–3 Brazil
Pre-match: Brazil 71% clearly stronger → on track
Pre-match top-3 0-2 13% 1-1 11% ✦ 0-3 10%
Model on trackJun 24 · Group Stage · Group C
Morocco 4–2 Haiti
Pre-match: Morocco 80% clearly stronger → on track
Pre-match top-3 2-0 16% 3-0 14% 1-0 11%
Model on trackJun 24 · Group Stage · Group B
Switzerland 2–1 Canada
Pre-match: Switzerland 47 · draw 30 · Canada 22 — model leaned Switzerland (direction right); below the 55% scoring line, not scored
Pre-match top-3 1-1 14% ✦ 2-1 10% 0-0 9%
Too close · unscoredJun 24 · Group Stage · Group B
Bosnia-Herzegovina 3–1 Qatar
Pre-match: Bosnia-Herzegovina 59% favoured → on track
Pre-match top-3 1-1 13% 2-0 11% 2-1 10%
Model on trackJun 24 · Group Stage · Group K
Colombia 1–0 Congo DR
Pre-match: Colombia 72% clearly stronger → on track
Pre-match top-3 2-0 14% 3-0 11% 1-1 10%
Model on trackJun 23 · Group Stage · Group L
Panama 0–1 Croatia
Pre-match: Croatia 63% favoured → on track
Pre-match top-3 1-1 12% 0-2 11% 1-2 10%
Model on trackJun 23 · Group Stage · Group L
England 0–0 Ghana
Pre-match: England 89% → missed; model gave the result 10%
Pre-match top-3 2-0 20% 3-0 18% 1-0 13%
Model missedJun 23 · Group Stage · Group K
Portugal 5–0 Uzbekistan
Pre-match: Portugal 81% clearly stronger → on track
Pre-match top-3 2-0 17% 3-0 14% 1-0 12%
Model on trackJun 23 · Group Stage · Group J
Jordan 1–2 Algeria
Pre-match: Jordan 20 · draw 29 · Algeria 51 — model leaned Algeria (direction right); below the 55% scoring line, not scored
Pre-match top-3 1-1 14% ✦ 1-2 10% 0-2 9%
Too close · unscoredJun 23 · Group Stage · Group I
Norway 3–2 Senegal
Pre-match: Norway 49 · draw 30 · Senegal 21 — model leaned Norway (direction right); below the 55% scoring line, not scored
Pre-match top-3 1-1 14% 2-1 10% 0-0 9%
Too close · unscoredJun 22 · Group Stage · Group I
France 3–0 Iraq
Pre-match: France 91% clearly stronger → on track
Pre-match top-3 ✦ 3-0 18% 2-0 18% 4-0 14%
Model on trackJun 22 · Group Stage · Group J
Argentina 2–0 Austria
Pre-match: Argentina 75% clearly stronger → on track
Pre-match top-3 ✦ 2-0 15% 3-0 12% 1-0 10%
Model on trackJun 22 · Group Stage · Group G
New Zealand 1–3 Egypt
Pre-match: Egypt 62% favoured → on track
Pre-match top-3 1-1 13% 0-2 11% 1-2 10%
Model on trackJun 21 · Group Stage · Group H
Uruguay 2–2 Cape Verde
Pre-match: Uruguay 62% → missed; model gave the result 26%
Pre-match top-3 1-1 12% 2-0 11% 2-1 10%
Model missedJun 21 · Group Stage · Group G
Belgium 0–0 Iran
Pre-match: Belgium 53 · draw 29 · Iran 18 — model leaned Belgium (direction wrong); below the 55% scoring line, not scored
Pre-match top-3 1-1 14% 2-1 10% 2-0 9%
Too close · unscoredJun 21 · Group Stage · Group H
Spain 4–0 Saudi Arabia
Pre-match: Spain 91% clearly stronger → on track
Pre-match top-3 3-0 18% 2-0 18% ✦ 4-0 14%
Model on trackJun 21 · Group Stage · Group F
Tunisia 0–4 Japan
Pre-match: Japan 75% clearly stronger → on track
Pre-match top-3 0-2 15% 0-3 12% 0-1 10%
Model on trackJun 21 · Group Stage · Group E
Ecuador 0–0 Curaçao
Pre-match: Ecuador 86% → missed; model gave the result 12%
Pre-match top-3 2-0 19% 3-0 17% 1-0 13%
Model missedJun 20 · Group Stage · Group E
Germany 2–1 Ivory Coast
Pre-match: Germany 57% favoured → on track
Pre-match top-3 1-1 13% 2-0 10% ✦ 2-1 10%
Model on trackJun 20 · Group Stage · Group F
Netherlands 5–1 Sweden
Pre-match: Netherlands 65% clearly stronger → on track
Pre-match top-3 2-0 12% 1-1 12% 2-1 10%
Model on trackJun 20 · Group Stage · Group D
Türkiye 0–1 Paraguay
Pre-match: Türkiye 38 · draw 31 · Paraguay 31 — no clear lean, not scored
Pre-match top-3 1-1 15% 2-1 9% 0-0 9%
Too close · unscoredJun 20 · Group Stage · Group C
Brazil 3–0 Haiti
Pre-match: Brazil 90% clearly stronger → on track
Pre-match top-3 2-0 19% ✦ 3-0 18% 4-0 13%
Model on trackJun 19 · Group Stage · Group C
Scotland 0–1 Morocco
Pre-match: Scotland 19 · draw 29 · Morocco 52 — model leaned Morocco (direction right); below the 55% scoring line, not scored
Pre-match top-3 1-1 14% 1-2 10% 0-2 9%
Too close · unscoredJun 19 · Group Stage · Group D
United States 2–0 Australia
Pre-match: United States 44 · draw 31 · Australia 25 — no clear lean, not scored
Pre-match top-3 1-1 15% 2-1 9% 0-0 9%
Too close · unscoredJun 19 · Group Stage · Group A
Mexico 1–0 South Korea
Pre-match: Mexico 72% clearly stronger → on track
Pre-match top-3 2-0 14% 3-0 10% 1-1 10%
Model on trackJun 18 · Group Stage · Group B
Canada 6–0 Qatar
Pre-match: Canada 86% clearly stronger → on track
Pre-match top-3 2-0 18% 3-0 16% 1-0 13%
Model on trackJun 18 · Group Stage · Group B
Switzerland 4–1 Bosnia-Herzegovina
Pre-match: Switzerland 77% clearly stronger → on track
Pre-match top-3 2-0 15% 3-0 12% 1-0 11%
Model on trackJun 18 · Group Stage · Group A
Czechia 1–1 South Africa
Pre-match: Czechia 50 · draw 30 · South Africa 21 — model leaned Czechia (direction wrong); below the 55% scoring line, not scored
Pre-match top-3 ✦ 1-1 14% 2-1 10% 2-0 9%
Too close · unscoredJun 18 · Group Stage · Group K
Uzbekistan 1–3 Colombia
Pre-match: Colombia 80% clearly stronger → on track
Pre-match top-3 0-2 16% 0-3 14% 0-1 11%
Model on trackJun 17 · Group Stage · Group L
Ghana 1–0 Panama
Pre-match: Ghana 25 · draw 31 · Panama 45 — model leaned Panama (direction wrong); below the 55% scoring line, not scored
Pre-match top-3 1-1 14% 1-2 10% 0-0 9%
Too close · unscoredJun 17 · Group Stage · Group L
England 4–2 Croatia
Pre-match: England 55% favoured → on track
Pre-match top-3 1-1 13% 2-1 10% 2-0 10%
Model on trackJun 17 · Group Stage · Group K
Portugal 1–1 Congo DR
Pre-match: Portugal 73% → missed; model gave the result 21%
Pre-match top-3 2-0 14% 3-0 11% ✦ 1-1 10%
Model missedJun 17 · Group Stage · Group J
Austria 3–1 Jordan
Pre-match: Austria 59% favoured → on track
Pre-match top-3 1-1 13% 2-0 11% 2-1 10%
Model on trackJun 17 · Group Stage · Group J
Argentina 3–0 Algeria
Pre-match: Argentina 82% clearly stronger → on track
Pre-match top-3 2-0 17% ✦ 3-0 15% 1-0 12%
Model on trackJun 16 · Group Stage · Group I
Iraq 1–4 Norway
Pre-match: Norway 80% clearly stronger → on track
Pre-match top-3 0-2 16% 0-3 14% 0-1 11%
Model on trackJun 16 · Group Stage · Group I
France 3–1 Senegal
Pre-match: France 74% clearly stronger → on track
Pre-match top-3 2-0 15% 3-0 11% 1-0 10%
Model on trackJun 16 · Group Stage · Group G
Iran 2–2 New Zealand
Pre-match: Iran 64% → missed; model gave the result 25%
Pre-match top-3 1-1 12% 2-0 12% 2-1 10%
Model missedJun 15 · Group Stage · Group H
Saudi Arabia 1–1 Uruguay
Pre-match: Uruguay 66% → missed; model gave the result 24%
Pre-match top-3 0-2 12% ✦ 1-1 12% 1-2 10%
Model missedJun 15 · Group Stage · Group G
Belgium 1–1 Egypt
Pre-match: Belgium 55% → missed; model gave the result 28%
Pre-match top-3 ✦ 1-1 13% 2-1 10% 2-0 10%
Model missedJun 15 · Group Stage · Group H
Spain 0–0 Cape Verde
Pre-match: Spain 91% → missed; model gave the result 9%
Pre-match top-3 2-0 19% 3-0 18% 4-0 14%
Model missedJun 15 · Group Stage · Group F
Sweden 5–1 Tunisia
Pre-match: Sweden 56% favoured → on track
Pre-match top-3 1-1 13% 2-1 10% 2-0 10%
Model on trackJun 14 · Group Stage · Group E
Ivory Coast 1–0 Ecuador
Pre-match: Ivory Coast 18 · draw 29 · Ecuador 53 — model leaned Ecuador (direction wrong); below the 55% scoring line, not scored
Pre-match top-3 1-1 14% 1-2 10% 0-2 9%
Too close · unscoredJun 14 · Group Stage · Group F
Netherlands 2–2 Japan
Pre-match: Netherlands 45 · draw 31 · Japan 25 — model leaned Netherlands (direction wrong); below the 55% scoring line, not scored
Pre-match top-3 1-1 14% 2-1 10% 0-0 9%
Too close · unscoredJun 14 · Group Stage · Group E
Germany 7–1 Curaçao
Pre-match: Germany 89% clearly stronger → on track
Pre-match top-3 2-0 20% 3-0 18% 1-0 13%
Model on trackJun 14 · Group Stage · Group D
Australia 2–0 Türkiye
Pre-match: Australia 28 · draw 31 · Türkiye 41 — no clear lean, not scored
Pre-match top-3 1-1 15% 1-2 9% 0-0 9%
Too close · unscoredJun 14 · Group Stage · Group C
Haiti 0–1 Scotland
Pre-match: Scotland 63% favoured → on track
Pre-match top-3 1-1 12% 0-2 12% 1-2 10%
Model on trackJun 13 · Group Stage · Group C
Brazil 1–1 Morocco
Pre-match: Brazil 53 · draw 29 · Morocco 18 — model leaned Brazil (direction wrong); below the 55% scoring line, not scored
Pre-match top-3 ✦ 1-1 14% 2-1 10% 2-0 9%
Too close · unscoredJun 13 · Group Stage · Group B
Qatar 1–1 Switzerland
Pre-match: Switzerland 91% → missed; model gave the result 9%
Pre-match top-3 0-2 19% 0-3 18% 0-4 14%
Model missedJun 13 · Group Stage · Group D
United States 4–1 Paraguay
Pre-match: United States 41 · draw 31 · Paraguay 28 — no clear lean, not scored
Pre-match top-3 1-1 15% 2-1 9% 0-0 9%
Too close · unscoredJun 12 · Group Stage · Group B
Canada 1–1 Bosnia-Herzegovina
Pre-match: Canada 64% → missed; model gave the result 25%
Pre-match top-3 ✦ 1-1 12% 2-0 12% 2-1 10%
Model missedJun 12 · Group Stage · Group A
South Korea 2–1 Czechia
Pre-match: South Korea 40 · draw 31 · Czechia 29 — no clear lean, not scored
Pre-match top-3 1-1 15% ✦ 2-1 9% 0-0 9%
Too close · unscoredJun 11 · Group Stage · Group A
Mexico 2–0 South Africa
Pre-match: Mexico 89% clearly stronger → on track
Pre-match top-3 ✦ 2-0 20% 3-0 18% 1-0 13%
Model on track