To create the league rankings, we take all shots faced by all goalkeepers to date in their league. We learn a set of embeddings that captures the different skillsets of a goalkeeper, which we can then swap in order to simulate their performance.
This gives us the total number of goals each goalkeeper would have been expected to concede (xG) if they faced every shot. To make this more interpretable, we first standardise the xG’s from a season total to per game, and then take this from the league average.
This final value is the number of xG’s a goalkeeper would have either prevented or conceded compared to the league average. So without further ado, here are Stats Perform’s goalkeeper rankings for Feb. 18:
Premier League: Week 26
Rank | Player | Team | Games | xG Prevented/90 Min |
---|---|---|---|---|
1 | Alisson | Liverpool | 18 | 0.74 |
2 | Ederson | Manchester City | 21 | 0.21 |
3 | David de Gea | Manchester United | 26 | 0.16 |
4 | Paulo Gazzaniga | Tottenham | 16 | 0.13 |
5 | Bernd Leno | Arsenal | 26 | 0.13 |
6 | Vicente Guaita | Crystal Palace | 24 | 0.10 |
7 | Kasper Schmeichel | Leicester City | 26 | 0.05 |
8 | Lukasz Fabianski | West Ham | 12 | 0.04 |
9 | Hugo Lloris | Tottenham | 10 | 0.01 |
10 | Dean Henderson | Sheffield United | 25 | 0.00 |
11 | Aaron Ramsdale | Bournemouth | 25 | -0.01 |
12 | Ben Foster | Watford | 26 | -0.03 |
13 | Martin Dubravka | Newcastle United | 26 | -0.03 |
14 | Mathew Ryan | Brighton & Hove Albion | 26 | -0.12 |
15 | Nick Pope | Burnley | 26 | -0.13 |
16 | Jordan Pickford | Everton | 26 | -0.16 |
17 | Tom Heaton | Aston Villa | 20 | -0.16 |
18 | Alex McCarthy | Southampton | 16 | -0.19 |
19 | Tim Krul | Norwich City | 24 | -0.22 |
20 | Rui Patricio | Wolverhampton | 26 | -0.23 |
21 | Kepa | Chelsea | 24 | -0.29 |
Bundesliga: Week 22
Rank | Player | Team | Games | xG Prevented/90 Min |
---|---|---|---|---|
1 | Kevin Trapp | Eintracht Frankfurt | 11 | 0.42 |
2 | Yann Sommer | Monchengladbach | 21 | 0.38 |
3 | Alexander Nubel | Schalke 04 | 18 | 0.32 |
4 | Peter Gulacsi | RB Leipzig | 21 | 0.24 |
5 | Manuel Neuer | Bayern Munich | 22 | 0.19 |
6 | Lukas Hradecky | Bayer Leverkusen | 22 | 0.17 |
7 | Koen Casteels | VfL Wolfsburg | 14 | 0.12 |
8 | Rune Jarstein | Hertha BSC | 20 | 0.09 |
9 | Rafal Gikiewicz | Union Berlin | 22 | 0.00 |
10 | Roman Burki | Borussia Dortmund | 19 | -0.05 |
11 | Alexander Schwolow | SC Freiburg | 13 | -0.07 |
12 | Robin Zentner | Mainz 05 | 19 | -0.12 |
13 | Leopold Zingerle | SC Paderborn | 16 | -0.18 |
14 | Oliver Baumann | 1899 Hoffenheim | 18 | -0.19 |
15 | Zack Steffen | Fortuna Dusseldorf | 17 | -0.24 |
16 | Timo Horn | FC Koln | 21 | -0.27 |
17 | Jiri Pavlenka | Werder Bremen | 22 | -0.39 |
18 | Tomas Koubek | FC Augsburg | 21 | -0.44 |
Serie A: Week 24
Rank | Player | Team | Games | xG Prevented/90 Min |
---|---|---|---|---|
1 | Wojciech Szczesny | Juventus | 17 | 0.34 |
2 | Robin Olsen | Cagliari | 15 | 0.27 |
3 | Thomas Strakosha | Lazio | 24 | 0.24 |
4 | Samir Handanovic | Inter Milan | 21 | 0.20 |
5 | Gianluigi Donnarumma | AC Milan | 23 | 0.09 |
6 | Luigi Sepe | Parma | 21 | 0.08 |
7 | Marco Silvestri | Verona | 24 | 0.07 |
8 | Jesse Joronen | Brescia | 20 | 0.07 |
9 | Ionut Radu | Genoa | 17 | 0.05 |
10 | Pau Lopez | Roma | 23 | 0.05 |
11 | Bartlomiej Dragowski | Fiorentina | 24 | 0.01 |
12 | Etrit Berisha | SPAL | 24 | -0.03 |
13 | Andrea Consigli | Sassuolo | 19 | -0.04 |
14 | Salvatore Sirigu | Torino | 24 | -0.06 |
15 | Alex Meret | Napoli | 15 | -0.11 |
16 | Juan Musso | Udinese | 24 | -0.18 |
17 | Gabriel | Lecce | 21 | -0.20 |
18 | Emil Audero | Sampdoria | 24 | -0.25 |
19 | Lukasz Skorupski | Bologna | 24 | -0.25 |
20 | Pierluigi Gollini | Atalanta | 21 | -0.37 |
La Liga: Week 24
Rank | Player | Team | Games | xG Prevented/90 Min |
---|---|---|---|---|
1 | Sergio Asenjo | Villareal | 21 | 0.28 |
2 | Jan Oblak | Atletico Madrid | 24 | 0.24 |
3 | Thibaut Courtois | Real Madrid | 21 | 0.22 |
4 | Jasper Cillessen | Valencia | 14 | 0.11 |
5 | Unai Simon | Athletic Bilbao | 21 | 0.10 |
6 | Marc-Andre ter Stegen | Barcelona | 23 | 0.09 |
7 | Aitor Fernandez | Levante | 24 | 0.07 |
8 | Alex Remiro | Real Sociedad | 16 | 0.02 |
9 | Manuel Reina | Mallorca | 23 | 0.02 |
10 | Fernando Pacheco | Alaves | 21 | 0.02 |
11 | Ruben Blanco | Celta Vigo | 22 | 0.00 |
12 | Jordi Masip | Valladolid | 24 | -0.01 |
13 | Tomas Vaclik | Sevilla | 24 | -0.02 |
14 | Joel Robles | Real Betis | 23 | -0.03 |
15 | Ruben | Osasuna | 13 | -0.07 |
16 | David Soria | Getafe | 24 | -0.09 |
17 | Jaume Domenech | Valencia | 10 | -0.12 |
18 | Rui Silva | Grenada | 23 | -0.12 |
19 | Marko Dmitrovic | Eibar | 23 | -0.18 |
20 | Ivan Cuellar | Leganes | 14 | -0.20 |
21 | Diego Lopez | Espanyol | 24 | -0.31 |
Ligue 1: Week 25
Rank | Player | Team | Games | xG Prevented/90 Min |
---|---|---|---|---|
1 | Geronimo Rulli | Montpellier | 22 | 0.30 |
2 | Keylor Navas | PSG | 20 | 0.22 |
3 | Edouard Mendy | Rennes | 21 | 0.22 |
4 | Walter Benitez | Nice | 23 | 0.18 |
5 | Predrag Rajkovic | Reims | 24 | 0.18 |
6 | Benoit Costil | Bordeaux | 25 | 0.12 |
7 | Steve Mandanda | Marseille | 24 | 0.12 |
8 | Alfred Gomis | Gijon | 19 | 0.03 |
9 | Mike Maignan | Lille | 25 | 0.03 |
10 | Alexandre Oukidja | Metz | 24 | 0.00 |
11 | Gautier Larsonneur | Brest | 24 | -0.01 |
12 | Anthony Lopes | Lyon | 23 | -0.02 |
13 | Benjamin Lecomte | Monaco | 25 | -0.03 |
14 | Matz Sels | Strasbourg | 25 | -0.03 |
15 | Paul Bernardoni | Nimes | 22 | -0.04 |
16 | Alban Lafont | Nantes | 24 | -0.09 |
17 | Stephane Ruffier | St. Etienne | 22 | -0.21 |
18 | Regis Gurtner | Amiens | 25 | -0.23 |
19 | Ludovic Butelle | Angers | 24 | -0.34 |
20 | Baptiste Reynet | Toulouse | 21 | -0.43 |