Delta actual minus expected
Beta

Who beats their xG?

Every shot carries an expected value. Add them up and you get what a player should have scored. Delta is what is left over, the gap between the goals that actually went in and the ones the model saw coming.

The plot below reads that gap as distance. Everyone above the line outscored their chances, and the ones who do it young are the ones worth watching.

Goals vs xG

sample data, one dot per player
551010151520202525goals = xGR. Vos, 21+7.2 goals over expectedxG, expected goalsgoals
above expectation below expectation on the line dot size shows how large the gap is See the dashboard preview

One number, any position

Output minus expectation works the same for a striker finishing chances and a keeper preventing them. The plan is to cover both, not just the attacking end that usually gets the spotlight.

Signal over noise

Finishing above expectation is noisy and tends to regress. Delta shows who sustains the gap across seasons, rather than crowning whoever is on a hot run right now.

Open data only

Built entirely on freely available sources, with the method written down. No black box ratings, no numbers you cannot trace back to where they came from.

The metric

Δ = goals − xG, penalties excluded, normalised per 90 minutes with a minimum minutes filter so small samples do not dominate.

Scope and status

Europe's top five leagues, from Understat with player context from Transfermarkt. The dataset and the interactive version are being built. The chart above uses sample data.