Goalies
Goalie Save % by Shot Class (Rebound, Rush, Cycle, Off the Draw)
2023-245-on-5Through 82 team games
Not every shot is equally hard. League-wide, goalies stop about .849 of rebound attempts, .896 of cycle shots, .931 of rush and transition shots and .950 of shots straight off an offensive-zone draw. A goalie who faces more rebounds is going to post a lower raw save percentage through no fault of his own.
This board sorts every unblocked shot against into those classes and ranks goalies by how far their save percentage beats the rate their own shot mix predicts. The class columns show where the gap comes from, with the ± column as a 95% interval.
Leader in 2023-24: Anthony Stolarz (FLA), +2.4 FSV% vs exp..
Save % by shot class leaderboard
| # | Goalie | Team | ±95% | Rebound SV% | Rush SV% | ||
|---|---|---|---|---|---|---|---|
| 1 | Anthony StolarzFLA | FLA | +2.4 | 773 | 1.3 | 92.4% | 93.0% |
| 2 | Connor HellebuyckWPG | WPG | +1.4 | 2,033 | 0.9 | 91.3% | 94.5% |
| 3 | Joey DaccordSEA | SEA | +1.4 | 1,648 | 1.0 | 87.4% | 94.8% |
| 4 | Semyon VarlamovNYI | NYI | +1.2 | 965 | 1.4 | 90.2% | 94.1% |
| 5 | Jeremy SwaymanBOS | BOS | +1.2 | 1,463 | 1.1 | 83.8% | 93.2% |
| 6 | Linus UllmarkBOS | BOS | +1.1 | 1,387 | 1.1 | 81.7% | 91.3% |
| 7 | Cayden PrimeauMTL | MTL | +0.9 | 808 | 1.5 | 92.9% | 96.8% |
| 8 | Joel HoferSTL | STL | +0.8 | 993 | 1.4 | 88.2% | 94.0% |
| 9 | Ilya SorokinNYI | NYI | +0.7 | 2,076 | 1.0 | 89.5% | 93.6% |
| 10 | Casey DeSmithVAN | VAN | +0.7 | 865 | 1.5 | 91.5% | 94.6% |
| 11 | Sergei BobrovskyFLA | FLA | +0.6 | 1,720 | 1.1 | 83.3% | 92.9% |
| 12 | Thatcher DemkoVAN | VAN | +0.5 | 1,577 | 1.1 | 90.8% | 92.9% |
| 13 | Daniil TarasovCBJ | CBJ | +0.5 | 869 | 1.5 | 90.9% | 92.0% |
| 14 | Connor IngramARI | ARI | +0.5 | 1,649 | 1.1 | 89.8% | 88.3% |
| 15 | Marc-Andre FleuryMIN | MIN | +0.5 | 1,185 | 1.3 | 90.8% | 92.9% |
| 16 | Charlie LindgrenWSH | WSH | +0.4 | 1,668 | 1.1 | 91.9% | 92.3% |
| 17 | Samuel MontembeaultMTL | MTL | +0.4 | 1,428 | 1.2 | 89.2% | 93.5% |
| 18 | Ukko-Pekka LuukkonenBUF | BUF | +0.4 | 1,746 | 1.1 | 87.9% | 96.1% |
| 19 | Igor ShesterkinNYR | NYR | +0.3 | 1,866 | 1.1 | 81.0% | 94.7% |
| 20 | Logan ThompsonVGK | VGK | +0.3 | 1,490 | 1.2 | 85.0% | 92.0% |
| 21 | Jordan BinningtonSTL | STL | +0.3 | 2,067 | 1.0 | 89.0% | 94.0% |
| 22 | Tristan JarryPIT | PIT | +0.3 | 1,648 | 1.1 | 82.6% | 91.2% |
| 23 | Petr MrazekCHI | CHI | +0.2 | 2,023 | 1.0 | 85.3% | 92.6% |
| 24 | Scott WedgewoodDAL | DAL | +0.2 | 980 | 1.5 | 81.8% | 99.0% |
| 25 | Jacob MarkstromCGY | CGY | +0.1 | 1,541 | 1.2 | 86.8% | 92.1% |
| 26 | Cam TalbotLAK | LAK | +0.1 | 1,657 | 1.1 | 86.7% | 91.2% |
| 27 | Adin HillVGK | VGK | +0.1 | 1,173 | 1.3 | 86.4% | 90.5% |
| 28 | Ilya SamsonovTOR | TOR | +0.1 | 1,264 | 1.3 | 88.8% | 88.4% |
| 29 | Juuse SarosNSH | NSH | +0.1 | 2,018 | 1.0 | 90.1% | 92.3% |
| 30 | Kaapo KahkonenNJD/SJS | NJD/SJS | −0.0 | 1,350 | 1.3 | 88.0% | 88.7% |
| 31 | Stuart SkinnerEDM | EDM | −0.0 | 1,708 | 1.1 | 85.1% | 93.3% |
| 32 | Alex LyonDET | DET | −0.2 | 1,517 | 1.2 | 84.2% | 94.1% |
| 33 | Jake AllenMTL/NJD | MTL/NJD | −0.2 | 1,223 | 1.4 | 87.5% | 94.5% |
| 34 | Alex NedeljkovicPIT | PIT | −0.2 | 1,202 | 1.4 | 80.6% | 92.8% |
| 35 | Lukas DostalANA | ANA | −0.2 | 1,322 | 1.3 | 83.5% | 92.3% |
| 36 | Jonathan QuickNYR | NYR | −0.3 | 912 | 1.6 | 89.5% | 93.8% |
| 37 | Pyotr KochetkovCAR | CAR | −0.3 | 1,129 | 1.4 | 85.4% | 94.1% |
| 38 | Alexandar GeorgievCOL | COL | −0.4 | 1,952 | 1.1 | 81.9% | 94.2% |
| 39 | Philipp GrubauerSEA | SEA | −0.4 | 1,076 | 1.5 | 82.2% | 95.3% |
| 40 | Jake OettingerDAL | DAL | −0.4 | 1,669 | 1.2 | 79.8% | 93.9% |
| 41 | John GibsonANA | ANA | −0.4 | 1,468 | 1.3 | 83.2% | 89.2% |
| 42 | Carter HartPHI | PHI | −0.6 | 820 | 1.7 | 84.2% | 92.7% |
| 43 | Joonas KorpisaloOTT | OTT | −0.6 | 1,733 | 1.2 | 88.2% | 89.2% |
| 44 | Joseph WollTOR | TOR | −0.6 | 839 | 1.7 | 79.5% | 90.8% |
| 45 | Mackenzie BlackwoodSJS | SJS | −0.6 | 1,523 | 1.2 | 87.2% | 92.7% |
| 46 | Darcy KuemperWSH | WSH | −0.7 | 1,078 | 1.5 | 83.5% | 90.4% |
| 47 | Elvis MerzlikinsCBJ | CBJ | −0.7 | 1,410 | 1.3 | 87.6% | 90.6% |
| 48 | Samuel ErssonPHI | PHI | −0.7 | 1,376 | 1.3 | 87.6% | 92.9% |
| 49 | Karel VejmelkaARI | ARI | −0.7 | 1,198 | 1.4 | 80.5% | 95.3% |
| 50 | Andrei VasilevskiyTBL | TBL | −0.7 | 1,653 | 1.2 | 82.3% | 94.5% |
| 51 | Filip GustavssonMIN | MIN | −0.9 | 1,353 | 1.3 | 83.3% | 93.3% |
| 52 | James ReimerDET | DET | −0.9 | 806 | 1.7 | 80.8% | 91.1% |
| 53 | Vitek VanecekNJD | NJD | −1.0 | 958 | 1.6 | 72.0% | 96.5% |
| 54 | Anton ForsbergOTT | OTT | −1.4 | 841 | 1.8 | 85.1% | 96.7% |
| 55 | Jonas JohanssonTBL | TBL | −1.5 | 815 | 1.8 | 90.4% | 90.1% |
| 56 | Arvid SoderblomCHI | CHI | −1.8 | 1,107 | 1.6 | 84.8% | 87.6% |
Minimum sample: 738 shots (it scales with games played and sequence coverage). 42 below the minimum are hidden.
How to read it
Percentage points above expected. +1.0 means about one extra save per 100 unblocked shots compared with an average goalie facing the same mix.
How reliable is it?
Per-class splits are small samples; the overall adjustment is steadier. Use the ± interval: two goalies whose intervals overlap are not reliably different.
Shot classes and goalie splits →