World Cup 2026

World Cup 2026 Simulator & Tournament Overview

  • UEFA Playoffs Path A - Semifinals (2026-03-26): Wales 1 - 1 Bosnia & Herzegovina (FT)
  • UEFA Playoffs Path A - Semifinals (2026-03-26): Italy 2 - 0 Northern Ireland (FT)
  • UEFA Playoffs Path A - Final (2026-03-31): Bosnia & Herzegovina 1 - 1 Italy (FT)
  • UEFA Playoffs Path B - Semifinals (2026-03-26): Ukraine 1 - 3 Sweden (FT)
  • UEFA Playoffs Path B - Semifinals (2026-03-26): Poland 2 - 1 Albania (FT)
  • UEFA Playoffs Path B - Final (2026-03-31): Sweden 3 - 2 Poland (FT)
  • UEFA Playoffs Path C - Semifinals (2026-03-26): Slovakia 3 - 4 Kosovo (FT)
  • UEFA Playoffs Path C - Semifinals (2026-03-26): Turkey 1 - 0 Romania (FT)
  • UEFA Playoffs Path C - Final (2026-03-31): Kosovo 0 - 1 Turkey (FT)
  • UEFA Playoffs Path D - Semifinals (2026-03-26): Czech Republic 2 - 2 Republic of Ireland (FT)
  • UEFA Playoffs Path D - Semifinals (2026-03-26): Denmark 4 - 0 North Macedonia (FT)
  • UEFA Playoffs Path D - Final (2026-03-31): Czech Republic 2 - 2 Denmark (FT)
  • Intercontinental Playoffs Path 1 - Semifinal (2026-03-27): New Caledonia 0 - 1 Jamaica (FT)
  • Intercontinental Playoffs Path 1 - Final (2026-03-31): DR Congo 1 - 0 Jamaica (FT)
  • Intercontinental Playoffs Path 2 - Semifinal (2026-03-26): Bolivia 2 - 1 Suriname (FT)
  • Intercontinental Playoffs Path 2 - Final (2026-04-01): Iraq 2 - 1 Bolivia (FT)
  • Group A Matchday 1 (2026-06-11): Mexico 2 - 0 South Africa (FT)
  • Group A Matchday 1 (2026-06-12): South Korea 2 - 1 Czech Republic (FT)
  • Group A Matchday 2 (2026-06-18): Czech Republic 1 - 1 South Africa (FT)
  • Group A Matchday 2 (2026-06-19): Mexico 1 - 0 South Korea (FT)
  • Group A Matchday 3 (2026-06-25): Czech Republic 0 - 3 Mexico (FT)
  • Group A Matchday 3 (2026-06-25): South Africa 1 - 0 South Korea (FT)
  • Group B Matchday 1 (2026-06-12): Canada 1 - 1 Bosnia & Herzegovina (FT)
  • Group B Matchday 1 (2026-06-13): Qatar 1 - 1 Switzerland (FT)
  • Group B Matchday 2 (2026-06-18): Switzerland 4 - 1 Bosnia & Herzegovina (FT)
  • Group B Matchday 2 (2026-06-18): Canada 6 - 0 Qatar (FT)
  • Group B Matchday 3 (2026-06-24): Switzerland 2 - 1 Canada (FT)
  • Group B Matchday 3 (2026-06-24): Bosnia & Herzegovina 3 - 1 Qatar (FT)
  • Group C Matchday 1 (2026-06-13): Brazil 1 - 1 Morocco (FT)
  • Group C Matchday 1 (2026-06-14): Haiti 0 - 1 Scotland (FT)
  • Group C Matchday 2 (2026-06-19): Scotland 0 - 1 Morocco (FT)
  • Group C Matchday 2 (2026-06-20): Brazil 3 - 0 Haiti (FT)
  • Group C Matchday 3 (2026-06-24): Scotland 0 - 3 Brazil (FT)
  • Group C Matchday 3 (2026-06-24): Morocco 4 - 2 Haiti (FT)
  • Group D Matchday 1 (2026-06-13): United States 4 - 1 Paraguay (FT)
  • Group D Matchday 1 (2026-06-14): Australia 2 - 0 Turkey (FT)
  • Group D Matchday 2 (2026-06-19): United States 2 - 0 Australia (FT)
  • Group D Matchday 2 (2026-06-20): Turkey 0 - 1 Paraguay (FT)
  • Group D Matchday 3 (2026-06-26): Turkey vs United States
  • Group D Matchday 3 (2026-06-26): Paraguay vs Australia
  • Group E Matchday 1 (2026-06-14): Germany 7 - 1 Curaçao (FT)
  • Group E Matchday 1 (2026-06-14): Ivory Coast 1 - 0 Ecuador (FT)
  • Group E Matchday 2 (2026-06-20): Germany 2 - 1 Ivory Coast (FT)
  • Group E Matchday 2 (2026-06-21): Ecuador 0 - 0 Curaçao (FT)
  • Group E Matchday 3 (2026-06-25): Curaçao 0 - 2 Ivory Coast (FT)
  • Group E Matchday 3 (2026-06-25): Ecuador 2 - 1 Germany (FT)
  • Group F Matchday 1 (2026-06-14): Netherlands 2 - 2 Japan (FT)
  • Group F Matchday 1 (2026-06-15): Sweden 5 - 1 Tunisia (FT)
  • Group F Matchday 2 (2026-06-20): Netherlands 5 - 1 Sweden (FT)
  • Group F Matchday 2 (2026-06-21): Tunisia 0 - 4 Japan (FT)
  • Group F Matchday 3 (2026-06-25): Japan 1 - 1 Sweden (FT)
  • Group F Matchday 3 (2026-06-25): Tunisia 1 - 3 Netherlands (FT)
  • Group G Matchday 1 (2026-06-15): Belgium 1 - 1 Egypt (FT)
  • Group G Matchday 1 (2026-06-16): Iran 2 - 2 New Zealand (FT)
  • Group G Matchday 2 (2026-06-21): Belgium 0 - 0 Iran (FT)
  • Group G Matchday 2 (2026-06-22): New Zealand 1 - 3 Egypt (FT)
  • Group G Matchday 3 (2026-06-27): Egypt vs Iran
  • Group G Matchday 3 (2026-06-27): New Zealand vs Belgium
  • Group H Matchday 1 (2026-06-15): Spain 0 - 0 Cabo Verde (FT)
  • Group H Matchday 1 (2026-06-15): Saudi Arabia 1 - 1 Uruguay (FT)
  • Group H Matchday 2 (2026-06-21): Spain 4 - 0 Saudi Arabia (FT)
  • Group H Matchday 2 (2026-06-21): Uruguay 2 - 2 Cabo Verde (FT)
  • Group H Matchday 3 (2026-06-27): Cabo Verde vs Saudi Arabia
  • Group H Matchday 3 (2026-06-27): Uruguay vs Spain
  • Group I Matchday 1 (2026-06-16): France 3 - 1 Senegal (FT)
  • Group I Matchday 1 (2026-06-16): Iraq 1 - 4 Norway (FT)
  • Group I Matchday 2 (2026-06-22): France 3 - 0 Iraq (FT)
  • Group I Matchday 2 (2026-06-23): Norway 3 - 2 Senegal (FT)
  • Group I Matchday 3 (2026-06-26): Norway vs France
  • Group I Matchday 3 (2026-06-26): Senegal vs Iraq
  • Group J Matchday 1 (2026-06-17): Argentina 3 - 0 Algeria (FT)
  • Group J Matchday 1 (2026-06-17): Austria 3 - 1 Jordan (FT)
  • Group J Matchday 2 (2026-06-22): Argentina 2 - 0 Austria (FT)
  • Group J Matchday 2 (2026-06-23): Jordan 1 - 2 Algeria (FT)
  • Group J Matchday 3 (2026-06-28): Algeria vs Austria
  • Group J Matchday 3 (2026-06-28): Jordan vs Argentina
  • Group K Matchday 1 (2026-06-17): Portugal 1 - 1 DR Congo (FT)
  • Group K Matchday 1 (2026-06-18): Uzbekistan 1 - 3 Colombia (FT)
  • Group K Matchday 2 (2026-06-23): Portugal 5 - 0 Uzbekistan (FT)
  • Group K Matchday 2 (2026-06-24): Colombia 1 - 0 DR Congo (FT)
  • Group K Matchday 3 (2026-06-27): Colombia vs Portugal
  • Group K Matchday 3 (2026-06-27): DR Congo vs Uzbekistan
  • Group L Matchday 1 (2026-06-17): England 4 - 2 Croatia (FT)
  • Group L Matchday 1 (2026-06-17): Ghana 1 - 0 Panama (FT)
  • Group L Matchday 2 (2026-06-23): England 0 - 0 Ghana (FT)
  • Group L Matchday 2 (2026-06-23): Panama 0 - 1 Croatia (FT)
  • Group L Matchday 3 (2026-06-27): Panama vs England
  • Group L Matchday 3 (2026-06-27): Croatia vs Ghana
  • Round of 32 (2026-06-28): South Africa vs Canada
  • Round of 32 (2026-06-29): Germany vs TBD
  • Round of 32 (2026-06-30): Netherlands vs Morocco
  • Round of 32 (2026-06-29): Brazil vs Japan
  • Round of 32 (2026-06-30): TBD vs TBD
  • Round of 32 (2026-06-30): Ivory Coast vs TBD
  • Round of 32 (2026-07-01): Mexico vs TBD
  • Round of 32 (2026-07-01): TBD vs TBD
  • Round of 32 (2026-07-02): TBD vs TBD
  • Round of 32 (2026-07-01): TBD vs TBD
  • Round of 32 (2026-07-02): TBD vs TBD
  • Round of 32 (2026-07-02): TBD vs TBD
  • Round of 32 (2026-07-03): Switzerland vs TBD
  • Round of 32 (2026-07-03): TBD vs TBD
  • Round of 32 (2026-07-04): TBD vs TBD
  • Round of 32 (2026-07-03): TBD vs TBD
  • Round of 16 (2026-07-04): TBD vs TBD
  • Round of 16 (2026-07-04): TBD vs TBD
  • Round of 16 (2026-07-05): TBD vs TBD
  • Round of 16 (2026-07-06): TBD vs TBD
  • Round of 16 (2026-07-06): TBD vs TBD
  • Round of 16 (2026-07-07): TBD vs TBD
  • Round of 16 (2026-07-07): TBD vs TBD
  • Round of 16 (2026-07-07): TBD vs TBD
  • Quarterfinals (2026-07-09): TBD vs TBD
  • Quarterfinals (2026-07-10): TBD vs TBD
  • Quarterfinals (2026-07-11): TBD vs TBD
  • Quarterfinals (2026-07-12): TBD vs TBD
  • Semifinals (2026-07-14): TBD vs TBD
  • Semifinals (2026-07-15): TBD vs TBD
  • Final (2026-07-18): TBD vs TBD
  • Final (2026-07-19): TBD vs TBD

The Project

FootySim is a dedicated simulator that allows you to predict outcomes for major football tournaments.

I built this because I enjoyed simulators like SimWorldCup and WorldCupSimulator, but I wanted more power. I wanted to run my own simulations, add custom tournaments within minutes, and visualize the data my way.

Under the Hood

The backend is powered by Python and Redis. It uses a custom implementation of the Elo rating system to calculate match probabilities in real-time.

The engine is flexible enough to handle almost any tournament format. As long as the data is available, I can add a new league or cup to the system in minutes.

Statistical Forecasts

While this interactive simulator allows for controlling the timeline, the stats.footysim.io dashboard provides stable, data-driven snapshots.

Every night, the engine runs 10,000 full-season simulations for every tournament in the database to calculate "universe-average" probabilities for champions, qualification, and relegation.

Data & Inspiration

This project wouldn't have been possible without the data, visuals, and inspiration I drew from some incredible community resources: