Methodology
How every number on Pucks & Stats is built: sources, update timing, the fair price, the table probability, expected points and the small-sample rule.
Every number on Pucks & Stats comes from a stored copy of official league data, refreshed on a schedule. Pages never fetch data while you load them, so a page and the table behind it always agree.
When the numbers update
- Scores and finals: checked every 15 minutes on game days. A game is processed once, when it goes final, and its box score and shot map are stored for good.
- Standings: calculated from our own finals with the NHL tiebreak order (points, points percentage, regulation wins, regulation and overtime wins, wins, goal difference, goals for).
- Season reports (ice time, power play, faceoffs, penalties): once a day, and only after new finals.
- Injuries and transactions: checked hourly.
- Prices: a game-day snapshot each afternoon, about 4:30 PM ET.
- Contracts and cap space: checked once a day. A team’s sheet is only rewritten when its contracts change.
Fair price
The fair price averages the moneylines of the sportsbooks we track in each market, converts them to implied probabilities and removes the bookmaker margin so the two sides add up to 100%. US and Canadian books are kept apart because they are separate markets.
Table probability
The stats estimate turns each team’s points percentage from the previous season into a head-to-head chance with a log5 model, then adds 3.5 points of home-ice advantage. It knows nothing about this season’s lineups, injuries or goalies, which is exactly why the gap to the fair price is worth reading.
Expected goals (xG)
Every unblocked attempt (goals, shots on goal and misses) gets the chance it had of going in, from where it was taken (distance and angle), the shot type, the strength (power play, shorthanded, empty net) and whether it was a rebound. The model is a logistic regression trained on every located attempt of 2025-26 and this season, more than 113,000 of them. On games it never saw, it ranks goals above non-goals 76% of the time, against 68% for distance alone, and over the whole of 2025-26 it predicted 8,102 goals against 8,086 scored.
Individual expected goals (ixG) add up a player’s own attempts. Goals minus ixG is finishing: above zero, more goals than the chances. Team xG for and against, and xG share, add up both sides of every game with located shots.
Goals saved above expected (GSAx)
The expected goals of every unblocked shot a goalie faced, minus the goals he allowed; empty-net shots do not count. The goalie in net for each shot comes from the box score: the starter until his time on ice runs out, then the reliever. Above zero, he stopped more than the shots predict. The expected save percentage is the one the shots he faced predict.
Expected points
Expected points (xPTS) turn expected goals into points: xGF² ÷ (xGF² + xGA²) × 2 × GP. Luck is points minus xPTS, the part of a record that finishing, goaltending, overtime and one-goal games explain. GD PTS is the same sum on actual goals, GF² ÷ (GF² + GA²) × 2 × GP: what the goal difference is worth.
Season model
The model behind Market vs model, the division and playoff pages and the “Our model” column plays out the rest of the regular season thousands of times. Each team’s strength is its share of shot quality (75% xG share, 25% actual goal share); last season counts as a 25-game head start pulled a quarter of the way back to average, and this season’s games add on top. A game’s winner comes from the gap in strength plus home ice, 23% of games reach overtime and the loser takes a point, and the playoffs follow the league format with best-of-seven series. It knows nothing about injuries, trades or tonight’s goalie.
Contracts and cap space
Every contract figure here is a cap hit: the average annual value that counts against a team’s salary cap, not the money paid in a given season. Cap space is the league ceiling (US$104 million for 2026-27) minus the cap hits of a team’s current contracts. It is a projection, so it moves with signings, trades, waivers and injured-reserve relief before the official figure settles.
Where a contract was missing or out of date in our data, our editors filled it from team and league announcements, checked against a second report. A player with no contract on file is shown as unsigned only when that is confirmed; a missing record never means a player has no deal. The cap value of a contract is the reported total where one is known, or the cap hit multiplied by its years.
Contract value
Best-value contracts fit a straight line through every player at the same position: forwards and defencemen by points per 82 games last season (40 games or more), goalies by goals saved above expected (20 games or more), against this season’s cap hit. The line is what a typical contract at that price produced. A player’s value is how far above or below the line he finished, so a $1 million forward and a $10 million forward are judged against what their own price usually buys. It looks back one season and says nothing about age, defence or what a player will do next.
Expected starting goalies
Expected starting goalies is our estimate of who starts in goal before the teams confirm it. For every healthy goalie on a roster it weighs his share of the team’s last 82 starts and of its starts this season, whether he started the previous game, back-to-backs (the second night usually goes to the other goalie), how many in a row he has started, days since his last start, his save percentage over his last three starts, whether he was pulled last time, and how his last game went (a loss, or four goals or more against). Who started the last meeting with the same opponent was tested and adds nothing, so it is not used. Injured goalies are left out, and a goalie new to a team starts from how often he started last season.
The weights were fitted on the first half of 2025-26 and tested on the second half, 1,362 team-games the model had not seen: the goalie it expected started 70% of the time, against 58% for the goalie with the most starts and 64% for that plus the back-to-back rule. On back-to-backs it was right 82% of the time. The percentage it shows is calibrated: goalies shown at 70 to 80% started 77% of the time, and at 80 to 90% they started 87% of the time. It is an estimate, labelled as one, and never a confirmation.
Small samples and percentiles
- Values from fewer than ten games carry a Small sample marker.
- Player percentiles compare a player with his position group (forwards, defencemen or goalies). Last season the pool is players with 40 or more games (25 for goalies); this season it is players with at least half as many games as the leader.
- A shootout game is identified when the goals scored fall one short of the final score, because the shootout winner is credited with a goal nobody scored.
Prediction-market prices
Partner prices are snapshots, not live. “Best” marks the cheapest place to buy Yes on an outcome after each venue’s fees. A price of 51¢ implies a 51% chance.
Corrections
If a number looks wrong, tell us through the contact page. We fix the data at its source in our store, so the correction reaches every page that uses it.
Spotted a wrong number, or a story we should tell?
One inbox for corrections, tips, partnerships and press. We read every message.