🏆 Predicta Monte Carlo tournament simulator · Dixon–Coles exact-score model · live FIFA results update each team's Elo and re-forecast matches in play

Methodology & data sources

Each simulation plays all 104 matches of the real 2026 format: 12 groups of four, top two plus the eight best third-placed teams into FIFA's actual Round-of-32 bracket (matches 73–104). Match scores are drawn from a joint Poisson score grid: expected goals follow a multiplicative Elo map (goal difference ≈ Elo diff / 180 near parity, calibrated so win probabilities track the classic Elo win expectancy, with lopsided pairings producing more total goals — as they do in reality), corrected by a Dixon–Coles low-score term (ρ = −0.10) so 0-0 and 1-1 draws occur as often as in real football. On top of that baseline each team carries an attacking and a defensive style multiplier (the Attack/defense weight slider), re-estimated live from the goals it has scored and conceded versus expectation — so a free-scoring side and a defensive one with the same rating no longer get identical scorelines; style deviations are shrunk toward the field average and bounded, keeping the win/draw/loss split anchored to Elo. Each simulated tournament also draws every team's true strength from a normal distribution around its rating (the σ slider) — point-estimate ratings compound into overconfident favourites across seven rounds, so this fattens the tails; teams that have already played get a proportionally narrower draw, since once we've watched a side its rating is better pinned down, so the forecast sharpens as the tournament unfolds. Knockout matches are played with ~10% lower scoring rates — cup football is more cautious, so 90-minute draws (and hence extra time) occur as often as in real World Cup knockouts. Drawn knockout games go to extra time (one-third intensity) and then penalties (near coin-flip, slight Elo edge). Group tiebreakers: points → goal difference → goals scored → head-to-head. Third-placed teams are slotted into the bracket by constraint-matching FIFA's allowed-group lists for each R32 match (a close approximation of FIFA's official allocation table). Hosts get a configurable Elo bonus (the slider); Mexico carries an extra share of it for the high-altitude Estadio Azteca, where its acclimatised side holds an edge over lowland opponents. Live scores are fetched from FIFA's public API (api.fifa.com) on load, every 5 minutes, and on demand: finished matches become fixed facts in every simulation and update each team's Elo on the fly (eloratings.net formula, K = 60 with the goal-margin multiplier); matches that are LIVE right now are simulated from the current score and minute — with a stoppage-time allowance, so a 90th-minute equaliser is never impossible — rather than from kick-off, and the forecast sharpens continuously as the tournament unfolds. Dimmed prediction chips on finished matches show the pre-kick-off forecast (each team's Elo as it stood before that match), so you can judge the model honestly against what actually happened. The Accuracy tab scores every finished match's pre-kick-off forecast (outcome Brier & log-loss, exact-score log-loss) and sets the full model beside the Elo-only baseline, so you can see whether the attack/defense layer is actually helping. Last synced results are cached in your browser, so the tool also works offline.

Data: final groups, fixtures & results from FIFA; Elo ratings as of June 11, 2026 from worldfootballrankings.com / eloratings.net. This is a forecast, not a promise — that's football. ⚽

Every match in play right now plus everything scheduled for today (your local time). Tap a match for live forecasts — win/draw/loss, most likely final scores, next goal, over 2.5 goals, both-teams-to-score and what's at stake in the tournament — recomputed from the current score and minute. While matches are live the app re-syncs with FIFA every ~75 seconds (otherwise every 5 minutes) and the match clock keeps ticking between syncs. Use ‹ › to browse other matchdays (preview upcoming fixtures and their forecasts) and Today to jump back.

Upcoming matches where this model's forecast diverges most from the live betting market. For each game we take the consensus of major bookmakers (EU/UK/US books via The Odds API), strip the bookmaker margin (de-vig), and compare it to the model's win/draw/loss estimate. A green edge means the model rates that outcome more likely than the market does — a possible value bet; EV uses the best price across books. Matches are sorted by how far apart the model and market are. Odds refresh on demand using your own API key. Markets move and the model can be wrong — this is a disagreement finder, not betting advice.

