What is expected goals (xG) in hockey?
The single most useful hockey metric, explained from shot to season total.
A shot
- Location
- Shot type
- Rush / rebound
xG model
- Trained on history
- Outputs 0–1 probability
This shot = 0.12 xG
- ~12% to score
Team / player xG
- Chance quality
- For and against
The 30-second version
- xG turns each shot into a scoring probability using where and how it was taken.
- Summing xG measures chance quality — it predicts future scoring better than shots or goals.
- Compare goals to xG to see who is finishing above or below expectation.
From a shot to a probability
An xG model looks at the features of each unblocked shot — distance and angle to the net, shot type, whether it came off a rebound or an odd-man rush — and returns the historical probability that a shot like it scores. A point-blank slot chance might be 0.3 xG; a harmless point shot 0.02.
From probabilities to insight
Add up those probabilities and you get expected goals for and against — a measure of the quality of chances a team creates and allows. Because there are far more shots than goals, xG stabilizes faster than goal totals and predicts future results better.
Reading goals vs xG
When a player's goals sit well above their xG, they are finishing hot (or genuinely elite); below, they may be snakebitten or a poor finisher. The gap is where the interesting questions start.
Build it yourself
- 1Grab a public play-by-play dataset with shot coordinates.
- 2Start simple: bucket shots by distance and shot type to estimate scoring rates.
- 3Assign each shot its bucket's rate as a first xG estimate.
- 4Sum by player and team, then compare to actual goals.
Key terms
Newsletter
Weekly hockey analytics
Data-driven takes on performance, scouting, and team strategy. No fluff — just the numbers that matter.
No spam. Unsubscribe anytime.