Model accuracy
Honest, leakage-free backtest of the Elo + Dixon-Coles model against 4,257 international matches (2022-2025 (4,257 predictions)). A candidate only ships when the 95% bootstrap CI of the per-match score improvement excludes zero.
Score summary
| Model | Log-loss | Brier | RPS | Skill vs uniform |
|---|---|---|---|---|
| Baseline (k=50, movCap=inf, eloPerGoal=175, T=1) | 0.8873 | 0.5206 | 0.1743 | 19.2% |
| v6 (k=30, movCap=1.5, eloPerGoal=175, T=1.1677) | 0.8795 | 0.5166 | 0.1726 | n/a |
Lower is better for all three scoring rules. Skill vs uniform = 1 – (model Brier / uniform Brier). n = 4,257 holdout predictions (2022-2025 (4,257 predictions)).
Candidate changes
2 shipped · 1 deferred · 1 dominated
Lower k from 50 to 30 and cap the MoV multiplier at 1.5, so blowout results in a single tournament game do not overly shift ratings. eloPerGoal locked at 175.
DM HLN statistic = -3.645 (|DM|>2 corroborates significance). All three metrics improve: log-loss 0.8873->0.8795, Brier 0.5206->0.5166, RPS 0.1743->0.1726. CI fully below 0 — SHIPS.
Cap MoV multiplier at 1.5 only, k unchanged at 50. Isolates the cap effect from the k reduction.
DM HLN = -2.145. Smaller improvement than A but CI excludes 0. Dominated by Candidate A (which also reduces k). Not shipped.
Temperature T=1.1677 fitted on 2008-2021 train split by golden-section minimisation of log-loss, then frozen. T>1 softens the model — it is systematically overconfident, and this corrects it.
DM HLN = -4.025 (strongest signal). Fitted T=1.1677 means the model assigns too much probability to favourites — temperature scaling pulls it toward a softer distribution. log-loss 0.8873->0.8813. SHIPS.
Single scalar fitted over the {main, semi, thin} blend weights in market-blend.ts. Cannot be evaluated: martj42 CSV has scores only (no book odds), and the 2026 WC matches are the sealed test set.
DEFERRED. Correct path: after the 2026 WC completes, use the 48-match set (model predictions + Odds API prices) with a held-out final-round subset to fit the weight and report the CI. Existing weights remain unchanged.
Closing-line value
Recommended price vs the last live market price captured before kickoff. Only selections with a real book price are tracked (1x2 + totals today). Positive CLV is the leading edge signal — available the moment a match kicks off, before any result.
Methodology
FULLY LEAKAGE-FREE. (1) Predict-then-update throughout — every prediction precedes the result used to update Elo. (2) 2026 WC rows are excluded at the CSV filter step; they do not enter any calculation. (3) Temperature (Candidate B) fitted on the 2008-2021 train split only, then frozen before the 2022-2025 holdout is evaluated. (4) eloPerGoal=175 is LOCKED — never revisited or tuned here. (5) Candidate C (market-blend weight) cannot be evaluated on the historical no-odds slice and would violate the test-set rule if evaluated on 2026 WC matches — it is deferred with a documented correct path.
martj42 international_results public GitHub CSV (raw.githubusercontent.com/martj42/international_results/master/results.csv). 32,295 rows total; 319 rows from 2026 WC excluded. 31,976 rows (1990-2025) used. Walk-forward: 1990-2007 Elo warm-up; 2008-2021 train (13,275 predictions); 2022-2025 holdout (4,257 predictions). 2026 WC test set sealed — never loaded, parsed, or used.
Report generated 14 June 2026. The 2026 WC matches are the sealed one-shot test set. They are never used to tune any parameter.