
Save percentage tells half the story.
Every unblocked attempt a goalie faced, scored by our model. Goals saved above expected asks the fair question: how many did he allow against how many the shots deserved?
The board
| # | Goalie | Team | GP | SV% | Att SV% | Att xSV% | GSAx | /60 | HD GSAx | QS% | Reb% | Grade |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Scott Wedgewood | COL | 45 | 0.921 | 0.952 | 0.940 | +19.8 | +0.47 | -0.8 | 78 | 8.5 | A |
| 2 | Logan Thompson | WSH | 58 | 0.912 | 0.945 | 0.933 | +29.3 | +0.51 | +7.5 | 67 | 8.9 | A |
| 3 | Andrei Vasilevskiy | TBL | 58 | 0.912 | 0.944 | 0.935 | +19.0 | +0.33 | +11.1 | 63 | 9.0 | A |
| 4 | Justus Annunen | NSH | 28 | 0.907 | 0.941 | 0.933 | +8.9 | +0.36 | +3.9 | 70 | 7.4 | A |
| 5 | Jeremy Swayman | BOS | 55 | 0.908 | 0.942 | 0.932 | +22.0 | +0.41 | +7.3 | 71 | 9.6 | A |
| 6 | Alex Lyon | BUF | 36 | 0.907 | 0.944 | 0.936 | +12.2 | +0.37 | +6.8 | 52 | 9.0 | A |
| 7 | Devin Cooley | CGY | 31 | 0.909 | 0.943 | 0.934 | +10.8 | +0.38 | +2.8 | 67 | 10.4 | A |
| 8 | Jacob Fowler | MTL | 17 | 0.908 | 0.941 | 0.928 | +8.5 | +0.50 | -1.1 | 59 | 9.5 | A |
| 9 | Joel Hofer | STL | 46 | 0.910 | 0.945 | 0.940 | +10.8 | +0.25 | +4.0 | 60 | 7.1 | A |
| 10 | John Gibson | DET | 57 | 0.901 | 0.942 | 0.935 | +15.1 | +0.28 | +0.5 | 57 | 8.1 | A |
| 11 | Jet Greaves | CBJ | 55 | 0.908 | 0.943 | 0.938 | +11.3 | +0.21 | +7.9 | 51 | 7.9 | A |
| 12 | Ukko-Pekka Luukkonen | BUF | 35 | 0.910 | 0.943 | 0.937 | +8.5 | +0.25 | +3.5 | 59 | 8.6 | A |
| 13 | Igor Shesterkin | NYR | 51 | 0.912 | 0.944 | 0.936 | +15.2 | +0.30 | -3.1 | 64 | 9.4 | A |
| 14 | Philipp Grubauer | SEA | 32 | 0.909 | 0.944 | 0.939 | +6.5 | +0.22 | +0.8 | 54 | 8.5 | B |
| 15 | Thatcher Demko | VAN | 20 | 0.897 | 0.939 | 0.933 | +4.4 | +0.24 | +3.0 | 50 | 8.8 | B |
| 16 | Dan Vladar | PHI | 52 | 0.906 | 0.945 | 0.940 | +9.0 | +0.18 | -4.9 | 61 | 7.4 | B |
| 17 | David Rittich | NYI | 30 | 0.894 | 0.939 | 0.934 | +5.1 | +0.18 | +3.0 | 54 | 8.1 | B |
| 18 | Juuse Saros | NSH | 59 | 0.893 | 0.936 | 0.935 | +2.1 | +0.04 | +3.4 | 50 | 8.1 | B |
| 19 | Jakub Dobes | MTL | 43 | 0.901 | 0.940 | 0.933 | +12.5 | +0.30 | +0.7 | 63 | 9.5 | B |
| 20 | Ilya Sorokin | NYI | 55 | 0.906 | 0.939 | 0.931 | +17.8 | +0.33 | +7.6 | 50 | 10.8 | B |
| 21 | Spencer Knight | CHI | 55 | 0.902 | 0.940 | 0.934 | +13.8 | +0.25 | -0.8 | 59 | 9.8 | B |
| 22 | Jake Oettinger | DAL | 54 | 0.899 | 0.939 | 0.935 | +7.2 | +0.14 | +1.2 | 55 | 8.7 | B |
| 23 | Connor Ingram | EDM | 32 | 0.899 | 0.938 | 0.935 | +3.2 | +0.11 | +2.1 | 59 | 8.6 | B |
| 24 | Casey DeSmith | DAL | 30 | 0.907 | 0.942 | 0.937 | +5.4 | +0.18 | -1.5 | 61 | 9.0 | C |
| 25 | Jesper Wallstedt | MIN | 35 | 0.916 | 0.944 | 0.941 | +4.8 | +0.14 | -3.2 | 59 | 7.8 | C |
| 26 | Joseph Woll | TOR | 39 | 0.899 | 0.939 | 0.939 | +0.4 | +0.01 | +1.2 | 53 | 7.3 | C |
| 27 | Carter Hart | VGK | 18 | 0.891 | 0.934 | 0.935 | -0.8 | -0.05 | +2.0 | 40 | 8.5 | C |
| 28 | Mackenzie Blackwood | COL | 39 | 0.903 | 0.942 | 0.938 | +5.1 | +0.14 | +1.6 | 50 | 10.6 | C |
| 29 | Dustin Wolf | CGY | 57 | 0.899 | 0.936 | 0.936 | -0.3 | -0.01 | +2.4 | 46 | 8.4 | C |
| 30 | Lukas Dostal | ANA | 56 | 0.888 | 0.933 | 0.934 | -1.8 | -0.03 | +4.4 | 50 | 9.1 | C |
| 31 | Brandon Bussi | CAR | 39 | 0.895 | 0.926 | 0.930 | -4.3 | -0.11 | +3.7 | 53 | 8.7 | C |
| 32 | Anton Forsberg | LAK | 36 | 0.910 | 0.944 | 0.941 | +4.2 | +0.13 | -0.6 | 53 | 9.5 | C |
| 33 | Darcy Kuemper | LAK | 50 | 0.891 | 0.936 | 0.937 | -1.6 | -0.03 | -3.1 | 53 | 8.2 | C |
| 34 | Anthony Stolarz | TOR | 26 | 0.893 | 0.931 | 0.937 | -5.4 | -0.23 | +2.9 | 50 | 8.1 | C |
| 35 | Stuart Skinner | EDM/PIT | 50 | 0.888 | 0.937 | 0.935 | +4.6 | +0.10 | -5.4 | 47 | 9.2 | C |
| 36 | Tristan Jarry | PIT/EDM | 33 | 0.882 | 0.930 | 0.933 | -3.6 | -0.12 | +5.2 | 44 | 8.1 | C |
| 37 | Karel Vejmelka | UTA | 64 | 0.897 | 0.936 | 0.935 | +1.0 | +0.02 | -2.9 | 53 | 9.0 | D |
| 38 | Elvis Merzlikins | CBJ | 30 | 0.883 | 0.929 | 0.935 | -7.5 | -0.27 | +7.8 | 52 | 9.4 | D |
| 39 | Connor Hellebuyck | WPG | 57 | 0.895 | 0.935 | 0.935 | -1.1 | -0.02 | +1.6 | 47 | 9.8 | D |
| 40 | Arturs Silovs | PIT | 39 | 0.888 | 0.933 | 0.936 | -5.2 | -0.14 | +0.5 | 47 | 7.4 | D |
| 41 | Alex Nedeljkovic | SJS | 40 | 0.896 | 0.929 | 0.934 | -7.3 | -0.19 | +7.4 | 44 | 8.7 | D |
| 42 | Eric Comrie | WPG | 25 | 0.890 | 0.939 | 0.941 | -1.1 | -0.05 | -0.6 | 55 | 9.3 | D |
| 43 | Nikita Tolopilo | VAN | 21 | 0.881 | 0.925 | 0.929 | -3.5 | -0.18 | +1.0 | 56 | 8.2 | D |
| 44 | Filip Gustavsson | MIN | 50 | 0.904 | 0.939 | 0.940 | -1.5 | -0.03 | -7.9 | 47 | 8.1 | D |
| 45 | Daniil Tarasov | FLA | 33 | 0.895 | 0.931 | 0.937 | -7.6 | -0.24 | +1.8 | 50 | 9.4 | D |
| 46 | Jonathan Quick | NYR | 25 | 0.891 | 0.941 | 0.940 | +0.3 | +0.01 | -4.7 | 48 | 8.5 | D |
| 47 | Linus Ullmark | OTT | 49 | 0.891 | 0.935 | 0.938 | -6.2 | -0.13 | -8.0 | 57 | 8.0 | D |
| 48 | Joey Daccord | SEA | 47 | 0.897 | 0.940 | 0.942 | -3.5 | -0.08 | -5.2 | 56 | 8.6 | D |
| 49 | Jake Allen | NJD | 37 | 0.904 | 0.936 | 0.935 | +2.1 | +0.06 | -7.0 | 51 | 10.1 | D |
| 50 | Frederik Andersen | CAR | 35 | 0.874 | 0.920 | 0.926 | -7.6 | -0.22 | -0.1 | 37 | 9.8 | D |
| 51 | Joonas Korpisalo | BOS | 31 | 0.894 | 0.932 | 0.934 | -2.7 | -0.10 | -1.7 | 41 | 10.1 | F |
| 52 | Ville Husso | ANA | 20 | 0.884 | 0.929 | 0.934 | -3.4 | -0.18 | -0.6 | 39 | 8.6 | F |
| 53 | Samuel Montembeault | MTL | 25 | 0.872 | 0.921 | 0.923 | -1.9 | -0.08 | +0.8 | 44 | 10.5 | F |
| 54 | Akira Schmid | VGK | 34 | 0.892 | 0.933 | 0.941 | -9.6 | -0.29 | -1.6 | 41 | 9.5 | F |
| 55 | Kevin Lankinen | VAN | 47 | 0.875 | 0.924 | 0.931 | -13.2 | -0.31 | -0.0 | 39 | 9.1 | F |
| 56 | Jacob Markstrom | NJD | 44 | 0.883 | 0.925 | 0.936 | -18.6 | -0.44 | +0.5 | 41 | 7.9 | F |
| 57 | Yaroslav Askarov | SJS | 47 | 0.884 | 0.929 | 0.936 | -13.8 | -0.32 | -3.7 | 38 | 9.4 | F |
| 58 | Vitek Vanecek | UTA | 22 | 0.883 | 0.924 | 0.934 | -7.2 | -0.36 | -1.3 | 35 | 10.8 | F |
| 59 | Cam Talbot | DET | 34 | 0.883 | 0.927 | 0.937 | -11.5 | -0.40 | -9.2 | 35 | 5.7 | F |
| 60 | Sergei Bobrovsky | FLA | 52 | 0.877 | 0.925 | 0.936 | -20.7 | -0.41 | -7.0 | 39 | 8.8 | F |
| 61 | Arvid Soderblom | CHI | 26 | 0.880 | 0.923 | 0.931 | -9.6 | -0.39 | -2.7 | 42 | 9.7 | F |
| 62 | Charlie Lindgren | WSH | 21 | 0.879 | 0.922 | 0.931 | -7.7 | -0.37 | -9.7 | 30 | 7.5 | F |
| 63 | Samuel Ersson | PHI | 33 | 0.870 | 0.923 | 0.937 | -15.7 | -0.50 | -4.8 | 36 | 8.1 | F |
| 64 | Jordan Binnington | STL | 41 | 0.873 | 0.923 | 0.938 | -22.0 | -0.57 | -3.3 | 41 | 9.4 | F |
| 65 | Adin Hill | VGK | 27 | 0.871 | 0.924 | 0.939 | -13.4 | -0.54 | -6.4 | 33 | 6.5 | F |
| 66 | Jonas Johansson | TBL | 25 | 0.884 | 0.922 | 0.937 | -14.3 | -0.60 | -5.1 | 44 | 8.8 | F |
| 67 | Leevi Meriläinen | OTT | 20 | 0.860 | 0.911 | 0.939 | -17.3 | -0.95 | -2.8 | 22 | 10.5 | F |
SV% is the official number, on shots on goal. Att SV% and Att xSV% are on every unblocked attempt he faced, misses included: what he stopped, and what an average goalie stops on those same shots. GSAx = expected goals faced minus goals against, scaled so the league sums to zero. HD = high-danger attempts (xG ≥ 0.18). QS% = games with GSAx ≥ 0. Reb% = attempts followed by a same-team shot within 3 s. 24 goalies under 15 games are not ranked.
Cards
- Attempts faced
- 1607
- Avg chance faced
- 6.0%
- Stopped vs expected
- 0.952 vs 0.940
- Rebounds allowed
- 8.5% · 7 scored on
- Quality starts
- 78% · 5 blowups
- Steadiness
- 1.37 std-dev
- Attempts faced
- 2450
- Avg chance faced
- 6.7%
- Stopped vs expected
- 0.945 vs 0.933
- Rebounds allowed
- 8.9% · 18 scored on
- Quality starts
- 67% · 6 blowups
- Steadiness
- 1.52 std-dev
- Attempts faced
- 2202
- Avg chance faced
- 6.5%
- Stopped vs expected
- 0.944 vs 0.935
- Rebounds allowed
- 9.0% · 18 scored on
- Quality starts
- 63% · 6 blowups
- Steadiness
- 1.27 std-dev
- Attempts faced
- 1040
- Avg chance faced
- 6.7%
- Stopped vs expected
- 0.941 vs 0.933
- Rebounds allowed
- 7.4% · 7 scored on
- Quality starts
- 70% · 4 blowups
- Steadiness
- 1.71 std-dev
- Attempts faced
- 2336
- Avg chance faced
- 6.8%
- Stopped vs expected
- 0.942 vs 0.932
- Rebounds allowed
- 9.6% · 19 scored on
- Quality starts
- 71% · 8 blowups
- Steadiness
- 1.64 std-dev
- Attempts faced
- 1481
- Avg chance faced
- 6.4%
- Stopped vs expected
- 0.944 vs 0.936
- Rebounds allowed
- 9.0% · 11 scored on
- Quality starts
- 52% · 2 blowups
- Steadiness
- 1.39 std-dev
- Attempts faced
- 1215
- Avg chance faced
- 6.6%
- Stopped vs expected
- 0.943 vs 0.934
- Rebounds allowed
- 10.4% · 10 scored on
- Quality starts
- 67% · 3 blowups
- Steadiness
- 1.37 std-dev
- Attempts faced
- 675
- Avg chance faced
- 7.2%
- Stopped vs expected
- 0.941 vs 0.928
- Rebounds allowed
- 9.5% · 6 scored on
- Quality starts
- 59% · 1 blowups
- Steadiness
- 1.41 std-dev
- Attempts faced
- 1867
- Avg chance faced
- 6.0%
- Stopped vs expected
- 0.945 vs 0.940
- Rebounds allowed
- 7.1% · 16 scored on
- Quality starts
- 60% · 4 blowups
- Steadiness
- 1.57 std-dev
- Attempts faced
- 2144
- Avg chance faced
- 6.5%
- Stopped vs expected
- 0.942 vs 0.935
- Rebounds allowed
- 8.1% · 10 scored on
- Quality starts
- 57% · 4 blowups
- Steadiness
- 1.34 std-dev
- Attempts faced
- 2320
- Avg chance faced
- 6.2%
- Stopped vs expected
- 0.943 vs 0.938
- Rebounds allowed
- 7.9% · 13 scored on
- Quality starts
- 51% · 5 blowups
- Steadiness
- 1.36 std-dev
- Attempts faced
- 1413
- Avg chance faced
- 6.3%
- Stopped vs expected
- 0.943 vs 0.937
- Rebounds allowed
- 8.6% · 11 scored on
- Quality starts
- 59% · 3 blowups
- Steadiness
- 1.52 std-dev
How it's built
What the index is, and is not
Every unblocked attempt a goalie faced (NHL play-by-play, goalie from the NHL shift charts) scored by Backcheck's xG model, then scaled so the league's goalies sum to zero GSAx (factor 0.944); GSAx = xG faced - goals against. Empty-net and shootout attempts excluded; playoffs excluded. Official GP/TOI/SV%/GAA from the NHL stats API. Index = percentile of a z-score blend among goalies with 15+ games (weights listed).
Weights: gsaxPer60 45% · highDangerGsaxPerAttempt 20% · qualityStartPct 15% · reboundControl 10% · steadiness 10%. Built Sep 24, 2026.
- GSAx
- Goals saved above expected: the xG of every unblocked attempt he faced minus the goals he allowed. Zero is league average by construction.
- Expected SV%
- One minus xG per attempt. A goalie facing a diet of tips and rebounds has a lower expected SV% than one facing point shots, so the same .910 can be a great season or a poor one.
- Index
- A percentile among qualified goalies of a weighted blend: GSAx per 60, high-danger saving, quality-start rate, rebound control, steadiness. A ranking device, not a wins number.