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.
- Draw uncertain team strengths for that tournament.
- Play all group fixtures, using real final scores where available.
- Rank groups by points, goal difference, goals scored, head-to-head, then random lots.
- Select the eight best third-placed teams.
- Allocate third-placed teams into FIFA-compatible Round-of-32 slots.
- 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.