2026–27 · 13-category
Top-250 skaters-plus-goalies board, ranked by value over replacement across 13 categories.
TOTAL is a weighted sum of per-category z-scores. Defaults: every category 1.0× except +/− at 0.5× — plus/minus is the least repeatable category season to season, so it counts for half. Sliders run 0–2 and re-rank the board live; CSV exports use the current weights.
Preseason is frozen. It uses only information available before the season — cutoff September 24, 2026 (draft day). No 2026-27 regular-season game is in it, and it will never change: it is the clean baseline the model gets graded against at season’s end. ROS blends the preseason line with 2026-27 actuals to date: ROS = (preseason × W + actual × games) / (W + games), with W = 25 for counting categories and W = 35 for rates (ATOI, GAA, SV%), so a hot week moves a line only a little. Before any games are played the two sets are identical by construction.
Every category is z-scored within its pool — skaters against skaters, goalies against goalies — and TOTAL is the weighted sum (GAA inverted: lower is better). Counting categories are scored as per-game rate × expected games (skaters) or expected starts (goalies); ATOI, GAA and SV% are scored as rates. VOR is TOTAL above replacement level: the 185th skater (14 teams × 13 skater slots + 3) and the 45th goalie. One combined board ranks all 250 rosterable players by VOR.
Per-game projections for the nine skater categories. Our baseline is built first — historical rates, the durability model for games played (a five-season-style availability read, full-time vs. misses-time, adjusted for age, clamped to 20–82), and the three model factors below — and only then cross-checked against independent preseason estimates. The factors use only what was knowable in September 2026: ages, draft history, and projected depth charts (lines and power-play units) published before the season.
Skater scoring rates follow the established hockey aging shape: strong growth at 18–21 (up to roughly +14% a year on G, A and SOG per game), moderate growth at 22–23, a peak plateau at 24–28, gentle decline at 29–31, and steeper decline from 32 on. Hits and blocks take the same curve at 40% strength — physical categories age more slowly than scoring. Players drafted in the top 10 overall in the last four drafts get their early growth steepened by 40% — high draft capital breaks out harder — subject to the caps below and the headroom gate.
Age alone no longer grants growth. On the growth side of the curve (under 24), the age multiplier is scaled by a headroom factor between 0 and 1, computed from the player’s pre-factor baseline. The factor is full (1.0) when projected deployment is sub-elite — average ice time at or below about 19 minutes — or when a documented role jump (the breakout list in the adjustments panel) supplies the growth path. It fades linearly toward 0 as projected ice time approaches 21.5 minutes when baseline production is already elite for the position (about a point per game for a forward, 0.65 points per game for a defenceman): a player already skating elite minutes at an elite rate has no opportunity lever left to pull, and per-minute efficiency is never aged up on its own — age-driven growth has to arrive through ice time, role or deployment. Production below the elite bar keeps partial credit (up to half the curve), because the baseline is not yet at the player’s demonstrated ceiling. The decline side of the curve is not gated — veterans age exactly as before.
Mould-breaker provision: a young player who was drafted in the top three overall and produced at an elite level before age 21 (point-per-game or better for a forward, 0.65+ points per game for a defenceman) keeps a floor of 0.35 on the headroom factor instead of fading to 0. Generational talents are the ones who break headroom models, so they keep a modest growth allowance — well under the full curve, but not zero. In this build the qualifiers are Macklin Celebrini and Connor Bedard, both at the 0.35 floor. Matthew Schaefer also qualifies, and his allowance is applied at the upper end (0.80): a 19-year-old defenceman’s baseline is itself a projection step above his demonstrated level, defencemen mature later, and the gate is meant to trim his excess rather than erase it.
From projected September depth charts for all 32 teams we compute a linemate quality index for every skater: the projected per-game scoring (G+A) of his most common even-strength linemates, relative to the league-wide average. Assist rates move with it (bounded at −6% / +7%) and special-teams points at a slightly smaller bound; defencemen are indexed off the forward lines they play behind, at reduced strength. Power-play assignment maps directly: PP1 adds 5% to STP and 2% to SOG, PP2 adds 2% / 1%, and a player our chart projects with no power-play role has 4% trimmed from STP where his baseline priced one in.
The new factors are deliberately fenced in. No single factor moves any category rate by more than ±15%; breakout / role bumps (below) cap at +20% on the affected rates; and the combined effect of all factors on a player’s TOTAL may not exceed ±25% — where a stack of factors would break that bound it is scaled back to it, and the case is noted in the adjustments panel rather than clipped silently.
The cross-check applies only to what is left after our baseline. Each significant divergence from the reference is classified before anything is averaged: deployment-driven cases (their line or PP assumption differs from ours) are resolved on the depth chart itself — the better-supported assignment wins outright and its number stands, because averaging two deployment views would count deployment twice; pure rate disagreements follow the standing rule — our number stands with a documented reason, or we move 65% of the way toward the reference. The adjustments panel tags the significant cases from this pass as deployment-resolved or rate-adjusted.
Goalies are modeled in-house from their last three seasons (recency-weighted 3-2-1): workload gives expected starts, win and shutout rates come from that history (win rate carries team quality), and GAA / SV% are regressed toward league average in proportion to career workload, so a 30-start flash doesn’t outrank a proven starter on rate alone. The goalie age curve applies to production, not just durability: SV% (mirrored into GAA) improves slightly through the mid-20s, holds to about 31, then declines year by year — roughly −0.003 SV% by age 38, with the very youngest starters nudged up. Goalie lines carry an estimate tag — they are modeled, not cross-checked.
Every input below is preseason-pure (September 2026 depth charts, ages, draft history). Bumps are the raw role adjustment; each was then combined with the player’s age, linemate and PP factors and scaled so the player’s TOTAL moved no more than the ±25% combined cap — that cap trimmed the stack on every player listed here.
Growth-side age multipliers only; the decline side is untouched, and players with a documented role jump (the breakout list above) keep the full factor — their growth path is the role itself. Board ranks are preseason, before the pass → after.
Fallers are the gated young players themselves. Risers are unchanged lines moving up into vacated spots — the gate only trims, it adds nothing to anyone.