Guide
Hockey Stats Glossary: Corsi, PDO, PPG, and More
A plain-English glossary of the hockey stats you actually need to read modern coverage — from basic counting stats (goals, assists, PPG) to advanced shot-share metrics (Corsi, Fenwick, xG, PDO) and how analysts actually use them.
NHL coverage has changed a lot in the last fifteen years. Beat writers, podcast hosts, and front-office staff all talk about Corsi, expected goals, PDO, and zone starts as if they were as obvious as goals and assists. They're not — but they're not actually that hard either. This glossary walks through the stats you'll see in modern hockey writing, what they measure, and how analysts actually use them.
Each entry follows the same structure: short definition → how it's calculated → what it tells you → the usual caveat.
Counting stats
Goals (G)
The number of goals scored. Still the headline.
What it tells you: who finishes. What it misses: how many chances they had to finish. A 20-goal scorer who took 250 shots is different from a 20-goal scorer who took 130 shots.
Assists (A) — primary and secondary
The two players who touched the puck last before a goal-scorer get an assist. The primary assist (the pass to the scorer) is generally weighted more in advanced models than the secondary assist (the pass to the passer), because the secondary is more likely to be incidental.
Points (P) and points per game (PPG)
Points = goals + assists. Points per game is points divided by games played — useful for comparing players who missed time to those who didn't.
PPG is the cleanest top-line measure of offensive production. A point-per-game forward (1.00 PPG) is a top-line player; 0.80–0.99 is a strong second-line scorer; 0.50–0.79 is third-line/middle-six; below 0.50 is bottom-six.
Plus/minus (+/−)
For every even-strength goal scored while you're on the ice, +1. For every even-strength goal allowed, −1. Add up over the season.
Plus/minus is the oldest "advanced" stat in hockey, and it's the one analysts most consistently warn against using alone. A player can have a great game and finish minus; a coasting player on a great line can be deeply plus. It correlates with team quality almost more than individual quality. Read it with skepticism; ignore it for individual evaluation in tight comparisons.
Time-on-ice stats
TOI per game
How many minutes a player averages on the ice per game. The simplest and most underrated stat for context. A 20-minute-a-night defenseman has very different value than a 14-minute-a-night defenseman, even if their counting stats look similar.
Average shift length
How long a player stays on the ice per shift. Most NHL shifts are 35–50 seconds; longer shifts (over 60 seconds) usually mean a player is tired or out of position.
PP TOI and PK TOI
Power-play and penalty-kill ice time. A top-line player with no PP1 minutes is being underutilized; a depth winger with regular PK time is a defensive trust signal.
Shot-attempt stats
This is where "fancy stats" start. The core insight is that possession matters more than the box score reveals: a team that consistently directs more shots at the opposing net than their opponent is controlling play, and that control eventually shows up in the score.
Corsi (CF, CA, CF%)
Corsi is the total count of shot attempts:
- CF (Corsi For) — shot attempts your team took while you were on the ice
- CA (Corsi Against) — shot attempts the other team took
- CF% — CF / (CF + CA), expressed as a percentage
A CF% above 50% means your team out-attempted the opposition while you were on the ice. Over a full season, top-line players tend to land in the 52–58% range; bottom-six players hover near 50%; defensively-deployed shutdown players sometimes finish below 50% but with quality-of-competition context.
Fenwick (FF, FA, FF%)
Same idea as Corsi, but without blocked shots. The reasoning: blocked shots are partly randomness (who happened to be in the lane), so excluding them gives a slightly cleaner read on possession.
In practice Corsi and Fenwick correlate strongly. Modern analysis tends to favor xG over either of them, but Corsi remains the most widely-cited metric in casual coverage because it's intuitive: more shots = more puck control.
Shot-quality stats
Expected goals (xG)
xG estimates how many goals a team or player should have scored based on the quality of their shots, not just the quantity. Models weight each shot by location, type (wrist shot, slap shot, deflection), whether it followed a rebound, whether the shooter was in motion, and so on.
xG is now the most-used advanced stat in NHL front offices and serious analytical coverage. It captures something Corsi misses: a team can attempt 30 shots from the perimeter and an opponent can attempt 18 from the slot, and the opponent is more likely to score despite having "lost" the Corsi battle.
The headline metrics:
- xGF / xGA — expected goals for and against while a player is on the ice
- xGF% — share of expected goals; analogous to CF%
- G − xG (goals minus expected goals) — measures finishing skill or luck
A player with high goals minus xG is either a great finisher or running hot; one with negative G − xG is either snakebit or a poor finisher. Sustained over thousands of shots, the gap is real talent.
High-danger chances (HDCF)
Tracks shot attempts taken from the highest-danger area of the ice — basically the slot. A team that wins the high-danger battle while losing the overall shot battle is usually generating quality, not quantity. HDCF is the shot-quality metric most quoted by hockey-focused beat writers.
Possession context
Zone starts (OZS% and DZS%)
The percentage of a player's shifts that begin with a faceoff in the offensive vs defensive zone. A heavy offensive-zone start (OZS% above 60%) inflates a player's offensive numbers; a defensive-zone start specialist is doing structural defensive work that won't show up in points.
Always check zone starts before drawing conclusions from possession metrics. A fourth-line center starting 70% of his shifts in the defensive zone and finishing with a 47% CF% is doing a great defensive job.
Quality of teammates / quality of competition (QoT / QoC)
QoT measures how good the players on your line are; QoC measures how good the opponents you face are. Top-line forwards face top-line opposition. Bottom-six forwards face bottom-six opposition. Adjusting for QoT and QoC is how you compare players in different roles.
Goaltending stats
Save percentage (SV%)
Saves divided by shots on goal. The simplest goalie stat and still the most-cited.
The challenge with SV% is that it treats all shots equally — a slot one-timer counts the same as a long-range slap shot. That's a problem because shot quality varies wildly from team to team.
Goals-against average (GAA)
Average goals allowed per 60 minutes. Even more team-dependent than SV%. A great goalie on a bad team can have a worse GAA than an average goalie on a good team.
Goals saved above expected (GSAx)
The expected-goals model applied to goaltending. GSAx compares how many goals a goalie did allow to how many an average goalie would have allowed against the same shot quality. Positive numbers mean the goalie outperformed expectations; negative numbers mean he underperformed.
GSAx is the goalie stat modern analysts trust most. It strips out shot-quality variance and isolates the goalie's actual performance.
The "luck" stats
PDO (SV% + SH%)
Add a player's on-ice shooting percentage and their on-ice save percentage. The result is PDO. League average is 1.000 (or 100%).
Why PDO matters: shooting percentage and save percentage are both heavily influenced by luck over small samples. A team running 105 PDO (above-average shooting + above-average goaltending) is probably not sustaining either; the law of large numbers pulls them back to 1.000.
PDO is the first stat analysts check when a player has a hot or cold start to the season. Hot start with PDO at 108? Regression is coming. Cold start with PDO at 92? Better days ahead.
It's not a perfect stat — elite finishers genuinely shoot above average, and elite goalies genuinely save above average — but it's a great first filter.
Special-teams percentages
Power-play percentage (PP%)
Goals scored on the power play divided by power-play opportunities. League average is usually 20–22%. Elite power plays approach 28%; bad ones languish near 15%.
Penalty-kill percentage (PK%)
Percentage of penalties killed (no goal allowed). League average is around 80%. Elite penalty kills approach 85%; bad ones drop to 75%.
PP% and PK% are the cleanest special-teams stats and tell you a lot about coaching staff and personnel.
How analysts actually combine these
No good hockey analyst uses one stat in isolation. The typical player evaluation in 2026 looks more like:
"He's a 0.65 PPG forward with a 53% xGF, starting 48% offensive zones against middle-six competition, with a sustainable 8.5% on-ice shooting percentage and reasonable QoT. He's a legitimate second-line winger."
That sentence uses about eight different stats together. Each stat covers for the weaknesses of the others. PPG tells you offense. xGF% controls for shot quality. Zone starts controls for deployment. On-ice shooting percentage sanity-checks for luck. QoT controls for line quality.
The skill is knowing which stats to weight in which context. That's why hockey analytics is still as much craft as science.
The bottom line
You don't need to memorize every advanced stat to read modern hockey coverage — you need to know what each one roughly measures so you can follow along. PPG for offense. Corsi/Fenwick for possession. xG for shot quality. PDO for luck. Zone starts for context. Quality of competition for comparison.
The era of arguing about plus/minus is over. The era of comparing players using a single stat is over. The era of using a smart bundle of stats — and never trusting any one of them on its own — is the era we're in.
For context on the positions and roles these stats evaluate, see the Hockey Positions guide. For the structural reasons your team's stat lines change so dramatically once a star signs a market deal, see the NHL Salary Cap Explained guide.
Frequently asked questions
What is Corsi in hockey?
Corsi is the total number of shot attempts directed at the net while a player is on the ice — shots on goal, missed shots, and blocked shots, all counted. It measures puck possession indirectly: teams that attempt more shots than their opponent are usually controlling play, and that correlates with winning games.
What's the difference between Corsi and Fenwick?
Corsi counts every shot attempt (on goal + missed + blocked). Fenwick is Corsi minus blocked shots. Analysts use Fenwick when they think blocked shots are too random to include — it isolates the shot attempts that actually had a chance to reach the goalie.
What does PDO mean in hockey?
PDO is shooting percentage plus save percentage while a player or team is on the ice (or for a team over a season). League average is 1.000 (100%). Numbers far above or below 1.000 are usually unsustainable and regress over time — it's a quick way to spot lucky or unlucky stretches.
What is xG (expected goals)?
xG estimates how many goals a team or player 'should have' scored based on the quality of shots they took — accounting for shot location, type, traffic, and other factors. A player who scored more goals than his xG was likely shooting well or getting lucky; one who scored fewer was likely the opposite.
Are advanced stats actually useful?
Yes, but no single number is the answer. Modern analysts combine several stats (xG, Corsi, zone starts, quality of competition) to evaluate players because each one has known limitations. The skill is in knowing what each stat does and doesn't tell you, not in finding a magic number.
More guides
- Hockey Positions Explained
What each of the six hockey positions actually does on the ice — center, wingers, defensemen, and goaltender — plus how lines, defensive pairs, and special-teams units are built around them.
- NHL Entry-Level Contracts (ELC) Explained
Every young player entering the NHL signs an entry-level contract. Here's who needs one, how long it lasts, what the cap-hit ceiling is, and how performance bonuses can swing a team's books.
- NHL Points System: How Standings Work
How NHL teams earn points, why a regulation loss is worth zero but an overtime loss is worth one, the tiebreakers that decide playoff seeding, and what the wild-card race actually means.
- NHL Salary Cap Explained
How the NHL salary cap actually works — the upper limit, the floor, cap hits vs. real dollars, LTIR, retained salary, bonus overages, and the levers teams use to stay compliant year over year.