Research
How the forecasts are built — and why you can trust them
Every probability is backtested walk-forward against an 8×90-day gate before it ships, then scored live against real results as the tournament plays — methodology, backtests, and limits all in the open, including the experiments that failed.
7 short-form posts, 22 methodology docs, 19 research & backtest notes.
- 3 independent models, averaged
- 8×90-day walk-forward gate
- Failed experiments published
- Built from public data only
Can you trust the numbers?
Built to be checked
What determines whether the published probabilities are worth taking seriously: how they hold up against real results, the failures published alongside the wins, and the versioned record behind every number.
The full argument · free
Why trust these numbers
A probability publication is a credibility game. Anyone can publish numbers; the question is whether those numbers track outcomes once the matches finish. This page collects the d…
Live calibration tracker
Do the numbers track outcomes?
Brier score and calibration by tier, scored against real results and updated through the tournament. A 70%-rated outcome should happen about 70% of the time — this is where you check.
Negative results
The experiments that failed
Every model variant that did not clear the gate, published in full with its verdict. The no-ships are as visible as the wins.
Model changelog
Every version, on the record
The versioned history of the model — every retrain and architecture change, each stamped with its Brier-at-release and linked to its full notes. The number on every page traces back to a dated row here.
Methodology essentials
Start here
The three documents to read first if you want to know how the model works. Free to read in full.
How we make predictions
How we predict the World Cup
Every probability you see on this site comes from combining three statistical models — each one looking at international football from a different angle — and then running 50,000…
How we make predictions
What we predict and how
For every prediction target — match outcomes, goal totals, scorelines, individual player events — there's a standard modelling approach and a set of input variables. This page cat…
Behind the scenes
Where our data comes from
The quality of any prediction depends on the data behind it. This page maps every data source we use — from free public archives to commercial feeds — and explains what each one p…
What we tried
Research notes
Decision logs from the model build: hypothesis, backtest, result, ship-or-no-ship verdict. The failed experiments are kept on the record alongside the wins.
Not shipped · 29 May 2026
Is composite *coverage* the lever for the player-strength offset? (No)
player-composite's match coverage — whether honestly (point-in-time WC
Note · 29 May 2026
Back-filling international xG from StatsBomb open data
The model's `--use-xg` path fits `round(xG)` as the per-match Poisson response in
Not shipped · 29 May 2026
Does a player-form (momentum) offset improve match forecasts? (No)
player-form differential offset `Δ = α·(form_home − form_away)` does
Latest posts
What changed recently
Short-form notes from the most recent model runs and findings.
30 May 2026 · OnThePitch Staff
France will have six players in the final — on both benches
Six France internationals start tonight's Champions League final, five for PSG and one for Arsenal — Ousmane Dembélé against William Saliba, club rivals who become teammates in 12 days. The model has France 9% to win th…
30 May 2026 · OnThePitch Staff
Portugal's World Cup spine plays the Champions League final tonight
Four of PSG's starters in tonight's Champions League final — Vitinha, João Neves, Nuno Mendes and Gonçalo Ramos — are bound for Portugal at the World Cup. The model gives Portugal a 7.9% chance to win the tournament, an…
30 May 2026 · OnThePitch Staff
PSG vs Arsenal: what the model sees in the Champions League final
Our club-football model makes Arsenal clear favourites in tonight's Champions League final — 54% to win, 25% draw, 21% PSG — on a ClubElo advantage of nearly 100 points and an expected-goals split of 1.73 to 0.98. The m…