Producer: skill_aging.py → skill_aging_curves.csv + skill_aging.png. Method: the adopted age_curve_relwpa.py estimator, applied per skill — per-player per-season rates, within-player season-over-season deltas pooled by age transition (harmonic exposure weights as the survivorship guard), ≥15 transitions per age step, 0.25/0.5/0.25 smoothing, cumulated from the youngest anchor. Ages 18–38, F and D separately, goalies excluded. Consumers should use differences between two ages; the anchor cancels.
Skills and units:
| Skill | Source | Season floor | Units |
|---|---|---|---|
| EVoff/60, EVdef/60 | relwpa_components_v3_by_game*.csv | 20 GP + 300 EV min | relWPA pts / 60 EV min |
| PP/60, PK/60 | same | 60 PP (PK) min | relWPA pts / 60 PP (PK) min |
| Finishing | shooters_gax_by_season_v2.csv | 100 SOG | GAx per 100 SOG |
| Playmaking | playmaking_by_season_all.csv | 200 witnessed shots | ridge lift per 100 teammate shots |
Situation components are expressed per 60 within the situation (not per game): for PP/PK a per-game rate would confound skill aging with deployment aging (veterans losing PP time would read as losing PP skill). ev_def needs no sign flip — the components partition relWPA player credit, so higher already means better defense.
Era control (this mattered). The delta estimator confounds era with age — every transition is +1 year and +1 season. Total relWPA is zero-mean per season by construction, but its components are not: league-mean ev_off/60 drifted from ≈ −1 (2010–2015) to ≈ +4 pts (2017–2025) with ev_def falling symmetrically as scoring rose, and PP/PK league means swing ±10 pts. Uncentered, that drift masquerades as aging — a first pass showed EVdef "declining" monotonically from age 18, almost all of it era drift. Every metric is therefore centered within season × position group (weighted cohort mean among qualifiers) before differencing; curves read as within-player level vs the league cohort, relative to the anchor age.
| Skill | F peak | D peak | Shape notes |
|---|---|---|---|
| EVoff/60 | 24 | 25 | Classic arc; broad 23–27 plateau, steady decline after 28 |
| EVdef/60 | 19 | 20 | Early slide to ~25, then essentially flat to 38 |
| PP/60 | 27 | 24 | F: latest-peaking major skill, plateau 25–29, holds a 33–34 shelf |
| PK/60 | 23 | 20 | Earliest, fastest ager; D decline is monotone from the anchor |
| Finishing | 20 (plateau 19–24) | 22 | Early peak, relentless slide from mid-20s |
| Playmaking | 28 | 19 | F: near-flat 21–32, the longest-lived skill; D drift is tiny in magnitude |
Decline rates age 30→35, per year, in each metric's own units: EVoff F −0.97 / D −0.69; EVdef F +0.02 / D −0.06; PP F −1.19 / D −1.36; PK F −1.44 / D −0.82; Finishing F −0.30 / D −0.30 (GAx/100 SOG); Playmaking F −0.04 / D −0.03 (lift/100, on a scale where good ≈ +1).
1. Penalty killing ages first — and defensemen's PK never improves at all. F PK/60 peaks at 23 and posts the steepest post-30 slope of any component (−1.4 pts/60/yr, 30→35); D PK/60 declines monotonically from age 20 — there is no improvement phase whatsoever. PK is the max-effort, straight-line-skating, shot-lane-recovery discipline, and it goes early. If a 30+ contract is being justified by PK utility, this is the wrong bet.
2. Defense really does age better than offense — at even strength it barely ages at all. After an early-20s adjustment (F EVdef slides ~2 pts from 19 to 24 — plausibly the price of taking on a bigger offensive role), EVdef/60 is flat from ~25 through 38 for both positions (F slope 30–35 is +0.02/yr; D −0.06). EVoff/60 meanwhile falls ~1 pt/60/yr after 30 for F and is back at its age-19 level by 33. The aging of a skater's even-strength game is almost entirely an offense story. (Caveat 2 below tempers, but does not overturn, this.)
3. Finishing does NOT outlive play-driving — playmaking does. The classic claim fails: F finishing peaks earliest of the offensive skills (plateau 19–24) and declines steadily and roughly linearly from 25 (−0.30 GAx/100 SOG per year after 30; a 35-year-old F is ~2.9 GAx/100 SOG below his age-23 self — roughly a full standard deviation of the finishing talent scale). Playmaking is the opposite: for F it is essentially flat from 21 to 32 and only fades after 33. Old forwards keep the pass; they lose the release, and they lose play-driving volume (EVoff) fastest of all.
4. PP skill is the most durable on-ice value for aging forwards. F PP/60 peaks at 27 — later than EV — and at 33–34 still sits ~+11.5 vs the anchor, i.e. roughly its age-22 level; by 33 it has given back only ~37% of its climb while EVoff has given back 100%. Combined with (1) and (2), the aging-roster playbook writes itself: shift the veteran F to PP duty, trust the EV defense, get him off the PK. For D the pattern is weaker — D PP/60 peaks at 24 and erodes earlier (the "young PP quarterback" era shows up here).