futbol methodology
Futbol Methodology
One feature, built honest. What percent of each national team's squad plays for a club ranked in the top 20 by our own Elo system.
The Futbol projection is one feature, built honest: what percent of each national team's squad plays for a club ranked in the top 20 by our own Elo system. That Elo was fit on 28,967 raw league matches across five European leagues — zero World Cup data went in, so the model isn't predicting itself.
engine
Top-20 club-Elo squad-share feature + per-match Elo noise + tighter Poisson goal model (v2)
Club Elo is fit on 28,967 raw European league matches (five leagues). National team projections use the share of each squad playing for top-20-Elo clubs as the primary feature. World Cup bracket sim uses per-match Elo noise + Poisson goal model (v2 spec, pre-registered 2026-06-12). Zero World Cup data went into Elo training — the model is not predicting itself.
data
Where the inputs come from
sources
five European leagues match data (28,967 matches), squad rosters per international tournament, FIFA fixtures + results
training
Multi-season fit on European league matches; zero World Cup data in training
holdout
World Cup tournaments are pure holdout — the projection is evaluated against actuals tournament-by-tournament
calibration
Out-of-sample performance
metric
Tournament bracket Brier + per-match HDA calibration. RPS for round-by-round advancement.
value
Pre-registered 2026-06-12 (v2 spec)
Pre-registration is the calibration honesty mechanism — the spec is locked before the tournament opens, and the projection is evaluated as-is when it closes. The /world-cup page shows live projections; /world-cup/group-stage shows the pre-reg bracket frozen for the scorecard.
key levers
What controls the projection
Club-Elo squad share
The primary feature: what fraction of each NT squad plays for a top-20-Elo club. Calibration says this single feature beats most multi-feature NT models for tournament prediction.
Pre-registration
The v2 spec was pre-registered 2026-06-12. Once kickoff happens, the bracket projection is frozen for the scorecard. Edits are noted in release notes, not silently shipped.
Per-match Elo noise (v2)
v2 spec adds per-match Elo noise rather than treating Elo as a fixed input. Tighter goal-model Poisson follows from this.
Equity ports
NWSL and PWHL share the engine architecture, ported with league-specific re-fits. Same fidelity tier as their counterparts.
faq
Common questions
Why such a simple feature for NT projections?
Because calibration says it works. Most multi-feature NT models overfit on tournament outcomes that are themselves small samples. One honestly-validated feature outperformed every multi-feature alternative we tested. We publish the simple model and report the OOS results.
How was the Elo fit?
On 28,967 raw match results from five European leagues. Standard Elo update rules. The key constraint: zero World Cup data in training, so the projection is not predicting on data it has seen.
What's the difference between /world-cup and /world-cup/group-stage?
/world-cup is the live knockout bracket, filled in as group positions clinch. /world-cup/group-stage has the pre-registered group bracket + projections, frozen for the scorecard once kickoff happens.
How does the live bracket update?
Cron-refreshed every 10 minutes during match windows. Group positions clinch, knockout slots fill, the Monte Carlo bracket re-runs. The pre-reg bracket on /world-cup/group-stage stays frozen.
What about club football?
/clubs shows the global club Elo board. Club Elo is the foundation of the NT projection — same engine, different surface.
apex framework
For the platform-wide methodology framework — pre-registration policy, data philosophy, bias controls, and honesty notes — see the
apex methodology page.