Goalies — GSAx
Goals saved above expected — the shots a goalie actually stopped beyond what the chances faced were worth. 2025-26 season.
Descriptive, not a prediction. Goalie performance barely carries year-to-year (season-to-season correlation ≈ 0.14 — “goalie voodoo”), so Pythia shows real GSAx rather than forecasting the unpredictable. No Pythia Score here — that's for skaters, where it holds up.
65 regular goalies · ≥ 500 shots faced · ranked by GSAx
| # | Goalie | GSAx | GSAx/60 | Sv% | dSv% | Shots | The read |
|---|---|---|---|---|---|---|---|
| 1 | Logan ThompsonWSH · 29 | +29.3 | +0.51 | .912 | +1.8% | 1587 | Balanced |
| 2 | Jeremy SwaymanBOS · 27 | +28.8 | +0.53 | .907 | +1.8% | 1572 | Balanced |
| 3 | Ilya SorokinNYI · 31 | +25.3 | +0.47 | .906 | +1.7% | 1530 | Balanced |
| 4 | Andrei VasilevskiyTBL · 32 | +24.7 | +0.43 | .911 | +1.7% | 1485 | Balanced |
| 5 | Scott WedgewoodCOL · 34 | +23.1 | +0.54 | .921 | +2.1% | 1093 | Balanced |
| 6 | Igor ShesterkinNYR · 30 | +21.2 | +0.42 | .912 | +1.5% | 1425 | Balanced |
| 7 | Devin CooleyCGY · 29 | +17.3 | +0.60 | .909 | +2.0% | 847 | Balanced |
| 8 | Jakub DobesMTL · 25 | +17.3 | +0.41 | .901 | +1.5% | 1187 | Stealing games |
| 9 | Jet GreavesCBJ · 25 | +16.5 | +0.30 | .908 | +1.1% | 1539 | Balanced |
| 10 | Dan VladarPHI · 29 | +13.8 | +0.28 | .906 | +1.1% | 1283 | Balanced |
| 11 | Alex LyonBUF · 33 | +12.6 | +0.38 | .906 | +1.3% | 980 | Balanced |
| 12 | John GibsonDET · 33 | +11.7 | +0.22 | .901 | +0.8% | 1461 | Balanced |
| 13 | Joel HoferSTL · 26 | +11.7 | +0.27 | .909 | +0.9% | 1251 | Balanced |
| 14 | Spencer KnightCHI · 25 | +10.9 | +0.20 | .902 | +0.7% | 1551 | Balanced |
| 15 | Casey DeSmithDAL · 35 | +10.5 | +0.36 | .907 | +1.4% | 760 | Balanced |
| 16 | Ukko-Pekka LuukkonenBUF · 27 | +10.5 | +0.31 | .909 | +1.1% | 931 | Balanced |
| 17 | Dennis HildebyTOR · 25 | +10.5 | +0.62 | .913 | +1.9% | 549 | Balanced |
| 18 | Anton ForsbergLAK · 33 | +9.4 | +0.28 | .909 | +1.0% | 954 | Balanced |
| 19 | Stuart SkinnerPIT · 27 | +8.3 | +0.17 | .888 | +0.7% | 1267 | Stealing games |
| 20 | Justus AnnunenNSH · 26 | +8.3 | +0.33 | .906 | +1.2% | 712 | Balanced |
| 21 | Mackenzie BlackwoodCOL · 29 | +8.3 | +0.23 | .904 | +0.9% | 933 | Balanced |
| 22 | Karel VejmelkaUTA · 30 | +6.9 | +0.11 | .896 | +0.4% | 1627 | Balanced |
| 23 | Jake AllenNJD · 36 | +6.3 | +0.17 | .903 | +0.6% | 1032 | Balanced |
| 24 | Jesper WallstedtMIN · 23 | +6.2 | +0.19 | .915 | +0.6% | 1021 | Carried by defense |
| 25 | Jake OettingerDAL · 27 | +5.7 | +0.11 | .899 | +0.4% | 1372 | Balanced |
| 26 | Philipp GrubauerSEA · 34 | +5.7 | +0.19 | .909 | +0.7% | 866 | Balanced |
| 27 | Connor HellebuyckWPG · 33 | +5.5 | +0.10 | .895 | +0.4% | 1547 | Balanced |
| 28 | David RittichNYI · 34 | +4.2 | +0.15 | .894 | +0.6% | 720 | Balanced |
| 29 | Brandon BussiCAR · 28 | +2.8 | +0.07 | .894 | +0.3% | 912 | Balanced |
| 30 | Thatcher DemkoVAN · 30 | +2.0 | +0.11 | .895 | +0.4% | 515 | Balanced |
| 31 | Connor IngramEDM · 29 | +1.7 | +0.06 | .899 | +0.2% | 763 | Balanced |
| 32 | Filip GustavssonMIN · 28 | +1.4 | +0.03 | .903 | +0.1% | 1378 | Balanced |
| 33 | Eric ComrieWPG · 31 | -0.7 | -0.03 | .890 | -0.1% | 654 | Balanced |
| 34 | Joonas KorpisaloBOS · 32 | -1.0 | -0.03 | .894 | -0.1% | 851 | Balanced |
| 35 | Akira SchmidVGK · 26 | -1.0 | -0.03 | .893 | -0.1% | 791 | Balanced |
| 36 | Alex NedeljkovicSJS · 30 | -1.2 | -0.03 | .896 | -0.1% | 1048 | Balanced |
| 37 | Daniil TarasovFLA · 27 | -1.8 | -0.06 | .895 | -0.2% | 924 | Balanced |
| 38 | Dustin WolfCGY · 25 | -1.8 | -0.03 | .899 | -0.1% | 1560 | Balanced |
| 39 | Vitek VanecekUTA · 30 | -2.0 | -0.10 | .883 | -0.4% | 506 | Balanced |
| 40 | Lukas DostalANA · 26 | -2.9 | -0.05 | .888 | -0.2% | 1513 | Balanced |
| 41 | Ville HussoANA · 31 | -3.1 | -0.16 | .884 | -0.6% | 534 | Balanced |
| 42 | Frederik AndersenCAR · 36 | -3.3 | -0.09 | .874 | -0.4% | 849 | Stealing games |
| 43 | Arvid SoderblomCHI · 27 | -4.0 | -0.16 | .880 | -0.5% | 774 | Balanced |
| 44 | Tristan JarryEDM · 31 | -4.1 | -0.14 | .882 | -0.5% | 832 | Balanced |
| 45 | Samuel MontembeaultMTL · 29 | -4.9 | -0.21 | .872 | -0.8% | 635 | Stealing games |
| 46 | Charlie LindgrenWSH · 32 | -5.3 | -0.25 | .879 | -0.9% | 602 | Balanced |
| 47 | Darcy KuemperLAK · 36 | -5.8 | -0.12 | .891 | -0.5% | 1234 | Balanced |
| 48 | Joey DaccordSEA · 30 | -6.2 | -0.14 | .896 | -0.5% | 1309 | Carried by defense |
| 49 | Jonathan QuickNYR · 40 | -6.4 | -0.27 | .891 | -1.0% | 671 | Balanced |
| 50 | Joseph WollTOR · 28 | -6.6 | -0.18 | .898 | -0.5% | 1221 | Carried by defense |
| 51 | Anthony StolarzTOR · 32 | -6.7 | -0.29 | .893 | -0.9% | 708 | Carried by defense |
| 52 | Elvis MerzlikinsCBJ · 32 | -7.3 | -0.26 | .883 | -0.9% | 812 | Balanced |
| 53 | Nikita TolopiloVAN · 26 | -7.5 | -0.39 | .881 | -1.3% | 582 | Balanced |
| 54 | Juuse SarosNSH · 31 | -9.3 | -0.16 | .894 | -0.5% | 1700 | Balanced |
| 55 | Jonas JohanssonTBL · 30 | -10.4 | -0.44 | .884 | -1.6% | 670 | Balanced |
| 56 | Arturs SilovsPIT · 25 | -11.9 | -0.32 | .887 | -1.2% | 1021 | Balanced |
| 57 | Jacob MarkstromNJD · 36 | -11.9 | -0.28 | .883 | -1.1% | 1113 | Balanced |
| 58 | Sergei BobrovskyFLA · 37 | -12.2 | -0.24 | .877 | -1.0% | 1250 | Balanced |
| 59 | Linus UllmarkOTT · 33 | -12.8 | -0.27 | .891 | -1.1% | 1198 | Balanced |
| 60 | Cam TalbotDET · 39 | -13.1 | -0.45 | .883 | -1.6% | 796 | Balanced |
| 61 | Adin HillVGK · 30 | -14.2 | -0.57 | .871 | -2.4% | 587 | Balanced |
| 62 | Samuel ErssonPHI · 26 | -16.5 | -0.53 | .870 | -2.2% | 744 | Balanced |
| 63 | Yaroslav AskarovSJS · 24 | -18.9 | -0.44 | .883 | -1.4% | 1342 | Balanced |
| 64 | Kevin LankinenVAN · 31 | -19.3 | -0.45 | .875 | -1.5% | 1285 | Balanced |
| 65 | Jordan BinningtonSTL · 33 | -22.4 | -0.58 | .873 | -2.2% | 1010 | Balanced |
dSv% = save% above expected. ↑ Stealing games = saving above expected behind a leaky defence; ↓ Carried by defense = strong raw numbers inflated by an easy shot diet. Data: MoneyPuck.com.