Enter a free API key from the-odds-api.com to load live bookmaker odds — 500 requests/month free, no credit card required.

Every fixture shows the predicted exact score — the most likely scoreline with its probability (tap or hover for alternatives). Real results sync automatically from FIFA: green = final (fixed in every simulation, prediction dims for comparison), red 🔴 = live now (simulations continue from the current score & minute). The Pts column counts finished matches.

Each slot shows the most likely team (tap or hover for the full candidate list), its chance of being in that match, and on the right its chance of advancing. The ⚽ line is the predicted exact score for the most likely pairing.

Any-match predictor

vs

How well the model has predicted the finished matches of this tournament so far, scored against the pre-kick-off forecast (each team's Elo as it stood before the match). Lower is better. The full model (with the attack/defense layer) is shown next to the Elo-only baseline so you can see whether the style adjustment is actually helping — if it isn't, lower the Attack/defense weight.

Turns the forecast into a prediction game: you bet one exact scoreline per match and earn points. For every match the app picks the scoreline that maximizes expected points under the rules below — which is often not the single most-likely score — so the season total is as high as the model can make it. Finished matches are scored against the pre-kick-off forecast (no peeking); knockouts are scored on the 90-minute result (a shootout counts as a draw).

Outcome of your betPoints
Exact score4
Right winner and goal difference (non-draw)3
Right winner, wrong margin2
Both draws, different score (e.g. bet 1:1, result 2:2)2
Wrong winner / wrong tendency0

How Predicta works

A detailed, transparent walkthrough of the data, model assumptions, live updates, tournament simulation and every calculation behind the app.

10kdefault simulations
104World Cup matches
ρ -0.10Dixon–Coles correction
K 60live Elo update

1. Tournament data

The app uses the real 2026 World Cup structure: 12 groups of four, 72 group matches, a Round of 32, then Round of 16, quarter-finals, semi-finals, bronze match and final.

  • Teams: 48 teams with baked-in World Football Elo ratings.
  • Fixtures: official FIFA match numbers and dates for group games and knockout placeholders.
  • Qualification: group winners, runners-up and the eight best third-placed teams advance.
  • Knockout bracket: FIFA's Round-of-32 placeholders are filled from group rankings and allowed third-place slots.

2. Team strength: Elo + host edge

Every team starts from an Elo rating. For a match, Predicta compares both ratings plus host advantage:

eloDiff = (EloA + hostEdgeA) − (EloB + hostEdgeB)
  • The host slider gives USA, Canada and Mexico a configurable Elo bonus.
  • Mexico receives an extra altitude-related share for Estadio Azteca conditions.
  • Finished matches update Elo before later matches are simulated, so the forecast reacts to the tournament.

3. Live Elo updates

When FIFA reports a finished match, the result becomes a fixed fact and each team's Elo is updated with the eloratings.net-style formula:

ΔElo = 60 × goalMarginMultiplier × (result − expectedWinProbability)
  • Win probability comes from the classic Elo curve: 1/(1+10^(-diff/400)).
  • Result is 1 for win, 0.5 for draw and 0 for loss; penalty shootouts count as draws for rating.
  • Goal-margin multiplier: 1 goal = 1, 2 goals = 1.5, larger wins = (11 + GD) / 8.
  • Pre-match Elos are stored so the Accuracy tab can grade forecasts without peeking.

4. Expected goals from Elo

The Elo gap is converted into expected goals through a multiplicative map. Near parity, expected goal difference is roughly eloDiff / 180; mismatches get higher total goals.

λA = base × exp(clamp(eloDiff / 460)) λB = base × exp(-clamp(eloDiff / 460))
  • Group/open-play base scoring is about 1.30 goals per team.
  • Knockout matches use about 1.17 goals per team, roughly 10% lower to model more cautious cup football.
  • Expected goals are clamped to avoid unrealistic extremes.

5. Attack/defense style layer

The attack/defense slider controls a live style adjustment on top of Elo. After finished matches, each team is compared against what Elo expected it to score and concede.

  • Attack multiplier: goals scored vs expected goals for.
  • Defense multiplier: goals conceded vs expected goals against; above 1 means it concedes more than expected.
  • Shrinkage: a prior strength of 4 expected-goals units prevents one early match from dominating.
  • Normalization: multipliers are re-centred to keep the whole field anchored to Elo.
  • Clamp: final style multipliers are limited to 0.80–1.25.

6. Exact-score model

For each match, expected goals become a full score-probability grid from 0:0 to 12:12.

  • Scores are based on independent Poisson distributions for both teams.
  • A Dixon–Coles low-score correction with ρ = -0.10 adjusts 0:0, 1:1, 1:0 and 0:1 outcomes.
  • The grid is normalized so all exact-score probabilities sum to 100%.
  • Predicted score chips show the most likely exact score plus alternatives in the tooltip/tap sheet.

7. Rating uncertainty slider

To avoid overconfident forecasts, every simulated tournament draws each team's true strength from a normal distribution around its current Elo.

trueStrength = Elo + Normal(0, σTeam)
  • The slider sets the initial uncertainty.
  • Uncertainty shrinks for teams that have already played: observed teams are better pinned down.
  • This creates realistic long-tail outcomes instead of making favourites compound too cleanly across seven rounds.

8. Monte Carlo simulation

Each run simulates the full tournament thousands of times. Every simulated tournament follows the real fixture order and bracket.

  1. Draw uncertain team strengths for that tournament.
  2. Play all group fixtures, using real final scores where available.
  3. Rank groups by points, goal difference, goals scored, head-to-head, then random lots.
  4. Select the eight best third-placed teams.
  5. Allocate third-placed teams into FIFA-compatible Round-of-32 slots.
  6. Play knockouts through the final and count how often every team reaches each stage.

9. Knockout logic

Knockout matches are simulated differently from group matches because someone must advance.

  • 90-minute score uses the cautious knockout expected-goals base.
  • If level after 90 minutes, extra time is simulated at one-third scoring intensity.
  • If still level, penalties are near 50/50 with a small Elo edge.
  • Shootout winner advances, but the 90-minute score remains important for exact-score forecasts and prediction-game scoring.

10. Live & Today forecasts

Live matches are not replayed from kick-off. The app keeps the actual current score and simulates only the remaining time.

  • Remaining match fraction is based on a 94-minute horizon to allow stoppage time.
  • Live forecasts include win/draw/loss, most likely final scores, over 2.5 goals, both teams to score and next-goal race.
  • While a match is live, FIFA sync runs about every 75 seconds; otherwise about every 5 minutes.
  • Cached FIFA data keeps the app useful offline.

11. Value Bets tab

The value tab compares the model's win/draw/loss probabilities with bookmaker consensus odds from The Odds API, if the user supplies an API key.

  • Bookmaker prices are converted to implied probabilities.
  • The bookmaker margin is removed via de-vigging.
  • Outcomes are sorted by divergence between model probability and market probability.
  • Expected value uses the best available price, but this is a disagreement finder, not betting advice.

12. Accuracy tab

The Accuracy tab evaluates only finished matches and only with the forecast that existed before kick-off.

  • Brier score: squared error across win/draw/loss probabilities; lower is better.
  • Outcome log-loss: rewards assigning high probability to the actual outcome; lower is better.
  • Exact-score log-loss: grades the probability assigned to the real scoreline.
  • The full model is compared with an Elo-only baseline so the style layer can be judged honestly.

13. Prediction Game

The game does not always pick the single most likely score. It chooses the scoreline with the highest expected points under the scoring rules.

  • 4 points: exact score.
  • 3 points: right non-draw winner and exact goal difference.
  • 2 points: right winner with wrong margin, or both draw with another draw score.
  • 0 points: wrong winner/tendency.
  • For finished matches, the app scores the honest pre-kick-off pick.

14. Important limits

Predicta is intentionally transparent, but it is still a model.

  • It does not know injuries, line-ups, tactical surprises or motivation unless reflected in ratings/results.
  • Early tournament style signals are heavily shrunk because a few goals can be noisy.
  • Elo ratings are strong but not perfect; uncertainty is there to model that imperfection.
  • Small probabilities need more simulations to look smooth, especially deep knockout paths.