Earlier this month, I was explaining to a friend how shots from rebounds are measured within the Expected Goals framework. After writing down my thoughts, I realized a couple of things. This is a deeply unintuitive concept to an xG skeptic and it illustrates a series of problems that I have with Expected Goals in general. This blog post doesn’t fix any of that, but it does aim to explain some of it.
Infinite Rebounds, Infinite xG
Since you can never have an individual sequence of play that exceeds a single expected goal, the current best-practice is to use conditional probability like this:
To get the total xG of a two-shot sequence, you take the goal probability of the first shot and add the product of the probability of missing the first shot and the goal probability of the second shot. This ensures that overlapping probabilities do not artificially inflate the total expected goals beyond the logical maximum of 1.00 xG for the entire sequence.
For example, let’s step through a hypothetical penalty kick sequence:
The direct penalty itself is worth
0.75
xG, based on historical conversion rates.The penalty is saved and a follow-up shot is attempted by an onrushing teammate.
The second shot is worth
0.60
xG, based on the conditions of the shot at the time it’s struck – perhaps the goalkeeper has closed down the angle slightly.The probability that the initial penalty was missed is
0.25
, so you multiply that by the xG value of the second shot (0.60
) to get an incremental probability of0.15
.You then combine these values (
0.75
and0.15
) to arrive at a total goal probability of0.90
for the entire sequence.
It’s important to note that while the team accrues 0.90
xG for the sequence, the two attackers might be credited with individual xG values of 0.75
and 0.60
, reflecting their respective shot probabilities without adjustment for sequence overlap.
The framework can be applied to multiple sequential rebounds via an infinite series of products. The sum of this series should converge on the true goalscoring probability of the particular penalty kick sequence. This is nothing new.
Not every saved penalty is going to have such a valuable rebound. In order to measure the true pre-shot goal probability of a penalty sequence, you have to look across the population of rebounds to determine an average and apply their conversion rates within the framework illustrated above. I think this lands somewhere around 0.78
xG for the entire sequence, but it depends on the competition.
From a Certain Point of View
To an untrained or skeptical eye, it’s going to appear pretty strange when your post game match report has player boxscores with individual xG totals that don’t sum up to the overall team total at the top of the PDF. From their perspective, it will look like a software bug.
This is one of the distinct explanatory dangers of using Expected Goals as a metric as opposed to a unit of measure. The view is far too blurry between xG and the menagerie of different methods and acronyms for measuring P(Goal) at any particular timestamp.
This is painful to keep track of. It would be a whole lot easier if you could get away a simple SQL view that looks something like this:
But you can’t accumulate xG totals like you accumulate passing totals! For the reasons outlined above, a team's total xG is not the sum of individual player xG totals. Fundamentally, xG is neither a Player or a Team metric – the measurement only retains conceptual integrity when it is observed as an individual shot metric.
A Framework Under Pressure
There are a bunch of not-fun considerations and edge-cases that put strain on the conceptual xG framework (which you can fortunately mostly ignore with limited peril). Such as:
If a player has their
0.75
xG penalty saved but it becomes a subsequent0.60
xG opportunity, should the shooter actually only be demerited0.15
goal units for missing the penalty? This is what a Markov-based approach would advocate for.If the shot hits the post (which has a
0.00
PSxG value) and bounces into a juicy rebound position for a teammate, should we consider the null PSxG value a true Markov state?Do we need an additional conditional probability for the likelihood of the referee awarding a penalty in the first place? This would makes sense if we’re measuring byproducts of team process as opposed to measuring outcomes governed by noise.
How you ultimately untangle this credit-attribution and value-accumulation mess depends on what sort of question you’re answering.
If you were evaluating team performance, what xG value should you assign to the saved-penalty scenario discussed earlier?
Should you simply use the raw
0.75
xG value for the penalty? (Probably not – this article’s whole premise suggests a more nuanced approach.)Should you use a pre-shot, conditionally adjusted value like
0.78
, which accounts for the entire scoring probability at the start of the sequence?Or should you use the
0.90
xG that combines the initial shot and the favorable rebound?
Postgame, if a coach asks how many goals the team deserved to score in the match, I’d lean toward using the methodology that incorporates the specifics of the rebound. However, if you’re calculating an xG total to model future performance, you’d be better off using an approach that estimates repeatable processes.
Anyway, the extreme goal expectation values attached to penalty situations certainly exacerbate some of these conceptual problems with how xG is typically used, but they’re quite useful for demonstration.
Closing the Barn Door
Another friend of mine suggested that this blog post was a great example of closing the barn door after the horse has bolted. I was unfamiliar with this idiom, but it’s an appropriate one. Expected Goals aren’t going anywhere, and for good reason – it’s an incredibly useful tool. But as analysts, we should think critically about how we use it and what it means in different contexts.
The takeaway? xG isn’t just a metric or a unit of measurement; it’s a story about probability, process, and context. And like any story, it’s only as good as the way we tell it.
Thanks for this write up. It seems to address something I saw in 2023 that has always bothered me about xG. Houston Dynamo's Corey Baird was put in behind with a looping awkward ball on about the 12' spot. GK was able to come out and nearly get to the ball first. Very difficult situation for Baird but he managed to just get their first and steered the ball towards goal. GK blocked that shot but it deflected up and over the on-rushing GK, falling to Baird's feet now on 5' line, past the GK. No defender close. Easy tap in goal. Baird was given an xG of .7 for the first difficult deflection against a GK basically at the same spot as he, then an xG of .3 for the open goal sitter. I probably need to read this article several more times to understand but it seems to address that situation. I don't get how those xG values make any sense.
Great read (typo in the formula, missing the +)