xG Explained: What is Wrong & How to Fix it

Let me show you a stat that has started more football arguments than VAR.

Team A finishes the game with 3.1 xG.
Team B finishes with 0.8 xG.
Final score? Team B wins 1–0.

So the question everyone asks is simple:
Did the better team lose… or did xG lie?

The answer is uncomfortable for both sides.

xG is incredibly useful.
But it’s also incomplete.
And today, I’ll show you what xG actually measures, why it’s not perfect, and how we can make it smarter.

WHAT xG ACTUALLY IS?

Let’s start clean.

Expected Goals, or xG, is a probability.
It answers one question only:

“How likely is this shot to become a goal?”

That probability is based on thousands and thousands of similar shots from the past.

Modern xG models usually look at things like:

  • Distance to goal
  • Angle to goal
  • Body part used
  • Type of assist, like a cut-back or a cross
  • Defensive pressure

So when you see:

  • A penalty worth about 0.76 xG
  • A tap-in worth 0.6 or higher
  • A long-range shot worth 0.02

That’s not opinion.
That’s history talking.

And here’s the key line:

xG does not measure finishing.
It measures chance quality.

That distinction matters more than most people realize.

WHY xG IS SO USEFUL

Before we criticize xG, we need to respect it.

xG is powerful because:

  • It removes emotion from results
  • It tells us if chances were real or fake
  • Over time, it predicts performance better than goals alone

Goals tell you what happened.
xG tells you what usually happens.

In daily life, this is like the weather forecast. We want to know if it’s going to rain tomorrow definitively, but the best we can get is the probability of rain given the information that we can get.

Let me put it differently – xG is statistics and we analyze in the world of statistics. But we live in the world of samples, where a chance can only be a goal (1) or a miss (0).

That’s why coaches, analysts, and recruitment teams rely on it.
It’s a reality check.

But reality checks only work if they don’t ignore… reality.

WHERE xG STARTS TO BREAK

Now we get to the problem.

There’s a famous idea Thierry Henry has talked about, and it goes something like this:

“The same chance is not the same chance if Harry Kane is on the end of it.”

And he’s right. The famous joke about statistician is that if one archer misses to the left and another one to the right, on average they hit the center twice. Similarly, if one player scores every time and one misses every time, the xG is 0.5.

xG treats every shooter like an average finisher for the league.

But football is not played by average players.

Let’s say a chance is worth 0.25 xG.

That means:

  • The average player scores it once every four attempts. The first team strikers might be better, scoring one in 3, or 0.33 xG.

But:

  • An elite striker might score it once every two attempts, or Harry Kane might even be over 50% of the time. On the opposite side, the average defender will need 10 chances to score.

Seemingly same shot.
Same xG.
Completely different reality.

This is why:

  • Some players beat the xG year after year
  • Others underperform season after season
  • And calling all of that “luck” becomes lazy analysis

THE ANALOGY

Let me try to explain this issue with an analogy. Think about Google in the early days.

Years ago, if you searched for something on Google,
you got the same results as everybody else.

Didn’t matter who you were.
Didn’t matter where you lived.
Didn’t matter what you searched yesterday.

Same input. Same output.

But Google evolved.

Now:

  • Your location matters
  • Your search history matters
  • Your preferences matter

The search results are adjusted to you. To be honest, their ads also did the same, so you are getting relevant ads, even if you aren’t looking for that in the moment.

Nevertheless, I am trying to say that old Google was accurate. But Modern Google is relevant. The algorithms are so good these days that you don’t even need to search for something – Youtube can suggest this video to you because they know you are interested in soccer and getting better at understanding it, while they will not suggest it to your neighbor who watches videos of underwater basket weaving all day.

xG today is like old Google.

It gives the same answer for everyone…
even though not everyone is the same.

THE REAL MISSING PIECE: THE PLAYER

Here’s the core issue.

xG answers:

“How good was the chance?”

But it does not answer:

“How good is the player taking it?”

And that’s the missing layer. The xG determined if the players field positioning was good to get into a chance to shoot, or if the teammates delivered a good enough ball to take that shot. However, that player might be shooting poorly, or through the middle or off target.

Finishing is a skill.

  • Shot selection is a skill
  • First touch under pressure is a skill
  • Composure is a skill

The context matters. If you ignore that the skill of finishing matters results in people not believing in statistics.

GOALKEEPER XG

And if the player shooting matters, does the player defending matters, too? Absolutely! We see coaches substituting the goalkeeper right before penalties. And it makes total sense. Some goalkeepers are better in certain situations. Penalties is one example, but other situations are one-on-ones, or free kicks or corner kicks. If you have a very tall and very strong keeper that regularly catches half of the corner kicks, how can you equate him to the goalkeeper that is never getting to the ball?

HOW TO FIX IT: PLAYER-ADJUSTED xG

So how do we improve xG without throwing it away?

Simple idea:
Don’t replace xG.
Upgrade it.

Step one:

  • Keep normal xG as the base

Step two:

  • Look at a player’s historical finishing
  • Goals scored versus expected goals

Step three:

  • Apply an adjustment factor for the defending players, too. The goalkeeper and if needed the defender.

Example:

If a player consistently scores 20 percent more goals than their xG,
a 0.30 xG chance becomes 0.36 adjusted xG for that player.

Now suddenly:

  • Harry Kane chances look different
  • Erling Haaland chances look different
  • Developing players look… developing

This doesn’t make xG perfect.
But it makes it closer to football reality.

Chess Ranking Concept

We can even make it better. Let’s steal a concept from chess, where if two players meet, their global score adjust after the duel. To simplify, if two players of equal rank 1000 meet, the winner takes two points, so they end up with 1002, while the defeated ends with 998. If a player of 1000 plays against a 1100 player, then a win would give them 3 points, so 1003 and 1097. However, a loss might only lose them 1 point, so 999 and 1101, because that’s the expectation – the better player to come out as a winner. We can apply the same in soccer, where if there is a situation of 0.5 xG and there it’s not a goal, the attacking player’s xG ranking might decrease to 0.49 after that, while the goalkeeper’s xG ranking will increase.