New to Modeling NHL Totals? A Step-by-Step Starting Point
To model NHL totals, estimate each team's regulation goal rate from shot and expected goals data, adjust for opponent, goaltender, and pace, then turn the two rates into a goal distribution with a Poisson or negative binomial model. Add empty-net and overtime effects, since totals usually settle including overtime and shootouts, then validate against closing totals.
Start with what the bet settles on
An NHL total is a line on combined goals, and books commonly settle full-game totals including overtime and the shootout, with a shootout counting as one goal for the winning side. Action Network's explainer on NHL betting rules sets this out: once a game goes to overtime, it is assured of exactly one more goal on the settled score. Some books also offer regulation-only markets, and team totals vary by book, so confirm the rules for the market you are modelling.
That one rule shapes the whole model. In the regular season, a tie after 60 minutes goes to five minutes of three-on-three overtime and then a shootout; in the playoffs, overtime continues until someone scores. Either way, the settled total is the regulation total plus one.
Step 1: collect the data
You need game results, shot-level or game-level expected goals split by strength state, goaltender starts, and historical closing totals with prices. MoneyPuck offers free downloads of shot data and team, skater, and goalie data by season; its data page says the files are free for non-commercial use with credit, and other uses require contacting them. NHL play-by-play is the underlying source for public models. Store everything keyed by game, team, date, and strength state, and keep the timestamp of each odds snapshot.
Step 2: estimate team goal rates
For each team, build an attacking rate and a defensive rate. Expected goals for and against are steadier than goals, so a common approach blends the two, weighted toward xG over short samples. Separate five-on-five from special teams: a team's power play and penalty kill rates matter, and so does how often it draws and takes penalties.
Regress every rate toward the league average, more strongly early in the season. A hierarchical or Bayesian model does this naturally. Then combine attack and opposing defence, with a home adjustment, into an expected regulation goal count for each side.
Step 3: adjust for goaltending
Goaltending is where the biggest single game-to-game swing usually sits. Estimate each goalie's goals saved above expected per shot, shrink it heavily toward average because it is noisy, and apply it to the opponent's expected shots. The starter is often confirmed only on game day, so either wait for confirmation or price both scenarios and weight them. Backup starts on the second night of a back-to-back are a common pattern to account for.
Step 4: account for pace and context
Shot volume varies by team style, and two fast teams produce more attempts than their individual rates suggest if your model only combines them linearly. Rest, travel, and back-to-backs affect both sides. Penalty rates by referee crew are sometimes used, though the evidence needs testing on your own data before trusting it.
Step 5: choose a goal distribution
Poisson. The simplest choice: model each team's regulation goals as Poisson with its expected rate. The sum of two independent Poisson counts is Poisson with the summed rate, which makes the total easy to compute. Independence is an assumption, not a fact: score effects and shared pace correlate the two teams' goals, which is why bivariate Poisson and Conway-Maxwell-Poisson variants exist, and it makes the regulation-tie probability below model-dependent.
Negative binomial. Game totals often show more variance than Poisson predicts, partly because of empty-net goals and partly because the true rate on the night is uncertain. A negative binomial adds a dispersion parameter for that. Fit it and compare against Poisson on held-out games.
Simulation. The most flexible option simulates the game in time slices, with rates that change by score and time remaining. It handles empty nets and overtime naturally, at the cost of more parameters.
Step 6: model the empty net
Empty-net goals are not random noise; they follow game state. A team trailing by one or two late pulls its goalie, which raises the chance of a goal for either side. Analyses at FiveThirtyEight and Hockey-Graphs documented a shift toward earlier goalie pulls during the 2010s, so use recent seasons when estimating how often late empty-net situations arise and how often they produce goals. Add them in simulation, or as a separate component conditional on the regulation score margin late in the game.
Step 7: add overtime (illustrative)
Because a regulation tie always adds exactly one goal, the effect depends on the line. Take illustrative regulation rates of 3.1 and 2.8 goals with independent Poissons and no empty-net component. The chance of a regulation tie is about 0.167.
For a line of 6.5, a 3-3 regulation tie is under but settles at 7, over. That moves the over probability from about 0.378 on regulation alone to about 0.427. For a line of 5.5, nothing changes: a 2-2 tie becomes 5, still under, and a 3-3 tie was already over. Lines where the regulation tie sits just below the number are the ones overtime moves.
Step 8: validate against closing totals
Convert closing over and under prices to probabilities, remove the margin, and compare them with the model's probabilities at the same line. Track log loss and calibration on a held-out season. Measure closing line value on any simulated or real positions: a model whose prices consistently move toward the close is capturing information, and one that does not is probably not, whatever the short-run results show. Totals markets in a sport this low-scoring are noisy, so judge over hundreds of games.
This page describes modelling method and is not betting advice.
Common first-model mistakes
Settling the model on regulation while the market settles on overtime and shootouts. Using raw recent goals instead of regressed expected goals. Ignoring the starting goaltender. Treating every half-goal line the same when overtime affects them differently. Leaking information by fitting on data that includes the games being tested.
Frequently asked questions
- Should I use Poisson or negative binomial for NHL totals?
- Start with Poisson for each team's regulation goals, because it is simple and close to how goals arrive. Then test a negative binomial, which allows more variance, against it on held-out games. Empty-net goals and uncertainty about each night's true scoring rate tend to make game totals more spread out than Poisson predicts. Use whichever scores better on log loss and calibration.
- Do NHL totals include overtime and shootouts?
- Full-game totals at most books include overtime and the shootout, with a shootout counted as one goal for the winner, as Action Network's explainer of NHL betting rules describes. Some markets are regulation-only, and team total rules differ between books. Always confirm the settlement rules for the market you are pricing, because a regulation model priced against an overtime-inclusive line will be wrong.
- How much does the starting goalie matter for a total?
- It is one of the largest single inputs, but individual goalie quality is noisy, so estimates should be shrunk heavily toward league average before use. The bigger practical issue is timing: starters are often confirmed on game day. Either wait for confirmation or price both likely starters and weight them by how likely each is to play.
- How do I know if my NHL totals model is any good?
- Compare its probabilities with no-vig closing totals over a large held-out sample. Check log loss and calibration, and whether its prices consistently point the same way the line later moves, which is closing line value. Short-run profit is a poor test in a low-scoring sport; hundreds of games are needed before results separate skill from variance.