Every call, recorded before puck drop, scored after.
The morning price and, when rosters were published, the lineup-stage price for every game, appended to a hash-chained file before the game and scored the next morning. Nothing here can be edited after the fact without breaking the chain.
- Scored
- 14
- Right
- 7 (50%)
- Records
- 47
- Chain head
- 892882b823
By confidence tier
| Tier | Details |
|---|---|
| coin flip | |
| lean | |
| solid | |
| strong | |
| heavy |
By game type: preseason 7 of 14.
19 games recorded
| Date | Game | Morning price (home) | Lineup-stage price | Tier | Pick | Final | Right? |
|---|---|---|---|---|---|---|---|
| 2026-09-29 | FLA at CAR | 68% | — | strong | CAR | not yet | — |
| 2026-09-29 | MTL at TOR | 44% | — | lean | MTL | not yet | — |
| 2026-09-29 | NYR at BOS | 52% | — | coin flip | BOS | not yet | — |
| 2026-09-29 | VAN at EDM | 71% | — | heavy | EDM | not yet | — |
| 2026-09-29 | CHI at VGK | 75% | — | heavy | VGK | not yet | — |
| 2026-09-26 | ANA at LAK | 50% | 59% | lean | LAK | ANA 2–6 LAK | yes |
| 2026-09-26 | CAR at NSH | 38% | 33% | strong | CAR | CAR 6–0 NSH | yes |
| 2026-09-26 | COL at UTA | 50% | 54% | coin flip | UTA | COL 0–2 UTA | yes |
| 2026-09-26 | PIT at BUF | 55% | 52% | coin flip | BUF | PIT 3–1 BUF | no |
| 2026-09-26 | SEA at VAN | 49% | 38% | solid | SEA | SEA 3–4 VAN | no |
| 2026-09-26 | WSH at PHI | 64% | 61% | solid | PHI | WSH 5–1 PHI | no |
| 2026-09-26 | STL at CHI | 40% | 45% | lean | STL | STL 2–3 CHI | no |
| 2026-09-26 | TBL at FLA | 42% | 51% | coin flip | FLA | TBL 3–2 FLA (SO) | no |
| 2026-09-26 | CGY at EDM | 70% | 76% | heavy | EDM | CGY 1–4 EDM | yes |
| 2026-09-26 | CBJ at DET | 51% | 47% | coin flip | CBJ | CBJ 4–2 DET | yes |
| 2026-09-26 | NJD at NYI | 46% | 31% | strong | NJD | NJD 4–1 NYI | yes |
| 2026-09-26 | SJS at VGK | 72% | 76% | heavy | VGK | SJS 4–2 VGK | no |
| 2026-09-26 | MTL at OTT | 61% | 62% | solid | OTT | MTL 3–4 OTT | yes |
| 2026-09-26 | OTT at MTL | 45% | 44% | lean | OTT | OTT 2–4 MTL | no |
Does the price lean anywhere?
Every slice of games (club, home and away, favourite, tier, back-to-back, month, division, season): the model's average probability against the share that actually won, with bootstrap ranges, false-discovery control across slices, and an anytime-valid sequential monitor that keeps its error rate under daily peeking.
Backtest, 7006 games: 57 slices, 1 flagged at 95% (0 survive false-discovery control): month 02 (home side) -0.034. Full table on /integrity.
Do 60% calls win 60% of the time?
- perSeason
- 2020: (n: 803, logLoss: 0.648, brier: 0.228, baseRate: 0.538, meanPredicted: 0.535, reliabilityWidth: (bins: 10 items, ece: 0.035, mode: width), reliabilityFreq: (bins: 10 items, ece: 0.039, mode: freq), eceWidth: 0.035, eceFreq: 0.039, decomposition: (bins: 10, brier: 5 fields, logLoss: 5 fields)), 2021: (n: 1210, logLoss: 0.626, brier: 0.218, baseRate: 0.539, meanPredicted: 0.539, reliabilityWidth: (bins: 10 items, ece: 0.024, mode: width), reliabilityFreq: (bins: 10 items, ece: 0.038, mode: freq), eceWidth: 0.024, eceFreq: 0.038, decomposition: (bins: 10, brier: 5 fields, logLoss: 5 fields)), 2022: (n: 1217, logLoss: 0.646, brier: 0.227, baseRate: 0.532, meanPredicted: 0.541, reliabilityWidth: (bins: 10 items, ece: 0.031, mode: width), reliabilityFreq: (bins: 10 items, ece: 0.028, mode: freq), eceWidth: 0.031, eceFreq: 0.028, decomposition: (bins: 10, brier: 5 fields, logLoss: 5 fields)), 2023: (n: 1230, logLoss: 0.654, brier: 0.231, baseRate: 0.538, meanPredicted: 0.535, reliabilityWidth: (bins: 10 items, ece: 0.03, mode: width), reliabilityFreq: (bins: 10 items, ece: 0.025, mode: freq), eceWidth: 0.03, eceFreq: 0.025, decomposition: (bins: 10, brier: 5 fields, logLoss: 5 fields)), 2024: (n: 1235, logLoss: 0.653, brier: 0.231, baseRate: 0.564, meanPredicted: 0.54, reliabilityWidth: (bins: 10 items, ece: 0.039, mode: width), reliabilityFreq: (bins: 10 items, ece: 0.035, mode: freq), eceWidth: 0.039, eceFreq: 0.035, decomposition: (bins: 10, brier: 5 fields, logLoss: 5 fields)), 2025: (n: 1311, logLoss: 0.681, brier: 0.244, baseRate: 0.522, meanPredicted: 0.541, reliabilityWidth: (bins: 10 items, ece: 0.049, mode: width), reliabilityFreq: (bins: 10 items, ece: 0.051, mode: freq), eceWidth: 0.049, eceFreq: 0.051, decomposition: (bins: 10, brier: 5 fields, logLoss: 5 fields))
- pooled
- n: 7006, logLoss: 0.652, brier: 0.23, baseRate: 0.539, meanPredicted: 0.539, reliabilityWidth: (bins: (6 fields); (7 fields); (7 fields); (7 fields); (7 fields); (7 fields); (7 fields); (7 fields); (7 fields); (7 fields), ece: 0.009, mode: width), reliabilityFreq: (bins: (7 fields); (7 fields); (7 fields); (7 fields); (7 fields); (7 fields); (7 fields); (7 fields); (7 fields); (7 fields), ece: 0.014, mode: freq), eceWidth: 0.009, eceFreq: 0.014, decomposition: (bins: 10, brier: (score: 0.23, reliability: 0, resolution: 0.018, uncertainty: 0.248, residualWithinBin: -0.001), logLoss: (score: 0.652, reliability: 0, resolution: 0.037, uncertainty: 0.69, residualWithinBin: -0.002))
The tier record above is the live version of the same question; the model card on /models carries the six-season version.
External timestamps on the chain heads
Each day the two chain heads are hashed into one root and timestamped by an RFC 3161 authority. Anyone can verify that today's predictions existed before today's games without trusting this site.
- 2026-09-29 verified · freetsa · serial 0x08A35FC6 · Sep 29 12: · root d6d77f6e5460730c…
Verification
Every pre-game price is appended to an append-only file before puck drop, each record carrying the SHA-256 of the previous one; results are appended the next morning the same way. tools/ledger.mjs verify recomputes both chains. Chain heads at build time: predictions 892882b8231b2aa7f29e421d9f67b93eaefca123fe986ef019db887b0b3021ee (47 records), results c394da0abf599d7d9803185d64fa95112680eacbaef23bd3da748f0be4ede6d6 (14 records). The model card is on the measures page; the daily email carries the same prices.