xg

July 2026

how do we replace xg?

xg is the total expected goals scored by a team, calculated by summing the probability of scoring from each shot. it's a relatively good indicator of how well a team is shooting, but i take a lot of issues with it when used for anything beyond that.

fans often use xg as a measure of how many goals a team "should" have scored, and therefore their performance in a match. i think this is completely wrong.

a few reasons:

xg doesn't take into account the quality of the players. would you rather have a striker take a 0.3 xg shot or a defender take a 0.5 xg shot? the probabilities might suggest the latter, but any football fan would disagree.

shots are always unique. no two shots will ever be from exactly the same position, and even if they were, players could be at different heights, off balance, defenders moving at different speeds. the only way to combat this is to generalise situations, which then compromises the metric.

most importantly, xg only accounts for shots. if someone is stretching and just grazes the ball as it rolls past, it might count as a high xg chance. if someone misses the ball entirely, it doesn't count at all. for me, both of these are very similar in terms of potential to score, and neither is well-reflected by xg.

so how do we replace it? i've been thinking about incorporating momentum graphs - some football analytics sites have started introducing these, and the from first principles podcast did an interesting breakdown of what parameters they use. the idea is to measure the continuous flow of a match rather than just discrete shot events.

a better metric might combine chance quality (with player identity factored in), opposition pressure at the time of the chance, and momentum at that point in the match - potentially even integratable over time to give a single performance score.

i'll think more about the specifics, but the starting point is that xg is a decent shot quality metric and a bad performance metric.