cdatainsights.com/worldcup

104 matches.

16 cities.

3 countries.

One data pipeline.

World Cup 2026: The Data View

We track the tournament the way we track business data: probabilities, not opinions. Every match gets a transparent Elo-based win probability; every result is scored against the model — favorites, upsets, and all.

Last updated: Aug 27, 2026, 8:48 AM UTC · refreshes every 10 min

How this tournament works

Forty-eight teams arrive. Five weeks and six filters later, one is left. If you build data pipelines for a living, you already understand this tournament — it's a funnel.

  1. 48Group stageThu, Jun 11 – Sat, Jun 2712 mini-leagues of 4 — everyone plays 3 games. Top two of each league survive, plus the 8 best third-place teams.
  2. 32Round of 32Sun, Jun 28 – Fri, Jul 3Knockout begins — lose once, go home.
  3. 16Round of 16Sat, Jul 4 – Tue, Jul 7One match from the quarter-finals.
  4. 8Quarter-finalsThu, Jul 9 – Sat, Jul 11Eight left. Margins get thin.
  5. 4Semi-finalsTue, Jul 14 – Wed, Jul 15Win and you play for the trophy.
  6. 2FinalSun, Jul 19One match. MetLife Stadium, New Jersey.→ 1 champion

Every section below tracks one part of this funnel: the group tables show the first filter in progress, the upset tracker scores our model against what actually happens, the leaderboard lets you play the model yourself, and the full schedule lays out all 104 matches day by day.

Results vs the model

Every decided match, scored against the model's pre-match call — who played, what the model said, what actually happened. Upsets (the favorite failing) get flagged, and the biggest shocks get their own ranking below. The model's call is its most likely outcome — sometimes that's under 50%.

