The projections · full-time review

How the predictor did

1st

Where it ranked Spain on day one

14.4% for the title — the market said 14.2%

Final 4

Predicted from day one

Spain, France, Argentina, England — the actual semi-finalists, with the eventual champion top of the list

25/32

Knockout picks advanced

and all three shootout losses were 50/50 calls

How it worked

1

Team strength from eight years of results

Every international since 2018 fed an attack and defence rating per team — recent games weighted heavier, friendlies discounted.

+

The ratings come from a Dixon-Coles Poisson model: a team's expected goals in a match is λ = 1.30 × e^(0.7 × (attack − opponent's defence)), so a strong attack against a weak defence multiplies a ~1.3-goal baseline upwards, and scorelines follow a Poisson distribution around those rates with the Dixon-Coles correction (ρ = −0.05) fixing the well-known blind spot on 0-0s and 1-1s.

The fit weighted matches by recency (exponential decay ξ = 0.2/year — a result from four years ago counts ~45% of one from yesterday), discounted friendlies to 40%, and fitted a home-advantage term (+0.32 on the log scale) that was zeroed at the World Cup's neutral venues — except the three hosts, who kept a +0.15-goal bump.

Teams with too little data fell back to their World Football Elo rating, mapped onto the engine's scale as (Elo − mean)/350; teams without usable Elo seeded from FIFA ranking via 1 − log(rank)/log(50).

2

A 50/50 blend with the betting market

Ratings were pulled halfway toward the bookmakers' outright title odds before a ball was kicked.

+

Each team's market title probability was converted to a z-score on the log scale and averaged 50/50 with the model's own standardised rating, then mapped back — so the entire simulation (every prize, every winnings distribution) stayed market-consistent, not just the title board.

3

Match-by-match odds blend

Each fixture's forecast was blended with a consensus of ~20 bookmakers, snapshotted daily before kickoff.

+

A daily cron pulled head-to-head odds from ~20 European books via The Odds API, stripped each book's margin (de-vig), and averaged them — a consensus that is measurably sharper than any single book. The engine's own forecast was combined with it in a log-opinion pool at weight 0.55 market / 0.45 model.

4

A learned calibration layer

A small correction model, trained on 2010–2021 tournaments and validated on 2022–2025, fixed the raw engine's mild overconfidence.

+

Raw scoreline models systematically overrate favourites and underrate draws. A multinomial-logistic layer remapped the engine's three outcome probabilities using nine features (the log-probabilities, the favourite's margin, forecast entropy, raw draw probability). It was regularised toward the identity so it could only gently bend the output, and was accepted because it improved tournaments it had never seen: 2022–2025 calibration error fell from 2.90% to 2.71% with accuracy unchanged.

5

Form updates as results landed

Every finished match nudged the winner up and the loser down — then shrank the nudge back toward the prior.

+

Updates were Elo-style: winner gains k × (1 − expected) with k = 0.07, scaled up by up to 75% for big margins. Attack and defence drifted separately on goal surprise (actual minus expected goals, clamped at ±2.25), at 0.045 per goal. All accumulated drift was shrunk 15% back toward the pre-tournament prior before use — form mattered, but one freak scoreline couldn't hijack a rating.

6

10,000 simulated tournaments

The whole remaining tournament was simulated ten thousand times per page load to produce every prize probability.

+

Within each simulation every rating first got a Gaussian wobble (σ = 0.22/√(1 + matches played) — uncertainty shrinks as evidence accumulates), which is what turned point estimates into honest credible intervals. Group games were sampled from the calibrated scoreline distributions; groups ranked points → goal difference → goals scored; the eight best thirds were slotted into the bracket by constrained matching against FIFA's allocation table; knockout draws after 90 minutes became a shootout modelled as a rating-weighted coin flip.

Each simulated tournament produced a winner for every simulated prize; counting across 10,000 runs gave the probabilities on the projections board, and crediting prizes to team owners gave everyone's expected winnings. A fixed random seed kept it reproducible.

7

What it deliberately ignored

No squad lists, no injuries, no xG, no weather, no vibes — team results and the betting market only.

+

Every layer above was kept only if it beat the previous version out-of-sample in backtests on 2010–2025 tournaments. Several fancier ideas — bivariate Poisson, player-level ratings — were tried and cut for not earning their complexity.