Calculate hockey or soccer goalie save percentage from shots and goals. Track performance with GSAA, shutout rate, and historical benchmarks.
Save Percentage (SV%) is the single most important statistic for evaluating goaltending performance in hockey and soccer. It measures the proportion of shots a goalie stops, providing a workload-independent assessment of goaltending ability. Unlike GAA, which is influenced by the defensive quality of the team in front of the goalie, save percentage purely measures how well the goalie stops what comes at them. That makes it a cleaner individual measure when comparing goalies across different teams.
In the NHL, league-average save percentage has hovered around .907-.912 in recent years. Elite goalies consistently post .920+ over a full season, while anything below .900 indicates poor performance. In soccer, save percentages are typically higher (around .700-.750 for top leagues) because shots are less frequent and more selective.
This calculator computes save percentage for both hockey and soccer, provides Goals Saved Above Average (GSAA) analysis, tracks shot quality context, and includes era-appropriate benchmarks for meaningful comparisons. Check the example with realistic values before reporting.
Save percentage is the gold standard for goalie evaluation—it measures individual performance independent of team defense and shot volume. It is most useful when you want to compare goalies on a like-for-like basis instead of relying on goals-against totals alone, especially when one team allows far more shots than another.
Save % = (Shots Against - Goals Against) / Shots Against = Saves / Shots Against. GSAA = (League SV% - Player SV%) × Shots Against (negative means more goals saved). Saves = SA - GA.
Result: SV% = .916
A goalie facing 1800 shots and allowing 152 goals: SV% = (1800-152)/1800 = .916. Making 1648 saves on 1800 shots. GSAA = (0.907 - 0.916) × 1800 = +16.2 goals saved above average.
Goals Saved Above Average (GSAA) is the most complete traditional goalie metric because it combines save percentage with workload. Formula: GSAA = (League SV% × SA) - GA. A goalie with .920 SV% facing 2000 shots has GSAA = (0.907 × 2000) - 1840 = 1814 - 1840... wait, that's Saves above average: GSAA = Saves - (League SV% × SA). So: 1840 saves - (0.907 × 2000 = 1814) = +26 GSAA. This goalie prevented 26 more goals than average.
NHL SV% has trended differently across eras. 1980s: .875-.885 (high scoring). 1990s: .895-.905 (improving technique). 2000s Dead Puck: .910-.918 (peak goaltending). 2010s-2020s: .907-.912 (post-lockout rules). Always compare goalies within their era. A .910 in 1985 was elite; in 2023 it's average.
Modern analytics use expected goals (xG) models that account for shot location, shot type, game situation, and pre-shot movement. Goals Saved Above Expected (GSAx) is the next evolution beyond GSAA, measuring how many goals a goalie saves relative to what the xG model predicts. This removes the bias of shot quality that affects raw SV%.
In the NHL: .925+ is elite (top 5), .915-.925 is above average, .905-.915 is average, and below .900 is poor. League average is approximately .907.
In top soccer leagues, .730+ is excellent, .700-.730 is above average, .670-.700 is average. Save percentages are higher than hockey because shots are more selective.
Goals Saved Above Average (GSAA) tells you how many goals the goalie saved compared to a league-average goalie facing the same shots. A GSAA of +20 means 20 fewer goals allowed than average. It combines SV% and workload into one number.
Research shows SV% needs approximately 1,000-1,500 shots (roughly 40-50 NHL games) to stabilize. Early-season hot or cold streaks are often noise.
A goalie on a bad defensive team faces more shots. Even with a .920 SV%, facing 35 shots/game produces a 2.80 GAA, while .910 on 25 shots/game gives 2.25 GAA. SV% is the better individual measure.
Yes, significantly. A goalie facing mostly perimeter shots will have a higher SV% than one facing many cross-ice passes and breakaways. Expected goals models (xG) adjust for this.