SportsOracle

How the hockey model works

How a game is priced · Markets · Calibration · Data

How a game is priced

  • Team strength: recent expected goals (xG) for and against, weighted toward recent games and blended with actual goals (Liiga before 2021-22: goals only, no xG published).
  • Adjustments: team goaltending (goals saved above expected, GSAx), special teams (power play and penalty kill) and back-to-backs (B2B = played the day before).
  • Regulation goals are modelled as Poisson with a tie multiplier fitted in the backtest; the overtime/shootout winner comes from the regulation win split, shrunk toward 50/50.

Markets

  • 60-min 1X2 (regulation only) and moneyline incl. OT/shootout.
  • Puck line −1.5, totals and team totals are final-score markets: the OT/SO goal is added to the winner, as bookmakers settle them.
  • Buttons show Pinnacle prices when stored (one pull per league per day; Pinnacle has no Liiga puck line or totals), otherwise the model's fair odds. A green +% pill = model % at least 5% above Pinnacle's no-margin %.

Calibration and which markets are shown

  • Walk-forward: every game is predicted only from games before it; each market is compared with a league-average baseline (same overtime logic, no team strength).
  • Per market a calibration layer (Platt or isotonic, raw if neither helps) is fitted season by season using earlier seasons only. All % on cards, edges, sorts and the acca are the calibrated values.
  • A market is offered only if it beats the baseline on both Brier and log-loss. Results: Hockey → Calibration; live results vs Pinnacle: Performance.

Data

  • NHL: NHL official API · xG/Corsi by MoneyPuck.com (non-commercial use, credited).
  • Liiga: Liiga.fi public API · shot-based model (no xG published).
  • Pinnacle prices via The Odds API (separate US-sports key), stored from 27 Oct 2026. No historical bookmaker odds, so backtest ROI and CLV can't be measured.

Data: NHL — NHL official API · xG/Corsi by MoneyPuck.com (non-commercial use, credited) · Liiga — Liiga.fi public API · shot-based model (no xG published). Probabilities are model estimates; check prices in your bookmaker app before betting.

How the hockey model works — SportsOracle