Expected Goals (xG) Hockey Analytics

Goals in hockey are noisy. A deflection off a defenseman’s shin pad, a screen that blocks the goaltender’s sightline for half a second, a shot that catches the crossbar and drops in rather than bouncing away — these micro-events determine whether a shot becomes a goal or a save, and they are largely outside the control of the shooter. Expected goals, or xG, exists to cut through that noise. It assigns a probability to every unblocked shot based on where it was taken, how it was generated, and what the goaltender was facing, then sums those probabilities to estimate how many goals a team should have scored or conceded based on the quality of its chances.
For bettors, xG is arguably the most valuable single metric in modern hockey analytics. It separates what happened from what should have happened, and that separation is where betting edges live. A team scoring four goals on 1.8 xG is outperforming its chance quality. A team scoring one goal on 3.2 xG is underperforming it. Neither situation is sustainable over a long window, and the inevitable correction is something the betting market does not always price in quickly.
Utilizing NHL Expected Goals Models
An xG model starts with a database of historical shots, typically hundreds of thousands of them from multiple NHL seasons. Each shot is tagged with its outcome — goal or no goal — along with a set of features that describe the circumstances of the shot. The model then uses statistical or machine learning techniques to estimate the probability that any given shot will result in a goal based on those features.
The most important feature in any xG model is shot location. A shot from the slot, the high-danger area directly in front of the net, has a much higher probability of becoming a goal than a shot from the blue line or the corner. This single variable explains more of the variance in goal scoring than any other factor, and it is the reason why shot volume metrics like Corsi, which treat all shots equally, are useful but incomplete.
Beyond location, modern xG models incorporate additional features. Shot type matters: a one-timer off a cross-ice pass is more dangerous than a wrist shot from a standing position. The game situation matters: shots on the power play tend to have higher xG because the defensive structure is compromised. Whether the shot followed a rebound, a rush, or a sustained offensive zone cycle also influences the probability. Each of these features incrementally refines the estimate, and the best models combine them into a single probability for each shot that captures the full context of how the chance was created.
The output is a number between 0 and 1 for each shot. A shot from the top of the crease on a rebound with the goaltender out of position might carry an xG of 0.45, meaning it would be a goal 45% of the time based on historical data. A wrist shot from the point through traffic might carry an xG of 0.03. Summing all of a team’s individual shot xG values over a game gives the team’s total xG for that game, which represents the number of goals the team was expected to score based on the quality and quantity of its chances.
xG For and xG Against: Reading Both Sides
Just as goal differential is a better predictor of future performance than wins alone, xG differential is a better predictor than goal differential. A team’s xG For (xGF) measures the expected goals generated by their offense. Their xG Against (xGA) measures the expected goals generated by their opponents. The difference between the two, xGF minus xGA, is the team’s expected goal differential, and it is one of the strongest predictive metrics available for NHL betting.
Teams with a positive xG differential are doing the right things structurally: generating high-quality chances and suppressing high-quality chances against. If their actual goal differential is worse than their xG differential, the gap is most likely attributable to shooting luck or goaltending performance, both of which tend to regress toward mean levels over time. The team is better than its record suggests, and the market is likely undervaluing them.
The reverse is a red flag. A team with a negative xG differential but a positive actual goal differential is winning games despite being outplayed at the chance-creation level. Their goaltender is probably performing above expectations, their shooters are converting at an unsustainable rate, or both. Betting markets tend to follow results, so these teams are often priced as better than they truly are, creating an opportunity to bet against them before the regression hits.
Applying xG to Betting Markets
The most straightforward application of xG for betting is identifying regression candidates. At any point during an NHL season, some teams have actual goal differentials that significantly exceed their xG differentials, and others have actual differentials well below their xG. These gaps do not persist. Research across multiple seasons consistently shows that xG differential is a better predictor of second-half performance than first-half actual goal differential. The team with a +0.8 xG differential per game but a +0.2 actual goal differential is more likely to improve than the team with a +0.8 actual goal differential built on a +0.2 xG differential.
For moneyline betting, this means targeting teams whose xG profile is stronger than their record. A team sitting at 15-18-4 with a top-ten xG differential is an undervalued asset on the betting market. Their odds reflect their mediocre record, but their underlying chance creation suggests the wins are coming. Conversely, a team at 20-12-3 with a bottom-ten xG differential is overvalued. The market is pricing in a win rate that the team’s process does not support.
Totals betting also benefits from xG analysis. Games between two teams with high xGF rates are structurally likely to produce more goals than games between two defensively oriented teams with low xGA rates. Comparing each team’s xGF and xGA to the league average helps you estimate whether the posted total is too high or too low, particularly when the sportsbook’s line was set before goaltender announcements or lineup changes that might shift the expected chance quality.
Player props connect to xG through individual expected goals data. Most analytics platforms now publish per-player xG rates, which show how many expected goals a player generates per sixty minutes of ice time. A forward producing 1.2 xG/60 at five-on-five but scoring at only 0.7 actual goals/60 is underperforming his chance creation and is likely to score more going forward. His anytime goal scorer prop is probably underpriced relative to his true probability of scoring.
Where xG Falls Short
No model is perfect, and xG has well-documented limitations that bettors should understand. The most significant limitation is that most publicly available xG models do not fully capture pre-shot movement. A shot from the same location can have vastly different goal probabilities depending on whether it followed a crisp cross-ice pass, a cycle play that moved the defense out of position, or a simple dump-and-chase retrieval. Some advanced models attempt to incorporate passing data, but the publicly available versions typically rely on shot location and type as primary inputs.
Goaltending quality is another factor that xG intentionally excludes. The metric is designed to measure chance quality independent of the goaltender, which is useful for evaluating team-level offensive and defensive processes but does not account for the reality that some goaltenders consistently outperform their expected save rates. If a team faces an elite goaltender who routinely posts a goals saved above expected rate in the top five league-wide, the xG model will overestimate the offensive team’s actual goal output for that game.
Sample size is a practical concern as well. At the individual game level, xG is volatile. A team can generate 3.5 xG and lose 1-0 because the goaltender was exceptional, or they can generate 1.2 xG and win 4-1 because their shooter percentage spiked. These single-game fluctuations are normal and expected. The predictive power of xG emerges over larger samples of 15 to 20 games, which means bettors should use rolling averages rather than single-game xG snapshots when making wagering decisions.
The Metric That Asks the Right Question
Most hockey statistics describe what happened. Goals, assists, wins, save percentage — these are all backward-looking measures of results. Expected goals asks a different and more useful question: what should have happened based on the process? That distinction matters because betting markets are forward-looking. The odds on tomorrow’s game reflect a prediction about the future, and predictions based on process are more reliable than predictions based on results.
The bettors who integrate xG into their handicapping do not win every bet. They still face the same variance, the same fluky bounces, and the same nights when a backup goaltender turns into a brick wall for no discernible reason. What they gain is a consistent framework for evaluating team quality that filters out the noise of short-term results. Over a full season of bets, that framework compounds into something the market cannot easily take away: an evidence-based approach to assessing value that is right more often than the scoreboard alone would suggest.