League Movers 2024–25 → 2025–26 · common-scale delta
Team Archetypes
Glossary
Dimensions, metrics, and concepts used in this visualization
The 7 Dimensions
PossessionCorsi% · All-sit
Measures shot attempt share — the percentage of all shot attempts (on net, missed, and blocked) taken by the team while both teams are at even strength. Also known as Corsi%. A value above 50% means the team controls the puck more than its opponents. Source: NHL API /realtimesatPct.
TransitionTakeaways / GP
Counts takeaways per game — how often a team's players strip or intercept the puck from opponents. Higher values indicate a more aggressive, puck-hunting forecheck and defensive zone presence. Source: NHL API /realtimetakeaways.
FinishingShooting % · All-sit
Goals scored divided by shots on goal. Reflects a team's ability to convert chances into goals. Influenced by shooter skill, shot quality, and goaltending faced. Sustained outliers regress toward the league mean (~10.5%). Source: NHL API /summary.
PhysicalHits + Blocks / GP
A weighted blend of hits per game (60%) and blocked shots per game (40%). Captures two distinct physical identities: body contact aggression and defensive shot-suppression willingness. Source: NHL API /realtime.
DisciplinePIM/GP · Giveaways/GP
A blended measure of decision-making under pressure. Combines penalty minutes per game (70%) and giveaways per game (30%), both inverted — lower is better. A disciplined team stays out of the box and protects the puck. Source: NHL API /penalties and /realtime.
GoaltendingSV% · ENG-adjusted
Save percentage derived from goals against and shots against, with empty net goals stripped out before calculation. Empty net goals inflate a team's GA without reflecting goalie performance, so removing them produces a cleaner read on true netminder quality. Source: NHL API /summary + /realtimeemptyNetGoals.
DefensiveShots Against / GP
Shots on goal allowed per game, inverted so that lower SA/GP scores higher. Reflects how well a team's defensive structure limits quality looks — independent of whether those shots go in. Distinct from goaltending, which measures what happens after shots are allowed. Source: NHL API /summary.
Scores & Rankings
Score (0–100)Normalized
Each raw metric is min-max normalized to a 0–1 scale (shown as 0–100 in the UI) relative to the league range that season. A score of 100 means the best team in the league on that dimension; 0 means the worst. Scores are not comparable across seasons without the delta view.
Rank #N/321 = best
Each team's ordinal position among all 32 teams for a given dimension. Rank #1 is the league leader; #32 is last. Ties are broken by the raw metric value.
Process RankDerived
The team's overall rank when all 7 dimension ranks are averaged and re-ranked against the other 31 teams. This produces a single 1–32 "process quality" number on the same scale as standings, enabling a direct comparison.
Process vs. Results
Standings RankPoints · Regular season
The team's position in the overall NHL standings by points at the time the data was last fetched. Ties use the NHL's standard tiebreaker rules (regulation wins, then OT wins).
OverperformingGreen badge
Standings rank is better (lower number) than Process Rank by more than 3 spots. The team is getting more wins than their underlying metrics would predict — often a sign of strong goaltending, clutch performance, or good fortune in close games. Regression risk.
UnderperformingOrange badge
Standings rank is worse (higher number) than Process Rank by more than 3 spots. The team's underlying metrics are better than their point total suggests — often caused by poor shooting luck, goaltending variance, or bad timing on penalties. Positive regression candidate.
Delta View (Δ)
Delta (Δ)Year-over-year
Shows the change in normalized scores between 2024–25 and 2025–26 for each dimension. The dashed polygon is the prior season; the solid polygon is the current season. Green arrows (↑) indicate improvement; red arrows (↓) indicate decline. Values are shown as prior → current in the stat panel.
Since Last Update
↑ / ↓ chipIntra-season
Small green/red chips on each stat card show how a team's normalized score changed since the previous data pull (stored in prev_scores inside the JSON). This reflects short-term movement within the current season — useful for spotting teams on a run or a slide.