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