Silver Reyes
On view: 11, 8 live
EX-003.3 Back end: NHL All exhibits The prediction back ends
Opened 2026-04-01 Live

NHLPredictionAPI

Moneyline, goal-margin and total forecasts from a stacked ensemble trained walk-forward over 17 seasons, with shot-quality data and projected goalies as features. Odds are stored as a pre-game time series enforced by a database constraint, after an audit found most stored closing lines were taken in-play. Model changes pass a hash-locked, six-gate pre-registration. Live for the 2026-27 season.

minutes before the start start no rows odds
Figure: odds as a time series before puck drop; the cut is the constraint that no stored line may come after the start. A sketch of the rule, not data.
Status Live for the 2026-27 season
RoleDesign, architecture, testing and operation; built with AI coding agents.
StackPython, FastAPI, PostgreSQL, XGBoost
EdgeHeld for audit
Boardsharps.gg

The decision

Problem, decision, measured result

Problem

An evaluation against closing lines that were not closing lines.

An audit found that most of the stored "closing lines" had been captured after puck drop, in-play. The first season’s over/under evaluation was contaminated.

Decision

Keep odds as a pre-game time series the database enforces, and lock the evaluation.

Odds are stored as a time series with a database constraint that refuses any row after the start. Model changes pass a hash-locked, six-gate pre-registration before they can be promoted. The ensemble is trained walk-forward over 17 seasons with shot-quality data and projected goalies as features.

Result

Brier 0.247 on a locked 2025-26 check of 1,394 games (Brier: how close the probabilities landed; 0.25 is a coin flip, lower is better).

55.7% accuracy on the same check. A candidate weighting scheme that failed the gates was not promoted. A historical evaluation on that set only, not a claim about current results. Live for the 2026-27 season on sharps.gg.

Evidence

Each number with its source
  • Brier score, locked 2025-26 check 0.247 Source: project record: locked 2025-26 check, 1,394 games; lower is better, 0.25 = coin flip.
  • Accuracy, the same check 55.7% Source: the same check.
  • Odds Stored as a pre-game time series, enforced by a database constraint, after an audit found most stored closing lines were taken in-play Source: project record.
  • Gate Hash-locked, six-gate pre-registration for model changes Source: project record.
  • Data 17 seasons; shot-quality data; projected goalies Source: project record.
  • Opened 2026-04-01 Source: project record.
  • Live 2026-27 season Source: sharps.gg.

Stack and links

Everything that runs it, as stickers
PythonFastAPIPostgreSQLXGBoost
EX-003.4

Soccer Prediction API

Live