Before I start I want to thank Michael Caley for the excellent work done on expected goals. He publishes xG numbers game by game each week and without this, this work would not have been possible. If you don’t already, follow him.

Often, as a quick proxy for team strength we take a quick glance at the season long expected goal difference (or ratio). Whilst useful, this simple sum/ratio conceals some useful information. Take a look at this chart for Arsenal (up to game 37):

We can see that in the first 10 of so games they flew out of the traps, putting dominant performances, and since then they have been unable to hit those heights. Looking only at an xG sum means we would consistently see Arsenal as a better team than they have been for the rest of the season.

The other issue comes early in the season, where different clubs have had different schedules. We can adjust our interpretation of the xG sum accordingly but it is hard to quantify the effect.

Introducing xxG – expected expected goals (sorry for the crap name). It works like this. For each match, we work out what is a ‘par’ expected goal difference and then adjust each team’s rating up or down depending how they performed compared to that par score.

So: new rating = old rating + K x (match xG difference – par score), where K is the sensitivity factor.

Okay, I’m rambling so let’s just take a look at an example, the Chelsea vs Tottenham match at the end of the season, we’ll use a K value of 0.1. Before the match Chelsea have an xxG of 0.226, and Tottenham of 0.502. The par score is simply 0.226-0.502 + 0.4 (for home advantage). Giving a +0.124 par for Chelsea and vice versa for Tottenham. The actual xG score was 0.8-2.1. The new ratings are:

Chelsea: 0.226 + 0.1 x (-1.3 – 0.124) = 0.084

Tottenham: 0.502 + 0.1 x (1.3 + 0.124) = 0.644

Hopefully these read in an intuitive way, as they tell us the current ability of the team in terms of expected goal difference per match, but hopefully avoiding the two issues with a simple average.

Before I post the final ratings table, there are a couple of things to note. The first is that, because I only have data for this season, each team started the season with a rating of 0. This means it’s hard to glean the story of last season because it necessarily takes some time to give useful information. If anyone wants to send through xG totals for matches in other seasons I would be very grateful and happy to update this. For the same reason, I haven’t been able to backtest and find out a) whether this is useful or b) what the optimal K value should be – so it’s a bit of a stab in the dark, suggestions are more than welcome. Lastly, for round 38 I have used Paul Riley‘s Shot Position Average Model as a proxy for xG as Mr. Caley was rightfully mourning Tottenham’s last day collapse instead of giving us xG numbers.

So, here goes (table sorted by K = 0.05):

Feedback more than welcome. Let me know on Twitter.