
Not every shot is equal.
Every shot a goalie faced, scored by how often an average goalie stops that kind of shot from that spot. The rating is the goals he saved beyond that, per 60 minutes.
The board
| # | Goalie | Team | GP | Record | SV% | Saved /60 | Season | Crease | Slot | Mid-range | Point |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Ilya Sorokin | NYI | 3 | 2-1-0 | .965 | +1.87 | +5.5 | .93315 | .91724 | 1.00056 | 1.00020 |
| 2 | Linus Ullmark | OTT | 3 | 3-0-0 | .956 | +1.72 | +4.6 | .95020 | .91323 | 1.00035 | 1.00019 |
| 3 | Jake Oettinger | DAL | 3 | 2-1-0 | .967 | +1.24 | +3.7 | 1.0009 | .91724 | 1.00035 | 1.00014 |
| 4 | Logan Thompson | WSH | 3 | 3-0-0 | .929 | +1.07 | +3.2 | .92914 | .93832 | .93546 | 1.00025 |
| 5 | Igor Shesterkin | NYR | 5 | 3-1-0 | .927 | +1.06 | +4.7 | .96327 | .92339 | .95465 | .96025 |
| 6 | Joseph Woll | PHI | 3 | 0-1-2 | .927 | +0.91 | +2.8 | .94117 | .91323 | .94269 | .96730 |
| 7 | Jeremy Swayman | BOS | 4 | 3-1-0 | .932 | +0.83 | +3.3 | .93832 | .90521 | .96965 | .96025 |
| 8 | Philipp Grubauer | SEA | 3 | 1-1-0 | .917 | +0.77 | +1.8 | .84219 | .95221 | .97337 | .95723 |
| 9 | Jesper Wallstedt | MIN | 4 | 2-1-1 | .927 | +0.73 | +3.0 | .95723 | .93330 | .95465 | .96730 |
| 10 | Stuart Skinner | WPG | 3 | 2-0-1 | .920 | +0.66 | +2.0 | .81021 | .90922 | .98360 | .97439 |
| 11 | Leevi Merilainen | VAN | 3 | 1-0-0 | .940 | +0.65 | +1.2 | 1.0006 | .92313 | .89729 | 1.00018 |
| 12 | Jacob Markstrom | FLA | 3 | 2-0-1 | .927 | +0.64 | +2.0 | .91712 | .94117 | .93832 | 1.00015 |
| 13 | Anthony Stolarz | TOR | 2 | 2-0-0 | .904 | +0.60 | +1.2 | .80015 | .91712 | .96932 | 1.00017 |
| 14 | Sergei Bobrovsky | TOR | 3 | 0-2-1 | .906 | +0.58 | +1.8 | .85721 | .89328 | .95848 | .96629 |
| 15 | Joel Hofer | STL | 3 | 1-1-1 | .930 | +0.53 | +1.6 | .91712 | .84219 | .97438 | 1.00029 |
| 16 | Joey Daccord | SEA | 3 | 2-1-0 | .911 | +0.44 | +1.2 | .83318 | .88025 | .97947 | 1.00028 |
| 17 | Karel Vejmelka | UTA | 4 | 2-1-0 | .892 | +0.39 | +1.4 | .91712 | .85728 | .92956 | .95723 |
| 18 | Sergei Murashov | PIT | 2 | 0-1-1 | .939 | +0.39 | +0.8 | .91712 | .95221 | .93244 | 1.00017 |
| 19 | Andrei Vasilevskiy | TBL | 3 | 2-1-0 | .900 | +0.33 | +1.0 | 1.0009 | .76517 | .95746 | 1.00019 |
| 20 | Spencer Knight | CHI | 3 | 1-2-0 | .890 | +0.30 | +0.9 | .90521 | .93129 | .89356 | 1.00022 |
| 21 | Juuse Saros | NSH | 4 | 2-1-1 | .915 | +0.28 | +1.1 | .93933 | .86229 | .93880 | 1.00039 |
| 22 | John Gibson | DET | 4 | 1-3-0 | .862 | +0.06 | +0.2 | .75016 | .91724 | .89849 | 1.00021 |
| 23 | Lukas Dostal | ANA | 4 | 3-1-0 | .884 | +0.06 | +0.2 | .81822 | .93330 | .92755 | .96831 |
| 24 | Devon Levi | EDM | 3 | 3-0-0 | .863 | +0.04 | +0.1 | .75020 | .95221 | .89739 | 1.00017 |
| 25 | Arvid Soderblom | CHI | 2 | 0-2-0 | .820 | +0.02 | +0.0 | .71414 | .92914 | .86730 | 1.00016 |
| 26 | Yaroslav Askarov | SJS | 3 | 2-1-0 | .862 | -0.09 | -0.3 | .82623 | .90331 | .91458 | 1.00022 |
| 27 | Carter Hart | VGK | 3 | 2-1-0 | .890 | -0.28 | -0.8 | .93315 | .83324 | .91435 | 1.00015 |
| 28 | Jake Allen | NJD | 2 | 1-1-0 | .875 | -0.30 | -0.6 | .76913 | .92313 | .90632 | 1.00010 |
| 29 | Adin Hill | VGK | 2 | 2-0-0 | .886 | -0.30 | -0.6 | .8005 | .72711 | .97236 | 1.0008 |
| 30 | Jet Greaves | CBJ | 2 | 1-1-0 | .877 | -0.45 | -0.9 | 1.0008 | .91712 | .89538 | .94719 |
| 31 | Mackenzie Blackwood | COL | 3 | 2-1-0 | .895 | -0.45 | -1.3 | .91712 | .88927 | .92942 | .95824 |
| 32 | Clay Stevenson | WPG | 2 | 1-1-0 | .872 | -0.57 | -1.1 | .84613 | .84219 | 1.00017 | .92914 |
| 33 | Dan Vladar | PHI | 2 | 0-2-0 | .863 | -0.63 | -1.2 | .84219 | .81527 | .93129 | 1.00019 |
| 34 | Brandon Bussi | CAR | 3 | 1-1-1 | .851 | -0.65 | -2.0 | .80010 | .91323 | .85728 | .88217 |
| 35 | Arturs Silovs | PIT | 3 | 2-1-0 | .859 | -0.75 | -2.2 | 1.00015 | .73719 | .90251 | 1.00027 |
| 36 | Jakub Dobes | MTL | 3 | 1-1-1 | .856 | -1.06 | -3.1 | .78323 | .81822 | .90743 | 1.00019 |
| 37 | Darcy Kuemper | LAK | 2 | 0-2-0 | .831 | -1.09 | -2.1 | .91712 | .78614 | .81232 | 1.00012 |
| 38 | Ukko-Pekka Luukkonen | BUF | 3 | 1-2-0 | .782 | -1.13 | -3.4 | .80010 | .62524 | 1.00033 | .92313 |
| 39 | Kevin Lankinen | VAN | 4 | 1-3-0 | .796 | -2.26 | -7.0 | .73126 | .81833 | .90452 | .90922 |
| 40 | Devin Cooley | CGY | 2 | 0-2-0 | .818 | -2.36 | -4.7 | .81811 | .91724 | .88526 | .84219 |
| 41 | Dustin Wolf | CGY | 2 | 0-2-0 | .797 | -2.73 | -5.5 | .72711 | .78323 | .90030 | .94719 |
SV% is the NHL's official number. Saved /60 = goals saved against an average goalie on the same shots, per 60 minutes played; Season = the total. Zone columns: his save rate on every unblocked attempt from that area, green above an average goalie on those same shots, red below, with the number of attempts beside it. Crease = within 10 ft; slot = within 30 ft and 40° of the middle; point = 45 ft+ and central.
How it's built
Goals saved, shot by shot
Save percentage treats a point shot and a backdoor tap-in the same. This doesn't. The board is ranked on goals saved per 60 minutes, and the zone columns show where each goalie is winning or losing it. Model goalie-impact-v1, rebuilt every morning from the NHL's play-by-play.
- Shot difficulty
- Every unblocked attempt gets the chance an average goalie lets it in, from where and how it was taken: distance, angle, shot type, rebound, rush, strength.
- Goals saved
- That expected total minus the goals he actually allowed, per 60 minutes so a goalie who's played more isn't ahead for it.
- Our weighting
- Shots he can do least about count less: deflections and rebounds 50%, penalty-kill shots 30%.
- How sure
- Goalie numbers are the noisiest in hockey (split-half reliability 0.22). It takes about 3,100 weighted attempts before half of this number is skill, so early-season ranks say who has been good, not yet who is good.