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