Method & prediction ledger

How the numbers are built, the gate outcomes, and the timestamped, hashed record of every prediction locked before its result was known.

About the model

Every squad is frozen at kick-off — its market value, its top-flight minutes, its Elo. The model asks one question: how far should a squad of this quality have gone? The gap between that expectation and reality is the whole site. No form, no vibes, no narrative — just what the squad was, versus what it did. Because money inflates, raw values are never compared across eras: every value figure is a share of that tournament's total, so a 2002 euro and a 2026 euro carry the same weight.

Paper Index
Squad value share plus top-5 league & Champions League apps and goals per player, each z-scored within its own tournament. What a squad was, on paper, at kick-off.
Succession
Under-23 squad value ÷ total squad value — the share of a squad's market value carried by players under 23. Near zero, and the cliff is coming — the metric the site is named for.
Elo-expected outlast %
Share of the field a squad should outlast on pre-tournament Elo. Over/under-performance is actual minus expected.
Upset score
−log₂ of the winner's pre-match probability. Saudi Arabia over Argentina at P 0.5% scores 7.7 — the century's ceiling.

Locked predictions

🔒 2026 final — locked prediction
locked 2026-07-15 · born on-site · snapshot
sha256: 60310d7f6d5c7aa5b44adb0405182a5067a7212b4be0c131c804bb06c97f3cf2 — timestamped publicly before kickoff
Pre-kickoff bracket forecast
locked 2026-07-13T18:38-04:00 · on-site snapshot
July-13 pre-registration · sha256: f8c3b05db3fe2a78e91a44bc5b3d0bd8a3834de7e1f4bd31a50eab55b2d32942
on-site file · sha256: 1661d931a27818ce032c01695cf14f90831ce4a76eaa3768279f52d0e311c285
Squad panel v1
locked 2026-07-13T19:18-04:00 · on-site snapshot
July-13 pre-registration · sha256: 8e9077128f6a08af5153c5c15f89f7a32d4cffb12a8cde6523410078c4ee0cf2
on-site file · sha256: 4e857a9037e559a843030b3cde404e078e55d2a1a2ee4b2ba9adcad390323c33
Squad panel v2 (25-year context)
locked 2026-07-13T19:32-04:00 · on-site snapshot
July-13 pre-registration · sha256: 89f106227c2dd40c29be98d1f84da1119f66e9c9aec68344c4d181420754a03e
on-site file · sha256: d97dac6f71371a5d2ca89a0578f317bd5f26e9d5b2b57b9fb29f8036430d6000
Retrospective match scorer — v1.1
The scorer refines the locked-bracket parameters for historical matches: a derived floor (minimum representable win-expectancy = ½·e⁻²·⁵ = 4.1%) caps saturated blow-outs at index 4.61. Lock discipline governs remaining-match predictions only; retrospective scoring may be versioned.

Metric definitions

CSV ↓
MetricDefinition
top-5 apps / goals / assists / minutesCareer totals in the big-five first divisions (Premier League, La Liga, Serie A, Bundesliga, Ligue 1) only — no cups, no Europe, no second tiers — frozen at the opening-match cutoff. Assists are unreliable on Transfermarkt before ~2006 and shown n/a there.
value_shareA squad's Transfermarkt value as a share of all squads' value that tournament. The inflation control — raw euros are never compared across eras.
value coveragePlayers in the squad with a Transfermarkt value at the cutoff. 2002 predates TM values (appearance metrics only).
Champions League apps / goalsCareer UEFA Champions League proper (excludes qualifying), frozen at cutoff.
cohort_shareShare of the squad's top-5 minutes held by its modal four-year birth window — how bunched a generation is.
successionUnder-23 squad value ÷ total squad value — the share of a squad's Transfermarkt market value carried by players under 23 at the opening-match cutoff. Bounded 0–1; below 0.05 flags a generational cliff. 2002 has no Transfermarkt values.
outlast_pctShare of the field a team outlasted (handles 32- vs 48-team formats).
over_underActual outlast_pct − Elo-baseline expected (10k sims through the real draw, host +100). 95% bootstrap CI.
upset_index−log₂ of the model's probability of the observed result. Matches below the model's resolution floor (4.1%) are shown ≥4.61.
squad completeness ◑Matched players ÷ squad size. A short squad understates value — flagged wherever value is shown.

Build notes

