If you follow me on Twitter (@FlaFu_tbol), you will know that other than tactics, I like stats and data visualization (I recently add links to all my Tableau projects on the blog). Having played Football Manager since 2007, I became used to see player abilities visualized in octagonal radar charts, so when I first saw StatsBomb radars charts I thought “It’s like Football Manager but these are real life performances!”.
They produce radar charts for every role in football, centre-backs and goal-keepers excluded. Ted Knutson (@mixedknuts) of StatsBomb explained why in his Radar Methodology Appendix and FAQ.
“Are there any plans for Center Back and Goal Keeper radars?
None at this time. Center backs and GK statistical output is intimately tied to tactical choices made by managers. Tactics affect all statistical output on the football pitch, but CB and GK in particular are almost impossible to separate right now, and thus I don’t feel like putting the work into this area is a valuable use of time. It’s something we could revisit eventually.“
I have to say that I agree with Ted. Nevertheless, when I saw Mark Thompson’s (@ETNAR_uk) CB-radars on ETNAR, I decided to try to visualize Goalkeepers performances in radar charts. I made a first draft that I made available on Twitter, with the radar of the goalkeepers who won their respective championship in top-5 European Leagues: Thibaut Courtois for the Premier League, Gianluigi Buffon for the Serie A, Manuel Neuer for the Bundesliga, Claudio Bravo for La Liga and Salvatore Sirigu for the Ligue 1.
At first I was pretty pleased with the result, but then some doubts sprang up in my mind and the initial enthusiasm muffled, so I stopped my project. A pair of week ago I clawed back some of my initial enthusiasm and I posted the radars on twitter, to see what people thought of my work. I received a lot of feedbacks, particularly from Rene Maric (@ReneMaric) of spielverlagerung.com and Eddy (@EddieTrulyReds) of trulyreds.com and I got to work.
Firstable I had to expand my population. Starting from my first 5 “guinea pig goalkeepers” I collected stats of every goalkeeper who played more than 15 games in top-5 European leagues during last season. Once I’ve done it, I found myself with loads of data about 109 goalkeepers. I overtought about which stats were worthy of an inclusion in my radars, and as suggested by @rtherringbone on twitter I got rid of all team-based stats, like Shots Conceded per game (Note: i have only used stats at my -and your- disposal, public domain stats, not Opta-pro). In the end I chose 7 stats and I also calculated a “GK-score”.
- Goals conceded per 90 minutes – Weight on GK-score = 23.08%
- Saves per goal > Total saves / Total goals conceded – Weight on GK-score = 11.54%
- Saves per 90 minutes – Weight on GK-score = 11.54%
- Claims ratio = Cacthes per 90 minutes / (Cacthes per 90 minutes + Punches per 90 minutes) – Weight on GK-score = 7.69%. In my opinion this is a good index of a goalkeeper’s aerial ability, because a ball catched gives team possession but not always a ball punched.
- Distribution accuracy %¹ – Weight on GK-score = 7.69%
- Average distribution lenght (meters)¹ – Weight on GK-score = 7.69%
- Clean sheets per game – Weight on GK-score = 30.77%
- GK-Score² = (Clean sheets per game*2 + Goals conceded per 90 minutes*1.5 + Saves per goal*0.75 + Saves per 90 minutes*0.75 + Claims ratio*0.5 + Distribution accuracy % *0.5 + Average distribution lenght*0.5)/6.5*100
¹A goalkeeper distribution heavily depends on tactics, and a keeper who distributes longer generally has a smaller Distribution accuracy if compared to another who distributes shorter. To balance this two stats I assumed that the longer a keeper distributes, the “better”.
²GK-score is calculated using percentile-boundaries of every stat
[e.g. 0.78≤ Saves p90 ≥ 3.38 ⇒ (Saves p90 – 0.78)/(3.38-0.78)]
To put all these different stats in a radar with eight axis of the same scale, I took the maximum and minimum value of every stats and calculated the respective percentile.
0 ≤ (x – min x) / (Max x – min x) ≥ 100
For example Claudio Bravo made 3.11 Saves per goal. The maximum value was Yan Sommer’s 3.38 Saves per goal, while the minimum was Mariano Andujar’s 0.79. So to calculate Bravo’s percentile:
And so on. For Goals conceded per 90m I had to invert the scale so the formula was:
1 – (Goals conceded per 90 m – min x) / (Max x – min x)
In calculating the score, Clean sheets per game have the bigger weight because when a goalkeeper doesn’t concede any goal his team can’t lose, so in my opinion it’s even more important than Goals conceded per 90 minutes. Then as i explained in the conclusion, I reduced the weight of saves related stats. Distribution and claims related stats have the smallest weight, simply because I believe they are not as important as a goalkeeper main duty: to prevent goals. Moreover distribution is probably the goalkeeper’s stats that mostly depends on tactics, so I didn’t want to give it too much weight.
To calculate the GK-score I calculated the average of the weighted percentiles of every stats.
The final result looks like this.
I can also compare two (or more) goalkeepers in the same radar chart, as I did here, with the two extremes: the best and the worst goalkeeper in terms of my GK-score, Claudio Bravo and Zacharie Boucher (I’m sorry Zach!).
Similar to the Joe Average of StasBomb, I have my average goalkeeper, who I called, whitout too much inventiveness , “Average Keeper”.
As i said I have also ranked every keeper in terms on my GK-Score. In the image below I included the 10 best keepers and the 10 worst keeper.
In my opinion the only surprise in the top-10 is Costel Pantilimon, even if in terms of stats he did pretty well, as his 0,39 Clean sheets per game prove. I didn’t expected to have Diego Lopez in my flop-10 but I believe he paid for AC Milan struggles: his Goal conceded per 90 m were 1.52, while he kept only 0.19 Clean sheets per game.
I also made all the stats I collected publicly available . Click on the image below to browse them on Tableau.
Goalkeeper analysis is quite complex and save related stats are not the best to rate goalkeepers, as @11tegen11 described in his article (this is also the reason why I reduce the weight of Saves per goal and Saves per 90m in my GK-score), so don’t take this article and my system as the “truth”, because it’s not.
This is also the reason why I collected data from last season only: a bigger sample is obviously more accurate (also for boundaries) but would it be worthwhile?
I suggest to take my GK-score as a “bonus” to the radar charts, because my initial aim was only to visualize GK performances, not to rate them.
This article raised interest and even some debate on Twitter even before his publishing, so I assume it will raise even more. As always feel free to write critics, feedbacks and suggestions both here and on Twitter. Finally, if you want to see a particular goalkeeper radar, or simply his stats, let me know.
Follow me on Twitter @FlaFu_tbol