Spain0–0 (aet 1–0)Argentina
Final · Sun, Jul 19model's call: Spain 49%✓ model called it
France4–6England
Third place · Sat, Jul 18model's call: England 44%✓ model called it
England1–2Argentina
Semi-final · Wed, Jul 15model's call: Argentina 43%✓ model called it
France0–2Spain
Semi-final · Tue, Jul 14model's call: Spain 64%✓ model called it
Argentina1–1 (aet 3–1)Switzerland
Quarter-final · Sat, Jul 11model's call: Argentina 72%✗ upset — favorite failed
Norway1–1 (aet 1–2)England
Quarter-final · Sat, Jul 11model's call: England 62%✓ model called it
Spain2–1Belgium
Quarter-final · Fri, Jul 10model's call: Spain 79%✓ model called it
France2–0Morocco
Quarter-final · Thu, Jul 9model's call: France 61%✓ model called it
96 earlier results
Switzerland0–0 (4–3 pens)Colombia
Round of 16 · Tue, Jul 7model's call: Colombia 47%draw — nobody called it
Argentina3–2Egypt
Round of 16 · Tue, Jul 7model's call: Argentina 88%✓ model called it
USA1–4Belgium
Round of 16 · Mon, Jul 6model's call: Belgium 66%✓ model called it
Portugal0–1Spain
Round of 16 · Mon, Jul 6model's call: Spain 74%✓ model called it
Mexico2–3England
Round of 16 · Sun, Jul 5model's call: England 67%✓ model called it
Brazil1–2Norway
Round of 16 · Sun, Jul 5model's call: Brazil 42%draw — nobody called it
Paraguay0–1France
Round of 16 · Sat, Jul 4model's call: France 73%✓ model called it
Canada0–3Morocco
Round of 16 · Sat, Jul 4model's call: Morocco 62%✓ model called it
Colombia1–0Ghana
Round of 32 · Fri, Jul 3model's call: Colombia 88%✓ model called it
Argentina1–1 (aet 3–2)Cape Verde
Round of 32 · Fri, Jul 3model's call: Argentina 94%✗ upset — favorite failed
Australia1–1 (2–4 pens)Egypt
Round of 32 · Fri, Jul 3model's call: Australia 44%draw — nobody called it
Switzerland2–0Algeria
Round of 32 · Thu, Jul 2model's call: Switzerland 62%✓ model called it
Portugal2–1Croatia
Round of 32 · Thu, Jul 2model's call: Portugal 53%✓ model called it
Spain3–0Austria
Round of 32 · Thu, Jul 2model's call: Spain 89%✓ model called it
USA2–0Bosnia & Herzegovina
Round of 32 · Wed, Jul 1model's call: USA 57%✓ model called it
Belgium2–2 (aet 3–2)Senegal
Round of 32 · Wed, Jul 1model's call: Belgium 56%✓ model called it
England2–1DR Congo
Round of 32 · Wed, Jul 1model's call: England 88%✓ model called it
Mexico2–0Ecuador
Round of 32 · Tue, Jun 30model's call: Mexico 42%✓ model called it
France3–0Sweden
Round of 32 · Tue, Jun 30model's call: France 81%✓ model called it
Ivory Coast1–2Norway
Round of 32 · Tue, Jun 30model's call: Norway 69%✓ model called it
Netherlands1–1 (2–3 pens)Morocco
Round of 32 · Mon, Jun 29model's call: Netherlands 46%draw — nobody called it
Germany1–1 (3–4 pens)Paraguay
Round of 32 · Mon, Jun 29model's call: Germany 50%draw — nobody called it
Brazil2–1Japan
Round of 32 · Mon, Jun 29model's call: Brazil 52%✓ model called it
South Africa0–1Canada
Round of 32 · Sun, Jun 28model's call: Canada 61%✓ model called it
Algeria3–3Austria
Group stage · Group J · Sat, Jun 27model's call: Austria 46%draw — nobody called it
Jordan1–3Argentina
Group stage · Group J · Sat, Jun 27model's call: Argentina 94%✓ model called it
Colombia0–0Portugal
Group stage · Group K · Sat, Jun 27model's call: Colombia 37%draw — nobody called it
DR Congo3–1Uzbekistan
Group stage · Group K · Sat, Jun 27model's call: DR Congo 47%✓ model called it
Panama0–2England
Group stage · Group L · Sat, Jun 27model's call: England 90%✓ model called it
Croatia2–1Ghana
Group stage · Group L · Sat, Jun 27model's call: Croatia 79%✓ model called it
Egypt1–1Iran
Group stage · Group G · Fri, Jun 26model's call: Iran 39%draw — nobody called it
New Zealand1–5Belgium
Group stage · Group G · Fri, Jun 26model's call: Belgium 87%✓ model called it
Cape Verde0–0Saudi Arabia
Group stage · Group H · Fri, Jun 26model's call: Cape Verde 39%draw — nobody called it
Uruguay0–1Spain
Group stage · Group H · Fri, Jun 26model's call: Spain 87%✓ model called it
Norway1–4France
Group stage · Group I · Fri, Jun 26model's call: France 54%✓ model called it
Senegal5–0Iraq
Group stage · Group I · Fri, Jun 26model's call: Senegal 73%✓ model called it
Turkey3–2USA
Group stage · Group D · Thu, Jun 25model's call: Turkey 52%✓ model called it
Paraguay0–0Australia
Group stage · Group D · Thu, Jun 25model's call: Paraguay 39%draw — nobody called it
Japan1–1Sweden
Group stage · Group F · Thu, Jun 25model's call: Japan 60%draw — nobody called it
Tunisia1–3Netherlands
Group stage · Group F · Thu, Jun 25model's call: Netherlands 87%✓ model called it
Curaçao0–2Ivory Coast
Group stage · Group E · Thu, Jun 25model's call: Ivory Coast 77%✓ model called it
Ecuador2–1Germany
Group stage · Group E · Thu, Jun 25model's call: Germany 41%draw — nobody called it
Czech Republic0–3Mexico
Group stage · Group A · Wed, Jun 24model's call: Mexico 70%✓ model called it
South Africa1–0South Korea
Group stage · Group A · Wed, Jun 24model's call: South Korea 61%✗ upset — favorite failed
Scotland0–3Brazil
Group stage · Group C · Wed, Jun 24model's call: Brazil 72%✓ model called it
Morocco4–2Haiti
Group stage · Group C · Wed, Jun 24model's call: Morocco 85%✓ model called it
Switzerland2–1Canada
Group stage · Group B · Wed, Jun 24model's call: Switzerland 66%✓ model called it
Bosnia & Herzegovina3–1Qatar
Group stage · Group B · Wed, Jun 24model's call: Bosnia & Herzegovina 65%✓ model called it
Colombia1–0DR Congo
Group stage · Group K · Tue, Jun 23model's call: Colombia 78%✓ model called it
Panama0–1Croatia
Group stage · Group L · Tue, Jun 23model's call: Croatia 69%✓ model called it
England0–0Ghana
Group stage · Group L · Tue, Jun 23model's call: England 94%✗ upset — favorite failed
Portugal5–0Uzbekistan
Group stage · Group K · Tue, Jun 23model's call: Portugal 84%✓ model called it
Jordan1–2Algeria
Group stage · Group J · Mon, Jun 22model's call: Algeria 55%✓ model called it
Norway3–2Senegal
Group stage · Group I · Mon, Jun 22model's call: Norway 57%✓ model called it
France3–0Iraq
Group stage · Group I · Mon, Jun 22model's call: France 92%✓ model called it
Argentina2–0Austria
Group stage · Group J · Mon, Jun 22model's call: Argentina 83%✓ model called it
New Zealand1–3Egypt
Group stage · Group G · Sun, Jun 21model's call: Egypt 67%✓ model called it
Uruguay2–2Cape Verde
Group stage · Group H · Sun, Jun 21model's call: Uruguay 69%✗ upset — favorite failed
Belgium0–0Iran
Group stage · Group G · Sun, Jun 21model's call: Belgium 63%draw — nobody called it
Spain4–0Saudi Arabia
Group stage · Group H · Sun, Jun 21model's call: Spain 97%✓ model called it
Tunisia0–4Japan
Group stage · Group F · Sat, Jun 20model's call: Japan 80%✓ model called it
Ecuador0–0Curaçao
Group stage · Group E · Sat, Jun 20model's call: Ecuador 88%✗ upset — favorite failed
Germany2–1Ivory Coast
Group stage · Group E · Sat, Jun 20model's call: Germany 63%✓ model called it
Netherlands5–1Sweden
Group stage · Group F · Sat, Jun 20model's call: Netherlands 71%✓ model called it
Turkey0–1Paraguay
Group stage · Group D · Fri, Jun 19model's call: Turkey 42%draw — nobody called it
Brazil3–0Haiti
Group stage · Group C · Fri, Jun 19model's call: Brazil 91%✓ model called it
Scotland0–1Morocco
Group stage · Group C · Fri, Jun 19model's call: Morocco 59%✓ model called it
USA2–0Australia
Group stage · Group D · Fri, Jun 19model's call: Australia 43%draw — nobody called it
Mexico1–0South Korea
Group stage · Group A · Thu, Jun 18model's call: Mexico 65%✓ model called it
Canada6–0Qatar
Group stage · Group B · Thu, Jun 18model's call: Canada 80%✓ model called it
Switzerland4–1Bosnia & Herzegovina
Group stage · Group B · Thu, Jun 18model's call: Switzerland 80%✓ model called it
Czech Republic1–1South Africa
Group stage · Group A · Thu, Jun 18model's call: Czech Republic 54%draw — nobody called it
Uzbekistan1–3Colombia
Group stage · Group K · Wed, Jun 17model's call: Colombia 84%✓ model called it
Ghana1–0Panama
Group stage · Group L · Wed, Jun 17model's call: Panama 49%draw — nobody called it
England4–2Croatia
Group stage · Group L · Wed, Jun 17model's call: England 71%✓ model called it
Portugal1–1DR Congo
Group stage · Group K · Wed, Jun 17model's call: Portugal 77%✗ upset — favorite failed
Austria3–1Jordan
Group stage · Group J · Tue, Jun 16model's call: Austria 65%✓ model called it
Argentina3–0Algeria
Group stage · Group J · Tue, Jun 16model's call: Argentina 87%✓ model called it
Iraq1–4Norway
Group stage · Group I · Tue, Jun 16model's call: Norway 86%✓ model called it
France3–1Senegal
Group stage · Group I · Tue, Jun 16model's call: France 73%✓ model called it
Iran2–2New Zealand
Group stage · Group G · Mon, Jun 15model's call: Iran 70%✗ upset — favorite failed
Saudi Arabia1–1Uruguay
Group stage · Group H · Mon, Jun 15model's call: Uruguay 72%✗ upset — favorite failed
Belgium1–1Egypt
Group stage · Group G · Mon, Jun 15model's call: Belgium 66%✗ upset — favorite failed
Spain0–0Cape Verde
Group stage · Group H · Mon, Jun 15model's call: Spain 96%✗ upset — favorite failed
Sweden5–1Tunisia
Group stage · Group F · Sun, Jun 14model's call: Sweden 61%✓ model called it
Ivory Coast1–0Ecuador
Group stage · Group E · Sun, Jun 14model's call: Ecuador 58%✗ upset — favorite failed
Netherlands2–2Japan
Group stage · Group F · Sun, Jun 14model's call: Netherlands 48%draw — nobody called it
Germany7–1Curaçao
Group stage · Group E · Sun, Jun 14model's call: Germany 90%✓ model called it
Australia2–0Turkey
Group stage · Group D · Sat, Jun 13model's call: Turkey 45%draw — nobody called it
Haiti0–1Scotland
Group stage · Group C · Sat, Jun 13model's call: Scotland 70%✓ model called it
Brazil1–1Morocco
Group stage · Group C · Sat, Jun 13model's call: Brazil 50%draw — nobody called it
Qatar1–1Switzerland
Group stage · Group B · Sat, Jun 13model's call: Switzerland 93%✗ upset — favorite failed
USA4–1Paraguay
Group stage · Group D · Fri, Jun 12model's call: Paraguay 46%draw — nobody called it
Canada1–1Bosnia & Herzegovina
Group stage · Group B · Fri, Jun 12model's call: Canada 55%draw — nobody called it
South Korea2–1Czech Republic
Group stage · Group A · Thu, Jun 11model's call: South Korea 42%✓ model called it
Mexico2–0South Africa
Group stage · Group A · Thu, Jun 11model's call: Mexico 83%✓ model called it

