Glossary · Goalie stat

Expected Save Percentage in Hockey (xSV%)

Expected save percentage (xSV%) is the save percentage an average goalie would post on the exact shots a goalie faced, built from expected goals. Subtract it from his real save percentage and you get delta save percentage (dSV%), the share of shots he stopped beyond what the shot quality called for. It's goals saved above expected written as a rate.

Expected save percentage in hockey answers the question raw save percentage skips, which is how hard the shots were. Cam Talbot faced one of the gentlest shot mixes in the league last season and still finished near the bottom of it.

AbbreviationxSV%xFSv% when it's figured on unblocked attempts
Formula1 − xGA/FAexpected goals over unblocked attempts faced
DeltadSV%real save percentage minus expected
League xFSv%.950every unblocked attempt, 2025-26
Gentlest mix.956Jesper Wallstedt, MIN (30+ GP)
Toughest mix.940Frederik Andersen, CAR (30+ GP)
Red Wings, dFSv%+0.36John Gibson, in points; Cam Talbot −0.76
Earliest form2004Alan Ryder's shot-quality-neutral SV%

Where xSV% comes from

Expected save percentage is the oldest form of the goalie-versus-shot-quality idea. Alan Ryder's 2004 paper Shot Quality estimated how dangerous each team's shots against were, then backed out a shot-quality-neutral save percentage, which he described as "the save percentage one would expect with no variation in shot quality from team to team." His 2002-03 table lifted Florida's goaltending (basically Roberto Luongo, Ryder noted) seven places, into second in the league.

Brian Macdonald, Craig Lennon and Rodney Sturdivant gave it the modern formula in 2012, one minus expected goals against divided by shots against, and paired it with an adjusted save percentage, the league average plus the gap between a goalie's real and expected rates. Tim Thomas posted .940 in 2010-11 on shots that called for .915. They found some evidence that the adjusted number predicted a goalie's future better than plain save percentage did, and called it "far from overwhelming."

Evolving-Hockey publishes today's version as expected Fenwick save percentage (xFSv%), figured on unblocked attempts, next to the delta it calls dFSv%, and MoneyPuck's glossary defines both an expected save percentage and a "Save % Above Expected." NHL.com's Seattle Kraken analytics column walked fans through the delta in 2021.

How xSV% is calculated

Every version divides expected goals against by a count of shots, and the count you pick sets the scale. Public expected-goals models price unblocked attempts, misses included, so the cleanest version divides by those. Here's what goes in:

  • Expected goals against (xGA), the summed xG of every unblocked attempt the goalie faced
  • Unblocked attempts against (FA), or shots on goal against (SA) for the box-score scale
  • Goals against, for his real save percentage on the same scale
ExpectedxFSv% = 1 − xGA ÷ FA
RealFSv% = 1 − GA ÷ FA
DeltadFSv% = FSv% − xFSv% = GSAx ÷ FA
Box-score scalexSV% = 1 − xGA ÷ SA (Macdonald, Lennon and Sturdivant, 2012)

Here's a worked example, with invented round numbers. A goalie faces 2,000 unblocked attempts worth 100 expected goals, so his xFSv% is .950. He allows 90. That's a .955 Fenwick save percentage and a dFSv% of plus-0.5 points, which is the same 10 goals as his GSAx spread across 2,000 attempts.

Misses count as stops in the Fenwick version, which is why these numbers sit near .950 when box-score save percentages sit near .900. League-wide, the expected and real Fenwick rates came out almost identical last season (.9495 and .9500), so the average goalie stopped about what the model said he would.

xFSv%
Evolving-Hockey's expected Fenwick save percentage, on unblocked attempts.
dFSv%, dSV%
Real minus expected. Positive means the goalie stopped more than his shots called for.
Save % above expected
MoneyPuck's name for the same delta ("Save % Above Expected").
Adjusted SV%
League save percentage plus a goalie's delta, the version Macdonald, Lennon and Sturdivant used.
GSAx
The delta counted in goals.

What xSV% tells you

xSV% measures the shots, and dSV% measures the goalie. A high xFSv% means a gentle shot mix, the kind a tight defense hands its goalie, and a low one means he's seeing chances from in close. Among the 51 goalies who played at least 30 games last season, Jesper Wallstedt's .9559 in Minnesota was the gentlest mix and Frederik Andersen's .9402 in Carolina the toughest. The list sorts by team. Minnesota's two goalies had the two gentlest mixes, Seattle's two were third and fourth, and Carolina's two were the two toughest.

Detroit's goalies saw similar work. Talbot's xFSv% was .9534, the sixth-gentlest mix among the regulars, and John Gibson's was .9516. The results split from there. Gibson's dFSv% was plus-0.36 points and Talbot's was minus-0.76, ahead of only Samuel Ersson and Jordan Binnington. On the box-score scale, the shots Talbot faced called for about a .900 save percentage and he posted .883.

