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 Jan. 22:
Premier League: Week 23
Rank | Player | Team | Games | xG Prevented/90 Min |
---|---|---|---|---|
1 | Alisson | Liverpool | 14 | 0.70 |
2 | Ederson | Manchester City | 20 | 0.25 |
3 | Adrian | Liverpool | 9 | 0.23 |
4 | David de Gea | Manchester United | 23 | 0.19 |
5 | Paulo Gazzaniga | Tottenham | 16 | 0.15 |
6 | Lukasz Fabianski | West Ham | 10 | 0.12 |
7 | Vicente Guaita | Crystal Palace | 22 | 0.12 |
8 | Bernd Leno | Arsenal | 24 | 0.11 |
9 | Kasper Schmeichel | Leicester City | 23 | 0.07 |
10 | Ben Foster | Watford | 24 | 0.03 |
11 | Martin Dubravka | Newcastle United | 24 | 0.02 |
12 | Dean Henderson | Sheffield United | 23 | -0.02 |
13 | Mathew Ryan | Brighton & Hove Albion | 24 | -0.03 |
14 | Aaron Ramsdale | Bournemouth | 23 | -0.03 |
15 | Jordan Pickford | Everton | 24 | -0.03 |
16 | Alex McCarthy | Southampton | 14 | -0.08 |
17 | Hugo Lloris | Tottenham | 7 | -0.09 |
18 | Roberto | West Ham | 7 | -0.12 |
19 | Tom Heaton | Aston Villa | 20 | -0.15 |
20 | Tim Krul | Norwich City | 21 | -0.18 |
21 | Kepa | Chelsea | 24 | -0.22 |
22 | Nick Pope | Burnley | 23 | -0.24 |
23 | Rui Patricio | Wolverhampton | 23 | -0.30 |
24 | Angus Gunn | Southampton | 10 | -0.51 |
Bundesliga: Week 18
Rank | Player | Team | Games | xG Prevented/90 Min |
---|---|---|---|---|
1 | Kevin Trapp | Eintracht Frankfurt | 7 | 0.48 |
2 | Yann Sommer | Monchengladbach | 18 | 0.33 |
3 | Alexander Nubel | Schalke 04 | 15 | 0.26 |
4 | Peter Gulacsi | RB Leipzig | 17 | 0.24 |
5 | Lukas Hradecky | Bayer Leverkusen | 18 | 0.19 |
6 | Manuel Neuer | Bayern Munich | 18 | 0.15 |
7 | Mark Flekken | SC Freiburg | 9 | 0.14 |
8 | Pavao Pervan | VfL Wolfsburg | 8 | 0.14 |
9 | Frederik Ronnow | Eintracht Frankfurt | 8 | 0.11 |
10 | Rafal Gikiewicz | Union Berlin | 18 | 0.09 |
11 | Koen Casteels | VfL Wolfsburg | 10 | 0.07 |
12 | Rune Jarstein | Hertha BSC | 16 | 0.03 |
13 | Alexander Schwolow | SC Freiburg | 9 | -0.05 |
14 | Timo Horn | FC Koln | 18 | -0.07 |
15 | Roman Burki | Borussia Dortmund | 15 | -0.07 |
16 | Robin Zentner | Mainz 05 | 15 | -0.07 |
17 | Oliver Baumann | 1899 Hoffenheim | 17 | -0.18 |
18 | Leopold Zingerle | SC Paderborn 07 | 12 | -0.20 |
19 | Jiri Pavlenka | Werder Bremen | 18 | -0.22 |
20 | Zack Steffen | Fortuna Dusseldorf | 17 | -0.25 |
21 | Tomas Koubek | FC Augsburg | 18 | -0.40 |
22 | Jannik Huth | SC Paderborn 07 | 6 | -0.72 |
Serie A: Week 20
Rank | Player | Team | Games | xG Prevented/90 Min |
---|---|---|---|---|
1 | Wojciech Szczesny | Juventus | 13 | 0.44 |
2 | Gianluigi Buffon | Juventus | 7 | 0.31 |
3 | Robin Olsen | Cagliari | 15 | 0.30 |
4 | Pau Lopez | AS Roma | 19 | 0.27 |
5 | Samir Handanovic | Inter Milan | 20 | 0.24 |
6 | Thomas Strakosha | SS Lazio | 19 | 0.18 |
7 | Gianluigi Donnarumma | AC Milan | 19 | 0.10 |
8 | David Ospina | Napoli | 7 | 0.09 |
9 | Jesse Joronen | Brescia | 17 | 0.09 |
10 | Luigi Sepe | Parma | 20 | 0.09 |
11 | Etrit Berisha | SPAL | 20 | 0.08 |
12 | Ionut Radu | Genoa | 17 | 0.08 |
13 | Salvatore Sirigu | Torino FC | 20 | 0.07 |
14 | Marco Silvestri | Verona | 19 | 0.01 |
15 | Bartlomiej Dragowski | ACF Fiorentina | 20 | -0.00 |
16 | Andrea Consigli | Sassuolo | 15 | -0.10 |
17 | Emil Audero | Sampdoria | 20 | -0.13 |
18 | Alex Meret | Napoli | 13 | -0.14 |
19 | Gabriel | Lecce | 20 | -0.14 |
20 | Juan Musso | Udinese | 20 | -0.14 |
21 | Lukasz Skorupski | Bologna | 20 | -0.28 |
22 | Pierluigi Gollini | Atalanta | 17 | -0.42 |
23 | Rafael | Cagliari | 5 | -1.02 |
La Liga: Week 20
Rank | Player | Team | Games | xG Prevented/90 Min |
---|---|---|---|---|
1 | Unai Simon | Athletic Bilbao | 18 | 0.33 |
2 | Sergio Asenjo | Villareal | 17 | 0.28 |
3 | Jan Oblak | Atletico Madrid | 20 | 0.24 |
4 | Thibaut Courtois | Real Madrid | 17 | 0.23 |
5 | Jasper Cillessen | Valencia | 14 | 0.11 |
6 | Marc-Andre ter Stegen | Barcelona | 19 | 0.10 |
7 | Miguel Angel Moya | Real Sociedad | 7 | 0.08 |
8 | Aitor Fernandez | Levante | 20 | 0.07 |
9 | Manuel Reina | Mallorca | 19 | 0.01 |
10 | Jordi Masip | Valladolid | 20 | 0.01 |
11 | Fernando Pacheco | Alaves | 17 | 0.01 |
12 | Juan Soriano | Leganes | 7 | -0.02 |
13 | Ruben Blanco | Celta Vigo | 18 | -0.02 |
14 | Joel Robles | Real Betis | 19 | -0.03 |
15 | Tomas Vaclik | Sevilla | 20 | -0.04 |
16 | David Soria | Getafe | 20 | -0.06 |
17 | Ruben | Osasuna | 13 | -0.07 |
18 | Jaume Domenech | Valencia | 6 | -0.10 |
19 | Rui Silva | Grenada | 20 | -0.12 |
20 | Alex Remiro | Real Sociedad | 13 | -0.13 |
21 | Sergio Herrera | Osasuna | 5 | -0.15 |
22 | Ivan Cuellar | Leganes | 13 | -0.20 |
23 | Marko Dmitrovic | Eibar | 20 | -0.27 |
24 | Diego Lopez | Espanyol | 20 | -0.28 |
Ligue 1: Week 21
Rank | Player | Team | Games | xG Prevented/90 Min |
---|---|---|---|---|
1 | Keylor Navas | PSG | 15 | 0.33 |
2 | Geronimo Rulli | Montpellier | 19 | 0.30 |
3 | Edouard Mendy | Rennes | 16 | 0.29 |
4 | Predrag Rajkovic | Reims | 20 | 0.21 |
5 | Benoit Costil | Bordeaux | 20 | 0.13 |
6 | Steve Mandanda | Marseille | 19 | 0.11 |
7 | Walter Benitez | Nice | 18 | 0.11 |
8 | Alfred Gomis | Gijon | 15 | 0.09 |
9 | Benjamin Lecomte | Monaco | 20 | 0.06 |
10 | Mike Maignan | Lille | 20 | 0.06 |
11 | Alban Lafont | Nantes | 20 | 0.06 |
12 | Anthony Lopes | Lyon | 20 | 0.06 |
13 | Gautier Larsonneur | Brest | 19 | -0.00 |
14 | Matz Sels | Strasbourg | 20 | -0.02 |
15 | Alexandre Oukidja | Metz | 19 | -0.13 |
16 | Stephane Ruffier | St. Etienne | 17 | -0.14 |
17 | Paul Bernardoni | Nimes | 17 | -0.15 |
18 | Regis Gurtner | Amiens | 20 | -0.20 |
19 | Ludovic Butelle | Angers | 20 | -0.30 |
20 | Baptiste Reynet | Toulouse | 20 | -0.40 |
21 | Runar Alex Runarsson | Dijon | 5 | -0.46 |