Biggest shocks

The longer the bar, the more confident the model was — and the bigger the upset.

Spain0–0Cape Verde
Favorite: Spain 96% to win pre-match
England0–0Ghana
Favorite: England 94% to win pre-match
Argentina1–1 (aet 3–2)Cape Verde
Favorite: Argentina 94% to win pre-match
Qatar1–1Switzerland
Favorite: Switzerland 93% to win pre-match
Ecuador0–0Curaçao
Favorite: Ecuador 88% to win pre-match
Portugal1–1DR Congo
Favorite: Portugal 77% to win pre-match
Saudi Arabia1–1Uruguay
Favorite: Uruguay 72% to win pre-match
Argentina1–1 (aet 3–1)Switzerland
Favorite: Argentina 72% to win pre-match

The 8 biggest of 13 upsets so far.

Model accuracy

63.5%

Favorites won 66 of 104 decided matches.

An upset = a side with ≥55% pre-match win probability failing to win (draws count only against ≥65% favorites).

We're writing up how this page was built — get it by email.

The leaderboard

Every locked-in pick is scored against the 90-minute result (normal time — extra time and penalties don't count) — same rules as the model. Beat its accuracy on the matches you called, and you earn the Beat-the-Model badge shown next to your name.

Leaderboard goes live soon

Make your calls above — scoring switches on shortly, and every locked-in pick counts.

The model

63.5%

accuracy — the bar to beat.

Your accuracy is compared against the model on the same matches you picked, so nobody wins on cherry-picked fixtures. Correct call = 1 pt, exact 90-minute score = +2 bonus. You rank from your first scored pick.

Next fixtures

Three-way pre-match probabilities — win, draw, win — straight from the live Elo ratings.

No upcoming fixtures in the feed right now — check back after the next refresh (every 10 minutes).

All 12 groups

12 mini-leagues of 4 — everyone plays 3 games; the top two of each survive, plus the 8 best third-place teams.

Top two — advance directlyThird place — contends for a best-8 slotDimmed — eliminated

Group A

final

favorite: 🇲🇽 Mexico Elo 1914

TeamPGDPts
Mexico3+69
South Africa3-14
South Korea3-13
Czech Republic3-41

Group B

final

favorite: 🇨🇭 Switzerland Elo 1928

TeamPGDPts
Switzerland3+47
Canada3+54
Bosnia & Herzegovina3-14
Qatar3-81

Group C

final

favorite: 🇧🇷 Brazil Elo 1993

TeamPGDPts
Brazil3+67
Morocco3+37
Scotland3-33
Haiti3-60

Group D

final

favorite: 🇹🇷 Turkey Elo 1852

TeamPGDPts
USA3+46
Australia304
Paraguay3-24
Turkey3-23

Group E

final

favorite: 🇩🇪 Germany Elo 1907

TeamPGDPts
Germany3+66
Ivory Coast3+26
Ecuador304
Curaçao3-81

Group F

final

favorite: 🇳🇱 Netherlands Elo 1971

TeamPGDPts
Netherlands3+67
Japan3+45
Sweden304
Tunisia3-100

Group G

final

favorite: 🇧🇪 Belgium Elo 1947

TeamPGDPts
Belgium3+45
Egypt3+25
Iran303
New Zealand3-61

Group H

final

favorite: 🇪🇸 Spain Elo 2259

TeamPGDPts
Spain3+57
Cape Verde303
Uruguay3-12
Saudi Arabia3-42

Group I

final

favorite: 🇫🇷 France Elo 2070

TeamPGDPts
France3+89
Norway3+16
Senegal3+23
Iraq3-110

Group J

final

favorite: 🇦🇷 Argentina Elo 2173

TeamPGDPts
Argentina3+79
Austria304
Algeria3-24
Jordan3-50

Group K

final

favorite: 🇨🇴 Colombia Elo 2003

TeamPGDPts
Colombia3+37
Portugal3+55
DR Congo3+14
Uzbekistan3-90

Group L

final

favorite: 🏴󠁧󠁢󠁥󠁮󠁧󠁿 England Elo 2125

TeamPGDPts
England3+47
Croatia306
Ghana304
Panama3-40

Best eight third-placed teams

The 48-team format's data-engineering edge case: no group can compute its own fate, because the eight advancing thirds are a cross-group ranking — effectively a window function over all 12 tables at once, re-evaluated after every match.

#TeamGrpPPtsGDGF
1DR CongoadvancingK34+14
2SwedenadvancingF3407
3EcuadoradvancingE3402
4GhanaadvancingL3402
5Bosnia & HerzegovinaadvancingB34-15
6AlgeriaadvancingJ34-25
7ParaguayadvancingD34-22
8SenegaladvancingI33+28
9IranG3303
10South KoreaA33-12
11ScotlandC33-31
12UruguayH32-13

Full schedule — all 104 matches

Every kickoff across 16 stadiums, 3 countries, and 4 time zones — venue-local time first, Eastern alongside. Played matches carry the final score; upcoming ones carry the model's favorite.

Earlier results104 matches

Thu, Jun 11

2 matches
13:00 local · 15:00 ETMexico2–0South AfricaGroup A · Mexico CityFT
20:00 local · 22:00 ETSouth Korea2–1Czech RepublicGroup A · Guadalajara (Zapopan)FT

Fri, Jun 12

2 matches
15:00 local · 15:00 ETCanada1–1Bosnia & HerzegovinaGroup B · TorontoFT
18:00 local · 21:00 ETUSA4–1ParaguayGroup D · Los Angeles (Inglewood)FT

Sat, Jun 13

4 matches
12:00 local · 15:00 ETQatar1–1SwitzerlandGroup B · San Francisco Bay Area (Santa Clara)FT
18:00 local · 18:00 ETBrazil1–1MoroccoGroup C · New York/New Jersey (East Rutherford)FT
21:00 local · 21:00 ETHaiti0–1ScotlandGroup C · Boston (Foxborough)FT
21:00 local · 00:00 ETAustralia2–0TurkeyGroup D · VancouverFT

Sun, Jun 14

4 matches
12:00 local · 13:00 ETGermany7–1CuraçaoGroup E · HoustonFT
15:00 local · 16:00 ETNetherlands2–2JapanGroup F · Dallas (Arlington)FT
19:00 local · 19:00 ETIvory Coast1–0EcuadorGroup E · PhiladelphiaFT
20:00 local · 22:00 ETSweden5–1TunisiaGroup F · Monterrey (Guadalupe)FT

Mon, Jun 15

4 matches
12:00 local · 12:00 ETSpain0–0Cape VerdeGroup H · AtlantaFT
12:00 local · 15:00 ETBelgium1–1EgyptGroup G · SeattleFT
18:00 local · 18:00 ETSaudi Arabia1–1UruguayGroup H · Miami (Miami Gardens)FT
18:00 local · 21:00 ETIran2–2New ZealandGroup G · Los Angeles (Inglewood)FT

Tue, Jun 16

4 matches
15:00 local · 15:00 ETFrance3–1SenegalGroup I · New York/New Jersey (East Rutherford)FT
18:00 local · 18:00 ETIraq1–4NorwayGroup I · Boston (Foxborough)FT
20:00 local · 21:00 ETArgentina3–0AlgeriaGroup J · Kansas CityFT
21:00 local · 00:00 ETAustria3–1JordanGroup J · San Francisco Bay Area (Santa Clara)FT

Wed, Jun 17

4 matches
12:00 local · 13:00 ETPortugal1–1DR CongoGroup K · HoustonFT
15:00 local · 16:00 ETEngland4–2CroatiaGroup L · Dallas (Arlington)FT
19:00 local · 19:00 ETGhana1–0PanamaGroup L · TorontoFT
20:00 local · 22:00 ETUzbekistan1–3ColombiaGroup K · Mexico CityFT

Thu, Jun 18

4 matches
12:00 local · 12:00 ETCzech Republic1–1South AfricaGroup A · AtlantaFT
12:00 local · 15:00 ETSwitzerland4–1Bosnia & HerzegovinaGroup B · Los Angeles (Inglewood)FT
15:00 local · 18:00 ETCanada6–0QatarGroup B · VancouverFT
19:00 local · 21:00 ETMexico1–0South KoreaGroup A · Guadalajara (Zapopan)FT

Fri, Jun 19

4 matches
12:00 local · 15:00 ETUSA2–0AustraliaGroup D · SeattleFT
18:00 local · 18:00 ETScotland0–1MoroccoGroup C · Boston (Foxborough)FT
20:30 local · 20:30 ETBrazil3–0HaitiGroup C · PhiladelphiaFT
20:00 local · 23:00 ETTurkey0–1ParaguayGroup D · San Francisco Bay Area (Santa Clara)FT

Sat, Jun 20

4 matches
12:00 local · 13:00 ETNetherlands5–1SwedenGroup F · HoustonFT
16:00 local · 16:00 ETGermany2–1Ivory CoastGroup E · TorontoFT
19:00 local · 20:00 ETEcuador0–0CuraçaoGroup E · Kansas CityFT
22:00 local · 00:00 ETTunisia0–4JapanGroup F · Monterrey (Guadalupe)FT

Sun, Jun 21

4 matches
12:00 local · 12:00 ETSpain4–0Saudi ArabiaGroup H · AtlantaFT
12:00 local · 15:00 ETBelgium0–0IranGroup G · Los Angeles (Inglewood)FT
18:00 local · 18:00 ETUruguay2–2Cape VerdeGroup H · Miami (Miami Gardens)FT
18:00 local · 21:00 ETNew Zealand1–3EgyptGroup G · VancouverFT

Mon, Jun 22

4 matches
12:00 local · 13:00 ETArgentina2–0AustriaGroup J · Dallas (Arlington)FT
17:00 local · 17:00 ETFrance3–0IraqGroup I · PhiladelphiaFT
20:00 local · 20:00 ETNorway3–2SenegalGroup I · New York/New Jersey (East Rutherford)FT
20:00 local · 23:00 ETJordan1–2AlgeriaGroup J · San Francisco Bay Area (Santa Clara)FT

Tue, Jun 23

4 matches
12:00 local · 13:00 ETPortugal5–0UzbekistanGroup K · HoustonFT
16:00 local · 16:00 ETEngland0–0GhanaGroup L · Boston (Foxborough)FT
19:00 local · 19:00 ETPanama0–1CroatiaGroup L · TorontoFT
20:00 local · 22:00 ETColombia1–0DR CongoGroup K · Guadalajara (Zapopan)FT

Wed, Jun 24

6 matches
12:00 local · 15:00 ETSwitzerland2–1CanadaGroup B · VancouverFT
12:00 local · 15:00 ETBosnia & Herzegovina3–1QatarGroup B · SeattleFT
18:00 local · 18:00 ETScotland0–3BrazilGroup C · Miami (Miami Gardens)FT
18:00 local · 18:00 ETMorocco4–2HaitiGroup C · AtlantaFT
19:00 local · 21:00 ETCzech Republic0–3MexicoGroup A · Mexico CityFT
19:00 local · 21:00 ETSouth Africa1–0South KoreaGroup A · Monterrey (Guadalupe)FT

Thu, Jun 25

6 matches
16:00 local · 16:00 ETCuraçao0–2Ivory CoastGroup E · PhiladelphiaFT
16:00 local · 16:00 ETEcuador2–1GermanyGroup E · New York/New Jersey (East Rutherford)FT
18:00 local · 19:00 ETJapan1–1SwedenGroup F · Dallas (Arlington)FT
18:00 local · 19:00 ETTunisia1–3NetherlandsGroup F · Kansas CityFT
19:00 local · 22:00 ETTurkey3–2USAGroup D · Los Angeles (Inglewood)FT
19:00 local · 22:00 ETParaguay0–0AustraliaGroup D · San Francisco Bay Area (Santa Clara)FT

Fri, Jun 26

6 matches
15:00 local · 15:00 ETNorway1–4FranceGroup I · Boston (Foxborough)FT
15:00 local · 15:00 ETSenegal5–0IraqGroup I · TorontoFT
19:00 local · 20:00 ETCape Verde0–0Saudi ArabiaGroup H · HoustonFT
18:00 local · 20:00 ETUruguay0–1SpainGroup H · Guadalajara (Zapopan)FT
20:00 local · 23:00 ETEgypt1–1IranGroup G · SeattleFT
20:00 local · 23:00 ETNew Zealand1–5BelgiumGroup G · VancouverFT

Sat, Jun 27

6 matches
17:00 local · 17:00 ETPanama0–2EnglandGroup L · New York/New Jersey (East Rutherford)FT
17:00 local · 17:00 ETCroatia2–1GhanaGroup L · PhiladelphiaFT
19:30 local · 19:30 ETColombia0–0PortugalGroup K · Miami (Miami Gardens)FT
19:30 local · 19:30 ETDR Congo3–1UzbekistanGroup K · AtlantaFT
21:00 local · 22:00 ETAlgeria3–3AustriaGroup J · Kansas CityFT
21:00 local · 22:00 ETJordan1–3ArgentinaGroup J · Dallas (Arlington)FT

Sun, Jun 28

1 match
12:00 local · 15:00 ETSouth Africa0–1CanadaRound of 32 · Los Angeles (Inglewood)FT

Mon, Jun 29

3 matches
12:00 local · 13:00 ETBrazil2–1JapanRound of 32 · HoustonFT
16:30 local · 16:30 ETGermany1–1 (3–4 pens)ParaguayRound of 32 · Boston (Foxborough)FT
19:00 local · 21:00 ETNetherlands1–1 (2–3 pens)MoroccoRound of 32 · Monterrey (Guadalupe)FT

Tue, Jun 30

3 matches
12:00 local · 13:00 ETIvory Coast1–2NorwayRound of 32 · Dallas (Arlington)FT
17:00 local · 17:00 ETFrance3–0SwedenRound of 32 · New York/New Jersey (East Rutherford)FT
19:00 local · 21:00 ETMexico2–0EcuadorRound of 32 · Mexico CityFT

Wed, Jul 1

3 matches
12:00 local · 12:00 ETEngland2–1DR CongoRound of 32 · AtlantaFT
13:00 local · 16:00 ETBelgium2–2 (aet 3–2)SenegalRound of 32 · SeattleFT
17:00 local · 20:00 ETUSA2–0Bosnia & HerzegovinaRound of 32 · San Francisco Bay Area (Santa Clara)FT

Thu, Jul 2

3 matches
12:00 local · 15:00 ETSpain3–0AustriaRound of 32 · Los Angeles (Inglewood)FT
19:00 local · 19:00 ETPortugal2–1CroatiaRound of 32 · TorontoFT
20:00 local · 23:00 ETSwitzerland2–0AlgeriaRound of 32 · VancouverFT

Fri, Jul 3

3 matches
13:00 local · 14:00 ETAustralia1–1 (2–4 pens)EgyptRound of 32 · Dallas (Arlington)FT
18:00 local · 18:00 ETArgentina1–1 (aet 3–2)Cape VerdeRound of 32 · Miami (Miami Gardens)FT
20:30 local · 21:30 ETColombia1–0GhanaRound of 32 · Kansas CityFT

Sat, Jul 4

2 matches
12:00 local · 13:00 ETCanada0–3MoroccoRound of 16 · HoustonFT
17:00 local · 17:00 ETParaguay0–1FranceRound of 16 · PhiladelphiaFT

Sun, Jul 5

2 matches
16:00 local · 16:00 ETBrazil1–2NorwayRound of 16 · New York/New Jersey (East Rutherford)FT
18:00 local · 20:00 ETMexico2–3EnglandRound of 16 · Mexico CityFT

Mon, Jul 6

2 matches
14:00 local · 15:00 ETPortugal0–1SpainRound of 16 · Dallas (Arlington)FT
17:00 local · 20:00 ETUSA1–4BelgiumRound of 16 · SeattleFT

Tue, Jul 7

2 matches
12:00 local · 12:00 ETArgentina3–2EgyptRound of 16 · AtlantaFT
13:00 local · 16:00 ETSwitzerland0–0 (4–3 pens)ColombiaRound of 16 · VancouverFT

Thu, Jul 9

1 match
16:00 local · 16:00 ETFrance2–0MoroccoQuarter-final · Boston (Foxborough)FT

Fri, Jul 10

1 match
12:00 local · 15:00 ETSpain2–1BelgiumQuarter-final · Los Angeles (Inglewood)FT

Sat, Jul 11

2 matches
17:00 local · 17:00 ETNorway1–1 (aet 1–2)EnglandQuarter-final · Miami (Miami Gardens)FT
20:00 local · 21:00 ETArgentina1–1 (aet 3–1)SwitzerlandQuarter-final · Kansas CityFT

Tue, Jul 14

1 match
14:00 local · 15:00 ETFrance0–2SpainSemi-final · Dallas (Arlington)FT

Wed, Jul 15

1 match
15:00 local · 15:00 ETEngland1–2ArgentinaSemi-final · AtlantaFT

Sat, Jul 18

1 match
17:00 local · 17:00 ETFrance4–6EnglandThird place · Miami (Miami Gardens)FT

Sun, Jul 19

1 match
15:00 local · 15:00 ETSpain0–0 (aet 1–0)ArgentinaFinal · New York/New Jersey (East Rutherford)FT

How this works

sources
openfootball schedule + football-data.org results (within minutes of full time) + eloratings.net live ratings
refresh
10-minute ISR — Next.js revalidates all three feeds every 600s
model
Transparent Elo → win/draw/win probabilities, upsets, accuracy
this page
Server-rendered, zero client-side data fetching

Three open data feeds are joined against a verified 48-team mapping, scored by a textbook Elo model with one documented draw heuristic, and rendered server-side — no chart libraries, no client fetches. If a source goes down, the page degrades to its baseline snapshot instead of breaking. It's the same pipeline discipline we apply to revenue data, at toy scale.

Want your business data this fresh?

This page went from idea to production in a weekend: live sources, a defensible model, 10-minute refresh. We build the same thing for pipelines that actually pay the bills.

Book a call30 minutes, straight to your stack — no deck.

Get the technical writeup: how we built this in a weekend

Two open data feeds, one transparent Elo model, 10-minute ISR — the full architecture, the edge cases, and what it means for your data stack.