Prediction Ledger
When we report how accurate our predictions were, the predictions in that report are the ones from this ledger and nowhere else. Every value we publish is written to the ledger as it appears on the site. When a player's deadline passes (the round deadline, or for per-match games the kick-off of his match), the ledger database refuses any further value for him.
Every write is grouped into a batch, and each batch's SHA-256 fingerprint covers every row in it plus the previous batch's fingerprint, so changing one old prediction changes every fingerprint after it. The fingerprints are stamped into the Bitcoin blockchain with OpenTimestamps, which proves when they existed.
Verify it yourself
Download the dependency-free verifier at verify_prediction_ledger.py, which recomputes every fingerprint and checks the chain. Accuracy results built on the locked predictions are on model performance.