You’ve watched a striker miss an open net from six yards and heard the commentator say “that was worth 0.9 expected goals.” Ten seconds later a different player scores from 30 yards out and the graphic on screen reads “0.03 xG.” If you’ve ever wondered what those numbers actually mean, or how anyone calculates a “chance” of a goal that already happened, you’re in the right place.
I coach youth players (I’ve written before about teaching soccer to kids ages 5 to 10) and break down match footage for a living, and xG is the single stat I get asked about more than any other. So let’s clear it up properly: what xG in soccer actually is, how it’s calculated, how to read it during a live match, and where it genuinely falls short.
Table of Contents
What Is xG in Soccer?

xG in soccer stands for expected goals. It’s a value between 0 and 1 assigned to every shot, representing the probability that the shot results in a goal based on thousands of similar shots taken in the past.
An xG of 0.05 means a shot like that goes in roughly 5 times out of 100. An xG of 0.75 means it goes in about 75 times out of 100. A penalty kick typically sits around 0.76 to 0.79 xG, because that’s how often penalties are converted across large historical samples, a figure most providers keep static since every penalty shares the same shot characteristics.
The point of xG in soccer isn’t to replace the scoreline. It’s to measure the quality of the chances a team or player created, separate from whether the ball actually went in. A team can dominate a match, create six clear-cut chances, and still lose 1-0 to a single low-quality shot. Basic stats like shots and possession can’t tell you that story. xG can.
How Is Expected Goals Calculated?
Every provider builds its own model, but the underlying process is the same. Analysts start with a massive historical database, often hundreds of thousands of shots from professional matches, and label each one with the outcome (goal or no goal) plus a set of characteristics. A statistical model, usually a form of logistic regression or gradient-boosted machine learning, then learns which combinations of characteristics make a goal more or less likely. Academic research on shot modeling, including work published through arXiv’s sports analytics research, traces this approach back to early 2000s studies that first used logistic regression to estimate the probability a given shot becomes a goal.
When a new shot happens, the model finds all the historical shots that looked similar and calculates what percentage of them ended in a goal. That percentage becomes the xG value for the new shot.
The Core Variables Behind Every xG Model
Most expected goals models, regardless of provider, weigh a similar core set of inputs:
- Distance to goal – shots closer to goal score at a much higher rate
- Angle to goal – a straight-on shot beats a tight angle from the byline
- Body part – shots taken with the foot convert far more often than headers
- Assist type – a through ball or cutback tends to produce a higher-quality chance than a shot from a set piece or long ball
- Type of attack – open play, counter-attack, corner, free kick, or penalty
- Defensive pressure – how many defenders are between the shooter and goal
Why xG in Soccer Numbers Differ Between Providers
If you’ve noticed Opta, StatsBomb, and Wyscout occasionally give the same shot different xG values, that’s not a bug. Each company builds its model on a different dataset and adds different layers of context.
| Factor included | Standard/basic xG model | Advanced model (e.g., StatsBomb) |
|---|---|---|
| Shot distance and angle | Yes | Yes |
| Body part used | Yes | Yes |
| Assist/pass type | Yes | Yes |
| Goalkeeper position and status | No | Yes |
| Defender positions in frame | No | Yes |
| Shot impact height | No | Yes |
A basic model might value a shot at 0.30 xG. Feed in the extra layer of knowing the goalkeeper was out of position and unable to set, and a more advanced model could push that same shot up toward 0.65 xG. That’s why comparing xG numbers across two different websites for the same match rarely lines up exactly, and why it’s worth sticking to one provider when you’re tracking a player or team over time.
How to Read xG in Soccer Like an Analyst
Once you know the scale, xG stops being a confusing broadcast graphic and starts being genuinely useful. Here’s a rough guide to what different xG values represent for a single shot:
| xG value | What it roughly means |
|---|---|
| 0.01–0.05 | Long-range effort, low percentage, “worth a shot” |
| 0.10–0.20 | Reasonable chance from a tighter angle or contested area |
| 0.30–0.50 | Good chance, often inside the box with some space |
| 0.60–0.80 | High-quality chance, close range or one-on-one |
| 0.76–0.79 | Standard penalty kick |
| 0.90+ | Open net or tap-in, close to a certain goal |
Over 90 minutes, you add up every shot’s xG to get a team total. A final score of Team A 1-0 Team B with an xG line of 2.4 to 0.6 tells you Team A dominated the chances created even though the scoreline was tight. That gap is exactly what pundits mean when they say a team “deserved more” or “got away with one.”
xG in Soccer vs Actual Goals: What Overperformance Really Means
This is where xG becomes a real analytical tool instead of a trivia stat. When a player or team scores more goals than their total xG suggests, that’s called overperforming their expected goals. Score fewer, and that’s underperforming. StatsBomb’s own analysts have written about this gap, noting that the model is designed to credit a team for creating a chance, understanding that in the long run those chances tend to become goals, even when a single missed sitter makes the numbers diverge in the short term.
Real examples from the 2025-26 Premier League season make this concrete. Squawka’s season-long tracking has shown Arsenal running well ahead of their underlying chance quality, outscoring their expected goals total by more than seven goals at one point in the campaign. On the other end, Crystal Palace were tracked as roughly 14 goals behind their expected total for the season, one of the largest underperformance gaps in the league, largely tied to a poor conversion rate on the big chances they created.
Individual players tell a similar story. Erling Haaland’s finishing has swung dramatically within a single season, at one stage scoring around four goals more than his xG total predicted before that gap narrowed significantly during a quieter scoring run. That’s a useful reminder: overperformance and underperformance are rarely permanent. Elite finishers can sustain an edge over their xG for a season or two, but across a full career, most players’ goal totals drift back toward what their chance quality would predict.
This is also why xG in soccer has become a standard tool in scouting and recruitment. A striker who consistently outscores a healthy xG total across multiple seasons is showing a genuine, repeatable finishing skill. A striker who is only ahead of their xG for a few months is more likely riding a hot streak that regression will eventually correct.
Common Misconceptions About xG in Soccer
A few things trip people up when they first start using this stat.
“High xG always means a team played well.” Not necessarily. A team can rack up xG by taking a high volume of low-quality shots from distance. Total shot count matters less than shot quality, which is exactly what xG per shot is designed to isolate. This is also why the players who consistently beat a defender before shooting tend to post better xG numbers than volume shooters. If you’re working on that part of your own game, our guides on dribbling drills that actually help you beat defenders and fixing poor dribbling technique cover the mechanics that get you into higher-percentage shooting positions in the first place.
“xG proves who should have won.” xG is a useful proxy for dominance, not a guarantee. Random variance is part of soccer, and a team can legitimately deserve to lose despite a stronger xG performance on a given day.
“Blocked shots don’t count.” They actually do. A shot that’s blocked before reaching goal is still logged and assigned a reduced xG value, since it never had a chance to beat the goalkeeper.
“One provider’s number is the objectively correct one.” As covered above, every provider’s xG model is an estimate built on its own dataset and factor list. Treat the number as an informed probability, not gospel.
How Coaches and Broadcasters Use xG in Soccer Beyond the Final Score
At the coaching level, xG in soccer gets used in a few practical ways. It flags whether a team’s attacking process is generating good chances even during a scoring drought, which helps a coach decide whether to change the game plan or simply trust the process. It’s used to grade individual finishing over a rolling sample, rather than reacting to a single missed sitter or a lucky deflection. And recruitment departments use multi-season xG data alongside video scouting to separate sustainable goal-scoring ability from a short hot streak. Building that kind of consistent finishing takes structured repetition over time, which is exactly what we map out in how often you should actually train soccer each week.
Broadcasters lean on it for a simpler reason: it gives commentators and pundits a number to back up what they’re already seeing on screen, turning “they should have scored there” into a quantified, on-air talking point.
Where xG in Soccer Falls Short
No stat is perfect, and being upfront about the limitations is part of using xG responsibly. Expected goals models generally don’t fully capture shooter skill within the shot itself, since two players in the identical position with the identical defensive setup can still have very different technique. This is a documented gap in the research too: a peer-reviewed study published on the National Center for Biotechnology Information’s PMC database points out that mainstream xG models don’t account for player-specific features, so a shot from a National League fifth-tier player and the same shot from an elite finisher like Lionel Messi get assigned the exact same value. Models also vary in how well they account for things like shot placement, deflections, and rapidly changing game states such as a counter-attack developing in half a second. And because every provider’s model is proprietary, there’s no single universal xG number, which is exactly why cross-site comparisons need context.
Used correctly, xG in soccer is one input among several, alongside video review, possession value metrics, and old-fashioned scouting, not a replacement for any of them. One practical note before you write off a player as an xG underperformer: rule out fatigue first. A finishing dip that lines up with a heavy fixture stretch is often about recovery, not decline, and our guide on recovering from overtraining in football walks through how to tell the difference.
Frequently Asked Questions About xG in Soccer
What does xG mean in soccer? xG stands for expected goals. It’s a value between 0 and 1 given to every shot, representing the statistical probability that the shot results in a goal based on thousands of historically similar shots.
How is xG calculated in soccer? An xG model is trained on a large historical database of shots labeled by outcome. It weighs factors like shot distance, angle, body part, assist type, and defensive pressure to estimate how often a shot with those exact characteristics has resulted in a goal in the past.
What is a good xG score for a player? There’s no single universal number, since it depends on shot volume and role. What matters more is the trend: a player consistently scoring in line with or above a healthy xG total over multiple seasons is showing genuine, repeatable finishing quality.
Is a high xG good or bad? A high team xG is generally a positive sign, since it means better quality chances are being created. But it should be read alongside shot volume, since a high total built from many low-probability shots is less meaningful than the same total built from fewer, higher-quality chances.
Does xG account for the goalkeeper? Basic xG models typically don’t. More advanced models, such as StatsBomb’s, factor in goalkeeper position and status as part of the calculation, which can meaningfully change the value assigned to a shot. Since positioning is the variable being measured here, goalkeepers working on exactly this can start with our home reflex drills guide.
Why do different websites show different xG numbers for the same shot? Each provider builds its own model on its own dataset and factor list. Some include extra context like defender positions or shot impact height, which produces a different probability estimate even for the identical shot.
