Expected Goals (xG) & Shot Quality
Expected Goals (xG) & Shot Quality Models
In soccer, hockey, and increasingly in basketball, analysts decompose goal-scoring into shot volume and shot quality. The workhorse is a logistic regression that maps shot features — distance, angle, body part, defender pressure, game state — into an expected-goal probability. Summed over a match, $\mathrm{xG}$ estimates how many goals a team should have scored.
The simplest useful model is $\mathrm{xG}(d, \theta) = \sigma(\beta_0 + \beta_1 d + \beta_2 \theta)$ where $d$ is distance to goal (m) and $\theta$ is angle (rad) subtended by the goal from the shot location. Modern models add 10–30 features. Once calibrated, $\mathrm{xG}$ is far more stable match-to-match than raw goals and is a leading indicator of future scoring.
The same logistic machinery yields expected assists (xA), expected points (xP), and expected save %. Be wary of calibration drift: xG models trained on one league or era can badly mispredict in another. Always check the reliability diagram (observed vs predicted by decile).
$$\mathrm{xG} = \sigma(z), \quad z = \beta_0 + \beta_1 d + \beta_2 \theta + \sum_j \beta_j x_j$$
With $\sigma(z) = 1/(1+e^{-z})$. Typical soccer coefficients (open play): $\beta_0 \approx -0.7$, $\beta_1 \approx -0.10\,\text{m}^{-1}$, $\beta_2 \approx +1.5\,\text{rad}^{-1}$.
Given shots $s_1,\dots,s_n$ with probabilities $p_i$: team match xG $= \sum p_i$.
Goals scored $\sim \mathrm{PoissonBinomial}(p_1,\dots,p_n)$. Match win probability can be simulated by sampling both teams' Poisson-binomials.
Shot from 12 m out, straight ahead ($\theta \approx 0.63$ rad). Compute xG using the coefficients above.
$z = -0.7 - 0.10(12) + 1.5(0.63) = -0.7 - 1.2 + 0.945 = -0.955$.
$\mathrm{xG} = 1/(1 + e^{0.955}) = 1/(1 + 2.60) = 0.278$. About 28% chance.
A team takes 4 shots with xG values 0.05, 0.12, 0.28, 0.40. Match xG and probability of scoring at least one goal?
Sum xG $= 0.85$.
$P(\ge 1 \text{ goal}) = 1 - \prod (1 - p_i) = 1 - 0.95\cdot 0.88\cdot 0.72\cdot 0.60 = 1 - 0.361 = 0.639$.
A striker scores 15 goals on 9.2 xG in a season. Is he an elite finisher, lucky, or both?
Under Poisson-binomial with mean 9.2 and variance $\le 9.2$, 15 goals is $\approx (15-9.2)/\sqrt{9.2} = 1.9\sigma$ above expectation. One-season elite finishing should repeat only with reliability $r < 0.5$ — expect shrinkage toward his xG next year.
Practice Problems
Show Answer Key
1. Empirical penalty xG is ≈ 0.76 (conversion rate in top leagues).
2. Decreases — headers have ≈ 60% of the non-header xG at matched geometry.
3. Goals are a sparse Bernoulli outcome; xG aggregates many shots so has much lower sampling variance.
4. Ignores defender positioning, goalkeeper, game state — can under/over-rate specific shot contexts.
5. Sum $1.5$; variance at most $\sum p(1-p) = 15(0.09) = 1.35$.
6. $z = -0.7 - 0.6 + 1.2 = -0.1$; $\mathrm{xG} = 0.475$.