The spread in dFSv% is narrow (Scott Wedgewood led at plus-1.00, Binnington trailed at minus-1.10 and the median regular sat at plus-0.17), so the league's regulars fit inside about two percentage points of unblocked attempts and a gap of a few tenths separates a good season from an ordinary one.

Does either half carry over? Among the 39 goalies with 1,500 or more minutes in both of the last two seasons, the year-to-year correlation was 0.21 for dFSv% and 0.04 for xFSv%, and the shot-mix number didn't hold up any better for the 31 who stayed on the same team. You'd think a defense's shot mix would be stable. Talbot's was .9477 the season before last and .9534 last season, in front of the same club.

How analysts use xSV%

Separating defense from goaltending

Raw save percentage mixes the two, and xSV% pulls them apart. Wallstedt's .916 was the second-best save percentage among the regulars, but how much of it was Wallstedt? His shot mix was the gentlest in the league, and his dFSv% of plus-0.29 ranked 22nd of the 51. Minnesota's defense earned a share of that save percentage. The goalie earned the rest.

Comparing goalies with different workloads

dFSv% is GSAx per shot, so it lets a backup's season sit next to a starter's. Devin Cooley's plus-0.98 in Calgary was second only to Wedgewood's, on 1,758 unblocked attempts, while Logan Thompson's plus-0.85 came on 3,461 and made him the league leader in GSAx. Use the rate when you want to know how well a goalie played and the total when you want to know what it was worth.

What xSV% can't tell you

It inherits the model's blind spots

Expected save percentage is only as good as the expected goals behind it, and the public models don't see pre-shot passes, screens or where the goalie was standing. A goalie who faces a steady diet of cross-crease feeds gets those shots priced like any others from the same spots.

The denominator changes the number

Divide by unblocked attempts and the league sits near .950. Divide by shots on goal and it sits near .895. Both scales are legitimate, and mixing them isn't, so check which one a site uses before you compare goalies across sources.

Small gaps, lots of noise

A full season's dFSv% leaderboard spans about two percentage points, and a year-to-year correlation of 0.21 means most of any one goalie's gap doesn't repeat. Talbot's own delta was plus-0.47 the season before he posted minus-0.76.

The expected side isn't pure defense

Rebounds a goalie gives up become new shots against him and pull his own xSV% down, so part of what looks like a tough shot mix can be his own doing. MoneyPuck's flurry-adjusted expected goals, which give less credit for rebound chances than for first shots, are one way around it.

Sources

  1. Shot Quality, Alan Ryder, HockeyAnalytics.com, January 2004. shot-quality-neutral save percentage, Florida's 2002-03 move
  2. Evaluating NHL Goalies, Skaters, and Teams Using Weighted Shots, Brian Macdonald, Craig Lennon and Rodney Sturdivant, arXiv 1205.1746, May 2012. ExpSv% = 1 − ExpGA/ShotA, adjusted save percentage, Thomas's 2010-11 figures, "far from overwhelming"
  3. Standard Goalie Tables, Evolving-Hockey. FSv%, xFSv%, dFSv% formulas
  4. Glossary, MoneyPuck. expected save percentage, save % above expected
  5. Analytics with Alison: Sizing up Goaltending, NHL.com (Seattle Kraken), October 28, 2021. dFSv% explained for fans
  6. Expected Goals Model, MoneyPuck. model inputs; no goalie positioning or screens listed
  7. 2025-26 and 2024-25 regular-season goalie files, MoneyPuck data. every league and goalie figure on this page
  8. Goalie summary, 2025-26 regular season, NHL stats API. box-score save percentages

Figures are Wes & Woodward's calculations from MoneyPuck's 2025-26 regular-season goalie file, all situations, downloaded October 9, 2026 (raw/mp_goalies_2025.csv): xFSv% is 1 − xGoals ÷ unblocked_shot_attempts, FSv% is 1 − goals ÷ unblocked_shot_attempts, dFSv% is their difference in percentage points, and the box-score scale uses 1 − xGoals ÷ ongoal. League rates sum every goalie (7,646.4 expected goals and 7,575 goals on 151,555 unblocked attempts). Rankings use the 51 goalies with 30+ games played. Year-to-year correlations (Pearson) use the 39 goalies with 1,500+ minutes in both 2024-25 and 2025-26 (31 with the same team both years), with 2024-25 from MoneyPuck's goalie file downloaded the same day (raw/mp_goalies_2024_for_gsax_repeatability_dl2026-10-09.csv). Box-score save percentages for Wallstedt and Talbot come from the NHL stats API goalie summary (raw/nhl_goalie_summary_20252026_gsaa_xsv.json).

Last reviewed October 9, 2026.