What expected goals (xG) tells you that the scoreboard hides

The most expensive lesson I learned in NHL betting came from a team I’d been backing for a six-week stretch. They kept losing 3-2 and 4-3, and I kept thinking they were unlucky. They weren’t unlucky. They were generating exactly the goals their shot quality predicted; the eye test had me convinced they deserved more. The xG numbers told the real story, and once I started reading them, I stopped over-backing teams that the scoreboard flattered and started finding the teams the scoreboard was lying about.

Expected goals, often shortened to xG, is a model that assigns each shot a probability of becoming a goal based on its location, type, angle and game context. Sum every shot a team takes in a game and you get the expected goals for that team in that game. The difference between expected goals and actual goals — xGD — is the cleanest single number for telling you whether a team is performing above or below their underlying shot quality.

The reason this matters for betting is that real goals are noisier than expected goals. A team can score three on six shots one night and one on twelve shots the next, and the eye test will read those two games as fundamentally different even when the shot quality was very similar. The book’s pricing model already uses xG-style inputs. Yours should too.

How the xG calculation actually works

An xG model takes every shot recorded by the league’s tracking infrastructure and runs it through a probability function. The inputs include shot location (distance and angle from the net), shot type (wrist, snap, slap, deflection, rebound), preceding events (whether the shot followed a rebound, a turnover, a pass across the slot), the game state (5-on-5, power play, penalty kill, empty net) and the time elapsed since the last shot.

A shot from the right circle off a wrist shot at 5-on-5 with no preceding rebound is roughly 6% to become a goal. A shot from the slot off a one-time pass across the goalmouth at 5-on-5 is roughly 22%. A shot from the blue line off a slap at 5-on-5 with no traffic in front is roughly 1.5%. The model assigns these probabilities consistently across every game, then aggregates.

Hockey rink diagram showing high-danger shot zones around the net

The result is a single number per team per game that represents how many goals their shot selection should produce against an average goalie. A team that generated 3.4 xG and scored 2 had bad luck or faced a great goalie. A team that generated 1.6 xG and scored 4 had good luck or got soft saves. The single-game gap can be large, but over five or ten games, xG converges with actual goals quite tightly.

The publicly available models — Natural Stat Trick, Evolving Hockey, the league’s own NHL EDGE — produce slightly different xG numbers because they weight the inputs differently. The differences are small enough that any one of them is fine for betting purposes. Pick a source, stick with it, and read it consistently.

The xG-versus-actual-goals gap as a betting signal

The most useful single number from xG analysis is the running gap between expected and actual goals across the last ten or twenty games. A team with -3 xGD over their last ten — meaning they’ve scored three fewer goals than their shot quality predicted — is a team the market has likely discounted because of the actual goal record. Their underlying play hasn’t been as bad as the results.

Line graph comparing expected goals and actual goals over ten games

The opposite pattern is more dangerous. A team with +3 xGD over the last ten is overperforming their underlying quality, and the market has likely promoted them. The next ten games tend to revert toward the xG baseline. If the moneyline price reflects the recent goal-scoring rather than the underlying expected rate, the underdog or the under against this team has a structural edge.

NHL EDGE tracking provides millions of data points per game through infrared cameras in all 32 league arenas, which is the infrastructure that lets xG models exist in their current granularity. The data feed makes the calculation reliable. The interpretation is where the punter earns the edge.

Mean reversion in xGD takes time. A team’s xGD gap usually compresses over 15 to 25 games, but during that compression there are still individual nights where the gap shows up in the result. The bet isn’t on the next game closing the gap; the bet is on the price over the next ten or fifteen games not pricing the compression correctly. That gives you a stretch of value, not a single-game lottery ticket.

Using xG to price the totals market

Combined xG for both teams across the last ten games is the cleanest input to a totals model. If the combined number is 6.4 per game and the line is posted at 6.0, the lean is on the over. If the combined number is 5.5 and the line is at 6.0, the under has the lean.

Sportsbook display showing NHL over/under totals lines for the evening

The complication is the goalie matchup. xG-based totals models assume an average goalie at both ends. If one of the goalies is meaningfully above or below average, the model needs an adjustment. A team with combined xG of 6.4 facing an elite goalie still might land at 5.8 in actual goals, because the goalie is suppressing the conversion rate of the shots.

The shortcut I use: take the combined per-game xG, subtract 0.3 if one team is starting an above-average goalie and the other is starting an average goalie, subtract 0.5 if both are above average. The adjusted number is my line. If the book’s posted line is more than 0.4 below my adjusted number, I take the over. If it’s more than 0.4 above, I take the under.

xG and the puck line: a sharper read than the moneyline

xG goal differential — the gap between the two teams’ xG in a single game — is a direct read on whether a team has been outplaying their opponent on shot quality. If team A is averaging +0.8 xGD per game over the last ten and team B is averaging -0.5, the head-to-head xG gap is 1.3 goals, which lines up directly with the puck line.

UK sportsbook screen displaying NHL puck line handicap odds

The puck line on the better xG team at -1.5 priced at 2.00 implies 50% probability. If the xG gap suggests the average margin is closer to 1.8, the implied probability of covering -1.5 is around 56%. The 6-point implied edge is what you collect when xG-based handicapping leads you to the right side of a puck line bet.

The skating speed data from NHL EDGE adds another layer. Connor McDavid recorded 18 separate 22+ mph speed bursts in the early stretch of the 2025-26 season. Speed bursts produce high-danger shot attempts on transitions, which directly feeds the xG number. A team with elite transition speed runs a structurally higher xG than the per-shot model alone would suggest, because their shot selection comes from better-quality positions.

Where xG can lead you astray

xG is a model, not a result. It can be wrong about specific games for specific reasons that the model doesn’t capture. The most common failure is goalie quality. A team consistently outperforming xG might be doing so because they have a great goalie, not because of luck. If your model has them due to revert and they don’t, you’ve lost money against a structural advantage you misread as random.

NHL goaltender making a stick save against a close-range shot

The second failure is sample size. Ten games is the minimum useful sample for an xG read. Five games is noise. Three games is essentially nothing. Don’t make xG-based bets early in the season when the sample is still thin; wait for late October or early November to start trusting the numbers.

The third is forgetting that xG describes what’s happened, not what will happen. The model is a backward-looking statistic. The bet is forward-looking. Most of the time the two align, but occasional roster changes, injuries or coaching adjustments break the link, and the xG you saw last week is no longer the xG that should price next week’s game.

The data layer that sits above all of this

xG is one of several advanced metrics worth tracking. The broader picture of how the league’s tracking system feeds these models and which raw numbers a UK punter can actually read live is unpacked in our NHL EDGE stats betting guide.

Hockey analyst reviewing advanced statistics on a laptop
Where can a UK punter find xG free of charge?

Natural Stat Trick is the most commonly used free source for xG data, with team and player views updated within hours of each game. Evolving Hockey offers more granular models on a subscription basis. The NHL"s own statistics portal includes some xG-adjacent data through NHL EDGE, also free, though the model behind those numbers is proprietary and slightly different from the public sources.

Does NHL EDGE include xG?

Yes, NHL EDGE includes goal probability for individual shots, which is essentially the league"s own version of an xG model. The numbers are accessible through the official NHL statistics portal and refresh as games progress. The model"s specific weightings aren"t published, so most analytics communities still use Natural Stat Trick or Evolving Hockey for comparable cross-team data.

Created by the "hockeybetonline.com" editorial team.