Methodology
Hockey stat glossary
Every stat used on Edgehalla, in a sentence or two. "For" means the player's team, "against" means the opponent, and on-ice stats count events while the player was on the ice. Where a table header on the site has a dotted underline, hover or tab to it to see the same definition.
Shot attempts
- Corsi forCF#
Shot attempts by a team (or with a player on the ice): goals, shots on goal, missed shots and blocked shots.
Excludes the shootout and penalty shots. An attempt blocked by the shooter's own teammate still counts for the shooting team (the NHL's SAT credits it to the other team).
CF = goals + shots on goal + missed shots + blocked shots- Corsi againstCA#
Shot attempts by the opponent while the team or player is on the ice.
- Corsi for percentageCF%#
Share of all shot attempts that went in your favour.
CF% = CF / (CF + CA)- Fenwick forFF#
Unblocked shot attempts: goals, shots on goal and missed shots. xG is summed over these.
FF = goals + shots on goal + missed shots- Fenwick for percentageFF%#
Share of unblocked attempts that went in your favour.
FF% = FF / (FF + FA)- Shots forSF#
Shots on goal plus goals.
- Individual shot attemptsiCF#
A player's own shot attempts, including those that were blocked.
Shot quality and chances
- Expected goalsxG#
The probability that an unblocked shot becomes a goal, from our model of distance, angle, shot type and the play before it. Summed over shots.
Blocked shots get no xG because their recorded location is where the block happened. Penalty shots use a constant rate and the shootout is excluded.
- Expected goals forxGF#
Total xG of a team's unblocked attempts, or of its attempts while a player was on the ice.
xGF = Σ xG over unblocked attempts for- Expected goals againstxGA#
Total xG of the opponent's unblocked attempts while the team or player was on the ice.
- Expected goals for percentagexGF%#
Share of expected goals in your favour. On-ice 5v5 xGF% has a split-half r of about 0.29 at 7 xG per half.
xGF% = xGF / (xGF + xGA)- Individual expected goalsixG#
Sum of xG on a player's own unblocked attempts. Always raw xG, never sequence-adjusted.
- Sequence xGsxG#
xG adjusted for flurries: a rebound only counts for the chance that the earlier shots in the same play did not already score.
sxG_i = xG_i × Π (1 − xG_j) over earlier same-team shots in the play- Scoring chancesSC#
Attempts worth 2 or more points under the zone method: 1–3 points for location, +1 for a rush or rebound, −1 if blocked.
- High-danger chances forHDCF#
Scoring chances worth 3 or more points: most attempts from the net-front slot, or rush and rebound attempts from the wider slot.
- Medium-danger chances forMDCF#
Scoring chances worth exactly 2 points.
- Transition attemptTRN#
An attempt within 10 s of a turnover, recovery, hit-forced recovery or faceoff win in the neutral or defensive zone, in the same play.
Replaces NST's rush rule, which flagged only 1.7% of 5v5 attempts in our 2025-26 sample. The transition definition flags 8.1%.
- Rush attempt (NST rule)#
NST's definition: an attempt within 4 s of any event in the shooting team's neutral or defensive zone. Kept as a compatibility column.
- Rebound attempt#
An attempt within 3 s of an earlier same-team attempt, with no stoppage in between.
- Scramble#
Three or more same-team attempts within 6 s. About 1.9 per game; 10.4% end in a goal.
- Shot dietixG/att#
Average xG per individual unblocked attempt: how dangerous a player's typical shot is. One of the most stable traits we measure (split-half r 0.68).
Shot diet = ixG / iFF
Percentages, luck and relative stats
- PDO#
On-ice shooting percentage plus on-ice save percentage. League average is 1.000 (or 100); far from it usually means luck that will fade.
PDO = on-ice SH% + on-ice SV%- Shooting percentageSH%#
Goals divided by shots on goal. On-ice SH% uses every shot while the player was on the ice.
- Relative (on/off)Rel#
A stat with the player on the ice minus the same stat for his team with him off the ice, in the same games and strength state.
Rel xGF% = xGF% on − xGF% off- Goals above expectedG−xG#
Goals minus expected goals. For a shooter, a rough read on finishing; over small samples, mostly luck.
G − ixG- Score and venue adjustedSVA#
Team counts reweighted for score state and home ice (McCurdy method, our own coefficients), because trailing teams shoot more. Individual stats are never adjusted.
- Individual points percentageIPP#
Share of on-ice goals for which the player had a point.
IPP = points / on-ice goals for
Ice time and deployment
- Time on iceTOI#
Ice time from the NHL shift charts, split by strength state (5v5, PP, PK and others).
- Power-play unitPP1#
PP1 is the group of skaters with the most power-play time together in a game; PP2 is the next. Detected from shifts.
- Quality of teammatesQoT#
Ice-time-weighted average season xGF% of a player's teammates, shrunk toward average. Meaningful.
- Quality of competitionQoC#
The same average over opponents. It barely varies between players (0.485–0.514 in our sample), so read it as context only.
- Offensive zone start percentageOZS%#
Of a player's shifts that start on an offensive- or defensive-zone faceoff, the share that start in the offensive zone.
OZS% = OZ starts / (OZ starts + DZ starts)- Per 60/60#
A count scaled to 60 minutes of ice time at the same strength, so players with different ice time compare fairly.
X/60 = X × 3600 / TOI seconds- Shift age#
Seconds since a player's current shift began. Penalties are 3.5 times as common past 90 s as the exposure would predict.
Edgehalla signature stats
- Draw EquityDrEq#
Faceoff results in goals: each win or loss scored against a coin flip and weighted by the zone. 100 extra offensive- or defensive-zone wins are worth about 1.9 goals.
Σ (win − 0.5) × V(zone)- Faceoff percentageFO%#
Faceoffs won divided by faceoffs taken.
FO% = FOW / (FOW + FOL)- Turnover LedgerTO±#
Takeaways credited and giveaways charged at the league xG value of the zone where possession changed, per 60.
- Pressure IndexPI#
A decayed running score of each team's shots, zone wins and forecheck events, from −1 to +1. Descriptive only: it does not predict the next goal.
PI = (P_home − P_away) / (P_home + P_away + 0.05)- Gas Tank#
Fatigue measured through the icing rule: after its own icing a team wins 43.9% of the next defensive-zone draws and allows 29% more xG in the next 20 s.
- Schedule Edge#
Rest, back-to-backs and travel. A team on the second night of a back-to-back against a rested opponent won 38–44% of games from 2021-22 to 2025-26.
- Penalty ValuePenV#
Minor penalties drawn minus taken, times the net xG of a power play (about 0.20 per two-minute minor).
(minors drawn − minors taken) × 0.20- Play DNA#
Our summary glyph of how a goal was built (possessions, passes, entry, shot), drawn from derived tracking numbers.
Goalies
- Goals saved above expectedGSAx#
Expected goals against minus goals allowed, excluding empty-net goals, penalty shots and the shootout. Positive is good.
GSAx = Σ xGA − GA- Save percentageSV%#
Saves divided by shots on goal faced.
- High-danger save percentageHDSV%#
Save percentage on high-danger shots on goal only.
HDSV% = 1 − HDGA / HDSA- Rebound Control#
Rebounds allowed per save: an opponent attempt within 3 s of a save. League rate 12.4%; split-half r 0.39–0.48.