Analysis

Expected Goals in Hockey (xG) Explained Simply

Expected goals (xG) adds shot quality to hockey analytics. Here's a plain-language explanation of how xG is calculated, what xGF% means, and why the gap between xG and actual goals is so revealing.

Frank

Expected goals — usually written as xG — is one of the most powerful analytics concepts in modern hockey. It takes the basic idea behind shot metrics like Corsi and Fenwick and adds a crucial missing ingredient: shot quality. If you’ve been wondering what expected goals means and how it works, this guide breaks it down in plain language.

What Are Expected Goals (xG)?

Expected goals is a model that assigns a probability of scoring to every unblocked shot attempt based on the characteristics of that shot. Instead of treating every shot the same way — like Corsi and Fenwick do — xG recognizes that some shots are far more dangerous than others.

A one-timer from the low slot on a cross-ice pass might have a 25% chance of becoming a goal. A wrist shot from the blue line with no screen might have a 2% chance. Expected goals captures that difference.

When you add up all the individual shot probabilities for a team or player over a period of time, you get their total expected goals. If a team generates shots worth 3.2 xG in a game, the model is saying that an average team, taking those same shots in those same situations, would be expected to score about 3.2 goals.

How Is xG Calculated?

Different analytics sites use slightly different xG models, but they all consider similar factors when assigning a probability to each shot. The most common inputs include:

Shot location is the biggest factor. Shots from closer to the net and from more central angles are worth far more than shots from the perimeter. The “home plate” area directly in front of the crease generates the highest-value chances.

Shot type matters too. One-timers, deflections, and rebounds are more difficult for goalies to stop than standard wrist shots or slap shots, so they receive a higher xG value.

Whether the shot was a rebound is a key input. A shot that follows a previous save within a few seconds is much more likely to score because the goalie is often out of position.

The game situation leading up to the shot — such as whether it came off a rush (odd-man or not), a cycle play, or a broken play — can also influence the xG value. Rush chances tend to be higher-danger because the defense is still recovering.

Shot angle relative to the net adds additional nuance. A shot from below the goal line has virtually zero expected goals, while a shot from the same distance but at a more direct angle is significantly more dangerous.

Some more advanced models also factor in pre-shot movement (passes before the shot), the time since the last event, and whether the shooter had time and space or was under pressure.

Why Expected Goals Matters

Expected goals solves a real problem with simpler shot metrics. Corsi and Fenwick tell you who’s generating more shot attempts, but they can’t distinguish between a barrage of low-danger point shots and a handful of high-danger slot chances. A team could have a great Corsi but a mediocre expected goals number if all their shots are coming from the outside.

This distinction matters because not all shot volume is created equal. A team that generates 2.8 xG from 25 shots is creating better offensive opportunities than a team that generates 1.9 xG from 35 shots. Expected goals gives you a quality-adjusted view of offensive and defensive performance.

For player evaluation, xG is even more revealing. A forward who consistently generates high individual expected goals (ixG) is getting to dangerous areas of the ice and creating quality chances — even if the goals aren’t coming. Over time, strong ixG numbers tend to translate into goals, making xG one of the best tools for identifying fantasy hockey sleepers or predicting breakout seasons.

Expected Goals For and Against

Just like Corsi, expected goals works in both directions.

Expected Goals For (xGF) is the total xG your team generates while a player is on the ice. It tells you how much quality offense is being created.

Expected Goals Against (xGA) is the total xG the opposing team generates while a player is on the ice. It reflects defensive performance and how many dangerous chances are being allowed.

Expected Goals For Percentage (xGF%) is xGF divided by the sum of xGF and xGA, expressed as a percentage. An xGF% above 50% means you’re generating higher-quality chances than you’re allowing. This is one of the most well-rounded single-number metrics for evaluating two-way play.

xG vs. Actual Goals: What the Gap Tells You

One of the most practical uses of expected goals is comparing xG to actual goals scored. This gap reveals the role of finishing talent, goaltending, and luck.

If a player has 25 xG but only 17 actual goals, they’ve underperformed their expected output. This could mean bad luck on deflections, posts, or saves — or it could indicate a finishing skill issue. For most players, though, large negative gaps tend to correct over time, making these players potential bounceback candidates.

If a player has 15 xG but 23 actual goals, they’ve significantly overperformed. While some elite shooters can sustain above-expected scoring rates, most players regress back toward their xG. Identifying these overperformers helps you avoid buying high on a player whose goal totals are inflated by unsustainable finishing rates.

At the team level, the same principle applies. A team that consistently outperforms its xG is likely benefiting from hot goaltending or elite shooting — both of which can cool off. A team underperforming its xG may be better than its record suggests.

Limitations of Expected Goals

No model is perfect, and xG has its blind spots.

Most xG models don’t fully account for the shooter’s individual skill. A shot from the same spot receives similar xG values regardless of who’s shooting, even though elite finishers are meaningfully more likely to score. Some newer models are starting to incorporate shooter talent, but it remains a limitation.

Goaltender quality is also not captured in standard xG models. The model estimates how many goals an average goalie would allow on those shots — which is exactly the point — but it means xG doesn’t tell you what will happen against a specific elite or struggling goalie.

Pre-shot passing and puck movement are difficult to model comprehensively. While some models include pass data, the complexity of hockey plays means that xG models will always be approximations of true scoring probability.

For a more complete picture that also controls for linemates and opponents, pair xG with RAPM (Regularized Adjusted Plus-Minus).

Where to Find xG Data

Expected goals data is available on several public analytics platforms. MoneyPuck, Natural Stat Trick, and Evolving Hockey all publish xG numbers at the player and team level. Each site uses a slightly different model, so the exact numbers may vary, but the overall rankings tend to be consistent.

The Bottom Line

Expected goals is the analytics community’s answer to the question “how dangerous were those shots?” By weighting each shot attempt by its probability of scoring, xG provides a quality-adjusted measure of offense and defense that goes beyond raw shot counts. It’s one of the most useful stats in hockey for evaluating player performance, predicting future scoring, and identifying where luck or skill is driving results.


Building your analytics vocabulary? Explore our guides on Corsi explained, Fenwick vs. Corsi, and what RAPM means in hockey.

F

Frank

Hockey Writer & Analyst

Share:

Related Articles