A New Metric: Form Score

Sezer Unar
5 min readMar 16, 2023

It’s time to see which team is in form and which is out of form.

When showing the league table, the results of the last 5 matches are usually included. What good is this information for us? It gives us a superficial idea of the team’s form. A team that has won its last 5 games must be in great form, right?

Let this be our first particle.

As you know, xG For and xG Aga charts are very famous in football analytics circles. A 10-match moving average is taken and if the difference between the two metrics is greater in favor of xG For, that’s a good thing. It means the team is on a good path. I’ll leave an example here if you still don’t remember it.

So this is our second particle.

Now we’re going to collide these two particles together -why, because that’s how our brain works to generate something new, isn’t it, I guess it’s not just my brain- and we’ll end up with a metric.

When looking at the league table, I thought it would be nice to see a rating of the teams’ form, rather than the last N matches won or lost, so that the table becomes colorful, more entertaining, and informative. We look at the league leader, who has won all his matches but is not in the best of form. We say, oh no, the balance of the league is going to change.

And what should we do to do that?

First of all, I distinguish between a team’s offensive and defensive form. It’s great to score a lot of goals, to score 3 xG per game, but it’s equally negative if you’re conceding 3 xG per game. That’s why I don’t take the xG difference into account, it makes the most sense to calculate them separately.

It’s obvious to everyone that looking at xG based on a single match is complete nonsense. I might be too optimistic by saying, everyone. So it’s better to look at the last few games. And the last few games? Inspired by David Sumpter’s article here, I set the number at 7.

It is also important to note that the result 7 games ago cannot have the same weight as the result one game ago. At the end of the day, we are assessing the form of the team. A match almost a month ago gives us only a glimpse, but a very limited glimpse. It’s better not to treat the light from far away the same as the light from near. However…

It’s not a good idea to put too much emphasis on the last game. Maybe the team got a red card, or maybe they played against a very strong team. One match is one match.

So a match count of less than 7 doesn’t give us a healthy picture of form, while equal weighting makes this metric unhealthy. Moreover, “more matches” helps to somehow minimize the impact of “extreme” matches.

As usual, I wrote a function in R that calculates the weighted moving average of the last “k” number of matches.

wma <- function(x, alpha, n) {
weights <- alpha^rev(seq_len(n)) / sum(alpha^rev(seq_len(n)))
wma <- sapply(seq_along(x), function(i) {
if (i < n) {
# Not enough data for a moving average yet
NA
} else {
# Calculate the weighted average using the last n matches
sum(weights * x[(i-n+1):i])
}
})
return(wma)
}

The smaller the “alpha” value, the more important the last match is. I set that parameter to “0.9” while writing this blogpost. In short, ~52% of the form comes from the last 3 matches and the rest from the last 4 matches. The last match has an impact of 19%, and the first match is 10%.

There is not an extreme difference between this weighting and equal weighting. The function is there, you can change it!

But is this enough? At the end of the day we get an average of xG for and xG against, but what does that mean? For example, is a team with a weighted xG of 1.25 over the last 7 matches good or bad? Shouldn’t there be a benchmark?

I had team statistics for the English Premier League, La Liga, and Bundesliga for the last 5 seasons, so I applied this process to those leagues and calculated the z-score corresponding to the xG values I obtained. I scaled the values between -2 and 2 to -5 and 5 and finalized our metric.

The reason I’m doing this is to make the final score more understandable.

So a team with a -5 form score is in terrible form, while a team with a 5 form graph is going through a great period.

Let’s look at the league table in this way.

Brighton seem to be the best team in the league in terms of offensive form. Manchester United’s defensive form and Tottenham’s offensive form is a bit worrying.

Looking at the upcoming fixtures, we are likely to see an interesting result.

I’m very curious about Brighton vs Man United and Southhampton vs Tottenham matches.

Potentiality

This type of method can also be used to measure players’ form. While it is relatively logical to measure a team’s form through xG, it would be quite illogical for players. However, if you already have a player-based per-match rating system in place, a weighted moving average can provide a useful perspective. As a fan, there have been many times when I’ve been like “this player has been awful in recent weeks, why is he playing?”. At least we can express this feeling in numbers.

Deficiency

I think that if we add to this methodology an element about the difficulty of the opponent, it could be perfect. It is great for a team to win even 1 xG against Man City or Arsenal. So we could balance and even take advantage of the impact of individual matches on the result.

Thank you for taking the time to read it.

You can support my journey in football by buying me a coffee

--

--