CSV ↓
TopicNote
What this isSquad quality is frozen at each tournament's opening-match cutoff and compared to the result. Expected finish is an Elo-only Monte-Carlo baseline (10k sims through the real draw, host +100); a squad-augmented model follows after the 2026 final. Descriptive, not betting advice.
Squad coverage5,728/5,759 roster slots (99.5%) are matched to a real Transfermarkt player; 31 are imputed placeholders (squad-minimum value, zero appearance metrics) so short squads don't understate value. Every squad carries exactly its named-squad size. 99 players were recovered by a club-at-cutoff cross-check where Transfermarkt and Wikipedia disagreed on a date of birth.
Points convention (tables)The tables use the FIFA all-time-table convention: 3 points a win, 1 a draw, across every match. A penalty shootout counts as a draw (teams level after 120'); an extra-time result counts as a win/loss. Shootout-decided knockouts are identifiable in the data as level-score knockout matches.
Unofficial World ChampionshipThe lineal-title data is the RSSSF list (James Allnutt, Paul Crankshaw, Jostein Nygård, Roberto Di Maggio), parsed into a separate table — never mixed into our match model. Its World-Cup rows (2002–2026) were cross-validated score-for-score against our matches (24/24 agree) and its title lineage recomputed from first principles (0 mismatches).
Paper IndexA squad's accumulated pedigree at kick-off as one number (/best-squads). Five components — squad value share, and top-5 league & Champions League appearances and goals, per player — each z-scored within its own tournament (mean 0, sd 1 across that year's squads); the composite is the mean of the available z's. Within-tournament normalization exists for the same reason value_share does: raw euros and raw appearance counts are not comparable across eras, so we score each squad against its own field. Excluded: assists (shown as a column only — unreliable pre-2006, and a missing component would penalise early squads); 2002 market values (no TM data — those squads score on the four appearance components, flagged ◑). Imputed players count as zeros. Limitation: it measures accumulated pedigree and market esteem at kickoff, not current form — career totals reward age, so a veteran-laden squad scores high regardless of trajectory.
Model probabilityEvery page quotes the same outcome-based quantity: upset_index = −log₂ P(observed 90-minute result), where the win/draw/loss probability comes from the Elo→Poisson model. The match-page pre-match trio sums to 100.0% at one decimal and reproduces the stored P (a build gate checks all 484). It is outcome-based, not scoreline-based.
Shock ledgerOn /shocks: cumulative upset index dealt and received per nation. Only matches where the lower-Elo side won or drew count; that match's index credits the underdog as dealt and the favourite as received. A favourite winning (even a blowout) is a different phenomenon and is excluded — this ledger measures giant-killing, not dominance.
Expected-vs-actual scatterEliminated 2026 dots use a provisional 48-team Monte-Carlo expected finish (in-progress tournament, knockout draw randomised); they are excluded from the official over/under leaderboards until the final. All 2002–2022 dots are the settled 32-team baseline.
Data sourcesElo: eloratings.net (dated, pre-tournament). Squads & results: Wikipedia. Player values & appearances: Transfermarkt. World Bank for per-capita context.
Match line-ups & scorersParsed from Wikipedia match footballboxes for every tournament 2002–2026: starting XIs + substitutes (on/off minutes from the substitution-arrow icons), scorers with minutes, and penalty/own-goal flags. Each XI is gated (11 starters + exactly 1 GK per side, sub-minute consistency, and each team's scorer count equal to its goals); players join our roster by Wikipedia wikilink slug, with any unresolved names queued, never guessed. 2026 is in progress — ties not yet played (the remaining semi-final, final and third-place match) show a "not yet played" note and fill in automatically.
Winning goal (Drama Index)In a decided match, the winning goal is the winner's (L+1)-th goal in chronological order, where L is the loser's final total — the goal that put the winner permanently past everything the loser managed. Goals order by base minute then added time (45+2' before 46'); scorelines include extra time, so shootout matches (level after 120') have no winning goal. Own goals count for the benefiting team. A build gate replays every covered match's goals and requires the reconstructed score to equal the stored scoreline.

Limitations

The retrospective model is lineup-blind — it knows ratings, not team-sheets, so rotated dead-rubber results (e.g. a rested XI) read as bigger shocks than they were. Birthplace is a noisy proxy for eligibility. Pre-2006 Transfermarkt assist and minute data are sparse and flagged. Per-match calendar dates are not in the dataset; matches are keyed by tournament and stage.