← Methodology

Peer value

A player's value ranked within their own role, not against the entire league - a fairer read for depth players who will never out-GAR a franchise center.

Why role-relative

Ranking every skater on one list buries a shutdown third-pair defenseman beneath a first-line scorer, even when the defenseman is excellent at his job. A depth forward will never out-produce a franchise center, and holding him to that bar tells you nothing about how well he plays his actual role. Peer value fixes the comparison: each player is ranked and percentile-scored only against others in the same season who play the same role. The result answers a cleaner question - not 'is this the best player in the league?' but 'is this the best player at this job?'

How the peer group is drawn

A peer group is a position group crossed with a usage tier, cut fresh each season. Skaters are split into forwards and defensemen, then into thirds by season-long ice time within that position: Top-6, Middle-6, and Bottom-6 forwards, and Top-4, Pairing, and Third-pair defensemen. Goalies split into Starters and Backups by workload. That yields eight self-contained cohorts, each ranked from best to worst on its own scale. Within a cohort, skaters are ordered by their per-season all-in-one value (GAR) and goalies by their shot-quality-adjusted goaltending (GSAx), and the percentile runs 0 to 100 with 100 the best in the group.

A copy-accuracy note we owe you: the usage tiers are cut by a player's total ice time across all situations, not even-strength ice time specifically. The distinction rarely reorders anyone - power-play and penalty-kill minutes track total workload closely - but it is the honest description of what the build actually does.

How it stays honest

Two guardrails do the work. First, an eligibility gate: only players with at least 20 games in a season (20 starts for goalies) are ranked, so a hot handful of games can't manufacture a peer-group crown. Second, every cohort is genuinely self-contained - a player's rank runs 1 through N inside their own tier and nowhere else, and the reported group size is exactly the number of players ranked against them. There is no bleed between tiers and no cross-season leakage: the comparison set is fixed to same-season, same-role peers before anyone is scored.

What the cohorts actually look like

Because this is a ranking rather than a prediction, its integrity is a matter of sampling discipline, so it's worth showing exactly how the cohorts sit. Across the 2020-21 through 2024-25 seasons the tier sizes are stable and sensible - roughly 150-plus qualified forwards, about 80 defensemen, and two-to-three dozen goalies per tier per season - and the eligibility gate holds with zero exceptions.

CohortTypical size per tier, per seasonRanked on
Forwards (Top-6 / Middle-6 / Bottom-6)~154 (range 143-161)Per-season GAR
Defensemen (Top-4 / Pairing / 3rd-pair)~79 (range 71-84)Per-season GAR
Goalies (Starter / Backup)~26-27 (range 15-31)Per-season GSAx

As a concrete example, in 2023-24 each of the three forward tiers held exactly 156 players, each defense tier held 84, and there were 31 Starters and 31 Backups - and within every one of those tiers the rank ran cleanly from 1 to the tier's size, with no player slipping the 20-game floor.

The honest limit: peer value is a descriptive, within-role ranking, not a forecast, so there is no out-of-sample correlation, log-loss, or hit-rate to validate and we invent none. Its trustworthiness rests entirely on the sampling discipline above - the eligibility gate and the clean cohort definition - rather than on predictive accuracy. Two scope notes: the skater ranking begins in 2020-21 (the season even-strength value attribution starts), while goalie cohorts, needing only shot coordinates, reach back to 2009-10; and goalie value is intrinsically noisier than skater value, so read a backup's peer rank more loosely than a top-six forward's.

Validation figures reflect the data through 2025-26 and are recomputed each season. Head-to-head benchmark tests (log-loss, AUC, bootstrap intervals) are dated snapshots of a specific held-out season, labeled where they appear.