Expected Goals Explained: Probability Models and Shot Quality
Expected goals explained as a probability-weighted measure of shot quality, including why different xG models vary and what a single match cannot prove.
Expected Goals Explained: Probability Models And Shot Quality
Expected goals is a process metric, not a scoreboard. It measures chance creation by assigning a probability between 0 and 1 to every shot, where 0.00 is a certain miss and 1.00 is a certain goal. A team that accumulates 1.8 xG in a match generated shots worth roughly 1.8 goals on average, given historical data from tens of thousands of similar attempts. A single-match xG delta does not equal deserved victory. A team can lose 1-0 while winning xG 2.1-0.7 because the model measures process, not outcomes. The number answers whether a side created better chances. It does not answer who should have won.
What The XG Football Model Actually Measures
The xG football model is a probability model built on shot characteristics. Every shot receives a probability score derived from a logistic regression or machine-learning algorithm trained on a database of past shots. The core input is shot location: distance from goal, angle relative to the goalmouth, and whether the attempt came from open play or a set piece. A shot from 6 yards out centrally carries a value near 0.70. A 25-yard effort from a wide angle might register 0.03.
Providers like Opta layer in additional variables. Assist type (through-ball, cross, cutback) alters the probability because each delivery type produces distinct goalkeeper positioning and defensive set. Defensive pressure is a heavy modifier: a shot taken with a defender within 1.5 metres has a lower probability than an identical attempt from the same location with no pressure. Body part matters. Headed shots convert at roughly half the rate of shots struck with the foot from the same position. Game state is sometimes included, as teams chasing a lead face defensive behaviour unlike those protecting one.
The model outputs a sum. If a team takes three shots with probabilities of 0.40, 0.15 and 0.03, its match xG is0.58. That figure measures chance creation calibre, not a prediction of the final score. A penalty, valued around 0.76 to 0.79 depending on the provider, dominates a team's xG total because it represents a single high-probability event. Two low-probability shots from distance do not add up to the same threat.
Shot Quality Probability And The Inputs That Drive It
Goalkeeper Position And Tracking Data
A shot probability calculation starts with location but never ends there. The tracking data used by top providers captures goalkeeper position at the moment of the strike, which refines the open-goal probability. A shot toward an unguarded net from 12 yards carries a probability above 0.90. The same shot with the goalkeeper set and positioned carries a value closer to 0.30.
Event data alone, which records the shot origin and outcome from a feed, misses this. Opta's detailed event feed includes 2,000 to 3,000 events per match. True xG models fuse that with optical tracking data that logs player positions 25 times per second. The gap between a basic location-only model and one incorporating defensive pressure and goalkeeper positioning can shift a single shot's probability by 0.15 in either direction.
How Assist Type Changes The Calculation
Assist type is the other large modifier. A cutback from the byline produces a higher-probability shot than a floated cross from deep because the attacker receives the ball facing goal with the defence scrambling. A through-ball that splits the centre-backs generates a one-on-one scenario that a square pass to the edge of the box does not. The model weights these delivery types using historical conversion rates, not subjective judgement.
| Input Variable | Basic Location Model | Opta Event Feed | Tracking-Data Model |
|---|---|---|---|
| Shot location | Yes, x-y coordinates | Yes, plus zone detail | Yes, plus body-part angle |
| Assist type | No | Yes, broad categories | Yes, sub-types tracked |
| Goalkeeper position | No | No | Yes, at shot instant |
| Defensive pressure | No | Some, from event context | Yes, distance to nearest defender |
| Game state | No | Optional flag | Yes, continuous score-state |
| Shot power/placement | No | No | Emerging, via ball-tracking |
XG Model Variation And Why Providers Disagree On The Same Shot
Training Data And Baseline Differences
xG model variation is not a bug. Every provider trains its model on a distinct historical database. Opta's model is built from millions of shots across dozens of leagues. StatsBomb trains on its own annotated dataset with pressure and goalkeeper-position frames. The CIES Football Observatory publishes research using Wyscout event data, which applies a different feature set again.
A penalty in one model may carry a value of 0.76; in another, 0.79. The difference comes from the dataset composition. Leagues with higher penalty conversion rates produce a higher baseline. A model trained only on Premier League data from 2017-2024 will output different values than one trained on 30 global leagues over the same period.
Why Feature Sets Divide Providers
The feature set is the larger divider. A model that ignores defensive pressure assigns the same xG to two shots from the same spot, even if one attacker had a defender draped on his back. A model that includes pressure drops the value of the contested shot sharply. Two providers looking at the same shot can disagree by 0.20 xG on a single event. Over a match, the cumulative gap between two models can reach 0.70 xG. This does not mean one model is broken. It means the models answer slightly different questions about what a quality chance is.
Expected Goals Limitations And What Single-Match XG Cannot Tell You
The Single-Match Problem
Expected goals limitations are most acute in a single match. A single-match xG delta (the difference between two teams' totals) tells you which side generated better chances. It does not tell you who deserved to win. Football is a low-scoring sport with high outcome variance. A team that wins xG 2.5-0.8 loses roughly 15 per cent of matches, a rate consistent across large datasets.
Sample size is the main constraint. Over a 38-match season, a team's xG difference correlates strongly with its points total and repeated outperformance of xG tends to regress. Over one match, a 0.7 xG edge means little. A deflected shot from 30 yards that ends in the top corner registers 0.02 xG. A missed tap-in from two yards registers 0.85. The model is correct about the process and silent about the result.
Game State And What XG Misses
Game state introduces a second limitation. A team that takes an early lead and sits deep may concede many low-probability shots while creating few high-quality counters. It can lose the xG battle 1.8-0.6 and win the match 2-0. The model captures chance quality but not the tactical choice to stop creating chances. Football statistics limitations extend beyond the model itself: xG does not measure pre-shot actions, defensive organisation, or the value of a pass that breaks a line but does not produce a shot.
How To Use XG Without Misreading It
Apply It Over A Run Of Matches
Use xG as a process metric over a run of six to eight matches, never as a post-match verdict. A team outperforming its xG over a short stretch is running hot. A team underperforming its xG by a large margin over 10 matches is either unlucky or carrying a finishing problem that the model cannot diagnose. Name the data provider when citing numbers, because model variation means an Opta xG figure is not directly comparable to a StatsBomb one.
Strip Out Penalties And Set-Piece Clusters
Treat penalties separately. A penalty skews a team's match xG by roughly 0.77 and tells you nothing about open-play chance creation. Report non-penalty xG for exactly this reason. Headers from set pieces cluster at low probabilities and inflate shot counts without moving the xG total much. A team that takes12 headed attempts from corners and generates0.90 xG has not created the same threat as a team that generates0.90 xG from two shots inside the six-yard box.
Never Treat XG As A Moral Scoreboard
The single biggest error is treating an xG win as a moral victory. The model is a tool for understanding which chances were likely to result in goals. It is not a scoreboard, a justice system or a replacement for watching the match. The team that lost the xG battle won because it took the one chance that mattered and defended the rest. That is not a statistical anomaly. It is the sport.
Common Questions
Why does the same shot get a different xG from two data providers?
Each provider trains its model on a distinct historical database and includes a distinct set of inputs. One model may factor in defensive pressure and goalkeeper position while another uses only shot location and assist type. The training data's league composition also shifts the baseline probabilities.
Does winning the xG battle mean a team deserved to win?
No. A single-match xG delta measures chance quality, not deserved victory. A team that wins xG 2.1-0.8 loses roughly 15 per cent of the time. Game state, finishing variance and defensive tactics that suppress chance creation all break the link between the xG margin and the result.
How many matches does xG need to become reliable?
A rolling sample of eight to ten matches starts to filter out noise. Over a full 38-match league season, a team's xG difference correlates strongly with its final points total. Single-match xG is too volatile for any judgement beyond which side generated the better scoring positions.
Should I remove penalties when comparing xG totals?
Yes. A penalty adds roughly0.76 to0.79 xG from a single event and reveals nothing about open-play chance creation. Non-penalty xG is the standard metric for evaluating a team's attacking process. Keep penalties in only when measuring total threat, and state that you have done so.