Track record

Two separate boxes, on purpose. The backtest below is historical evidence that the method works in general. The live record is this specific, forward-published set of predictions, scored only after the fact. They are never averaged together into one number — doing that would let a strong backtest paper over a bad live run, or vice versa.

Live record

Recording began with the round published on 2026-08-21. Every prediction in it was written to a file and committed before its matches kicked off; results are added afterwards, in a separate step, to a result field that starts as null — the probabilities themselves are never edited. A same-night result from The Odds API is marked provisional until football-data.co.uk's confirmed score replaces it; if the two ever disagree, both readings are kept, not hidden.

68 matches resolved across 7 rounds (58 provisional). Mean RPS (calibrated): 0.2186.

Too few matches to mean anything yet (n = 68, threshold n = 200). At this sample size the uncertainty on any summary statistic swamps the statistic itself. This model is not touched while that is true — changing it in response to early results would invalidate the pre-registration the rest of this site relies on.

Backtest (2014–2025, reference only)

This is the one confirmation run described in full on the Methodology page. It is historical, not forward-published, and is shown here only as a reference point — never combined with the live numbers above.

Matches
3,882 (2014–2025-26)
Verdict
PASS
d_RPS (market − model)
0.0044 [0.0026, 0.0060]
Gap closed
74%

How to verify this yourself

  1. Every published round is a JSON file in predictions/, committed to the project's git repository, with probabilities that are never edited after publication — only a result field is appended once a match is played.
  2. Recompute the SHA-256 of any prediction file and compare it against the value printed on that round's page.
  3. Once results exist, the numbers above are rebuilt directly from those same JSON files (not from a database or a spreadsheet) — anyone can re-run the same aggregation against the public files.
  4. Reproduce the backtest above with ./bin/footy backtest --league jpn1 --from 2014 --to 2025.

Independent timestamping (OpenTimestamps), Wayback Machine snapshots and a reproducible re-scoring script (verify.py) are part of this project's published plan and are not live yet — this page will link to them once they are.