Resolve Research
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.

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.

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

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.

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.

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.