Aging curves

How the average NHL career rises and falls, in the site’s own currency: net goals per 82 games. Each curve tracks how the same player’s rating changes season over season, pooled across every skater in the model (2010-11 to 2025-26, seasons of 40+ games), so late ages aren’t flattered by the fact that only stars are still playing at 38. The vertical position is relative to the youngest age shown — read differences between two ages: a forward moving from 24 to 31 gives back about 2.7 net goals per 82.

Overall rating by age

ForwardsDefensemen
Overall net goals per 82, relative to age 18
-8-6-4-2+0+21820222426283032343638FD

Forwards peak at 24 and hold most of that level through 27; the slide steepens after 30 to roughly a net goal per 82 lost each year through the mid-30s. Defensemen age on a gentler arc: an earlier, lower peak at 22, then a slow drift that only accelerates after 32 — by the late 30s a defenseman has lost about half as much as a forward.

Where the rise and fall come from

The same estimator run on each component of the rating separately. All seven panels share one scale so the sizes are comparable — the flat panels really are flat. Finishing is the story of the forward decline: it falls from age 20 on and accounts for more of the late-career loss than the on-ice play-driving components. Power-play value is the most age-resistant skill, still near its peak into the early 30s, and faceoffs are the one skill that keeps improving into the 30s.

ForwardsDefensemen
EV offense
-6-4-2+0+2182226303438
EV defense
-6-4-2+0+2182226303438
Power play
-6-4-2+0+2182226303438
Penalty kill
-6-4-2+0+2182226303438
Finishing
-6-4-2+0+2182226303438
Penalties
-6-4-2+0+2182226303438
Faceoffs
-6-4-2+0+2182226303438

The league’s age structure, season by season

Not a curve but a census: every rated player-season (skaters with 10+ GP, goalies with 10+ games), bucketed by age, as a share of his position group that season (curves lightly smoothed; hover for exact shares and counts). Press play to watch the league get younger through the 2010s — and notice how differently the three positions are shaped: forwards stack young, goalies old.

Age distribution — share of position group
0%2%4%6%8%10%12%14%18212427303336394245
Data table — every season’s age profile
SeasonF nmeanmedianD nmeanmedianG nmeanmedian
2010-1149426.52624927.0266728.328
2011-1249426.62625126.9266529.029
2012-1345026.72623927.1275729.028
2013-1449426.62625726.8266928.127
2014-1547426.62625626.7266527.827
2015-1648326.42625326.3256927.427
2016-1748626.12525026.5266328.328
2017-1849226.12526726.2267128.529
2018-1950025.72526726.5267028.929
2019-2048126.02625426.7266629.129
2020-2147826.32625026.6266728.628
2021-2253426.42627426.7267428.327.5
2022-2350226.72627227.0277928.328
2023-2450327.02726927.2277328.128
2024-2549427.12726727.4277328.528
2025-2651527.22726327.5277229.029

How the ratings themselves are distributed

The same census, but bucketed by the rating instead of age: each season’s Overall net goals per 82 (goalies: GSAx per 82), as a share of the position group. Goalies get their own panel because a goalie’s season value swings over a range about five times wider than a skater’s — note the x-axes. Most of the league lives within a goal or two of average in either direction; the animation shows how stable that shape is from season to season, even as the tails (the stars and the disasters) churn. Curves lightly smoothed; hover for exact shares and counts.

Skaters — Overall NG/82
0%4%8%12%16%20%-16-12-8-4+0+4+8+12+16
Goalies — GSAx/82 (wider scale)
0%4%8%12%16%-60-30+0+30+60
Data table — every season’s rating profile
SeasonF nmeanp10medianp90D nmeanp10medianp90G nmeanp10medianp90
2010-11494+0.4-6-0.2+7.3249-1.9-6.7-1.8+3.267+11.5-26.2+14.2+54.2
2011-12494+0.1-5.9-0.8+7.2251-1.3-6-1.3+3.465+10.7-33.2+11.8+39.5
2012-13450+0.5-6.7-0.2+8.5239-1.8-7.3-2+4.157+17.3-29+14+57.9
2013-14494+0.4-6-0.4+7.7257-1.7-6-1.6+3.169+14-27.8+16.1+53.4
2014-15474+0.2-6.4-0.5+8.2256-1.6-6.8-1.5+4.165+13.8-31.3+16.3+49.8
2015-16483+0.3-6.1-0.4+7.9253-1.6-5.8-1.9+2.969+12.6-16.6+14.5+43.4
2016-17486+0.5-6-0.1+7.6250-2-6.8-2+2.863+13.6-24.8+13.1+42.8
2017-18492+0.5-6.2-0.1+8.2267-1.9-6.8-1.7+2.671+13.6-27.6+15.1+53.2
2018-19500+0.2-6.3-0.5+8.2267-2-6.8-2.1+370+12.3-27.1+12.8+48.9
2019-20481+0.3-6.5-0.6+9254-2-6.8-2.2+3.266+18.6-16.2+21.6+49
2020-21478+0.7-6.8-0.3+9.9250-2.3-7.4-2.2+367+16.3-21+12.5+60.7
2021-22534+0.2-7.2-0.8+9.2274-2-7.2-2.5+3.474+9.6-30+12.8+45.9
2022-23502+0.3-7-0.5+9.1272-1.7-7-2+3.979+13.3-26.8+14.8+52.6
2023-24503+0.3-6.7-0.6+8.3269-2.1-7.5-2+3.273+19.4-11.2+18.4+51.5
2024-25494+0.3-5.8-0.4+8.3267-1.8-6.7-1.9+2.373+14-24+14.3+54.7
2025-26515+0.4-6.6-0.4+9263-1.9-6.9-2.1+3.372+15.6-14.4+16+56.7
Data table — every curve value
GroupAgeOverallEV offenseEV defensePower playPenalty killFinishingPenaltiesFaceoffsTransitions
F18+0.00+0.00+0.00+0.00+0.00+0.00+0.00+0.00
F19+0.86+0.48+0.11+0.20+0.06-0.11+0.06+0.0629
F20+1.41+0.89+0.04+0.36+0.11-0.21+0.04+0.1885
F21+1.75+1.20-0.15+0.45+0.17-0.21-0.01+0.30130
F22+1.90+1.41-0.31+0.50+0.20-0.16-0.10+0.36215
F23+2.16+1.57-0.41+0.55+0.21-0.05-0.15+0.43308
F24+2.34+1.65-0.47+0.62+0.21-0.01-0.17+0.52387
F25+2.17+1.65-0.48+0.68+0.21-0.17-0.29+0.58405
F26+1.96+1.64-0.45+0.70+0.20-0.32-0.43+0.61411
F27+1.67+1.58-0.46+0.71+0.19-0.44-0.54+0.63403
F28+1.22+1.47-0.51+0.70+0.18-0.62-0.65+0.64389
F29+0.75+1.29-0.52+0.69+0.17-0.80-0.73+0.65362
F30+0.23+1.08-0.48+0.65+0.16-1.05-0.82+0.68304
F31-0.39+0.88-0.45+0.60+0.12-1.30-0.94+0.69274
F32-0.86+0.68-0.38+0.58+0.11-1.49-1.03+0.68222
F33-1.23+0.53-0.31+0.60+0.12-1.73-1.10+0.67174
F34-2.02+0.39-0.37+0.61+0.11-2.21-1.18+0.64130
F35-3.21+0.18-0.40+0.58+0.06-3.02-1.24+0.6297
F36-4.06-0.04-0.30+0.48+0.03-3.54-1.29+0.6075
F37-4.57-0.31-0.27+0.35+0.06-3.55-1.44+0.5844
F38-5.70-0.48-0.28+0.26+0.06-4.09-1.71+0.5428
F39-7.66-0.48-0.20+0.27-0.03-5.63-2.07+0.4815
D19+0.00+0.00+0.00+0.00+0.00+0.00+0.00+0.00
D20-0.08-0.03-0.06+0.16-0.09-0.30+0.25-0.0027
D21+0.16+0.10-0.10+0.31-0.13-0.33+0.30-0.0057
D22+0.24+0.29-0.14+0.39-0.10-0.38+0.17-0.0095
D23+0.11+0.40-0.17+0.46-0.09-0.54+0.06-0.00154
D24+0.01+0.43-0.21+0.49-0.12-0.64+0.06-0.00189
D25-0.06+0.43-0.29+0.44-0.15-0.51+0.02-0.00188
D26-0.15+0.37-0.35+0.39-0.14-0.33-0.09-0.00189
D27-0.30+0.30-0.37+0.37-0.11-0.35-0.15-0.00198
D28-0.46+0.27-0.40+0.39-0.11-0.42-0.19-0.00193
D29-0.62+0.21-0.54+0.42-0.17-0.33-0.21-0.00176
D30-0.87+0.04-0.67+0.38-0.25-0.14-0.23+0.00167
D31-1.20-0.18-0.63+0.36-0.31-0.08-0.36+0.00147
D32-1.61-0.38-0.54+0.37-0.33-0.22-0.51+0.00119
D33-2.16-0.51-0.56+0.36-0.35-0.46-0.64+0.0095
D34-2.83-0.65-0.67+0.32-0.38-0.66-0.78+0.0081
D35-3.14-0.88-0.73+0.27-0.37-0.59-0.85+0.0059
D36-3.13-1.15-0.76+0.24-0.34-0.29-0.83+0.0037
D37-3.35-1.42-0.68+0.15-0.34-0.25-0.81+0.0028
D38-3.73-1.63-0.42-0.02-0.38-0.55-0.74+0.0017

Method. For every skater with 40+ GP seasons at consecutive ages, the season-over-season change in his rating is pooled by age transition (weighted by the harmonic mean of the two seasons’ games played), each step requires at least 15 such transitions, steps are lightly smoothed (¼–½–¼), and the steps are summed from the youngest age. Because only within-player changes enter, a 37-year-old star retiring doesn’t drag the curve — but note the curve describes players who stayed in the league; a player who fell out of the NHL contributes no decline data. Curves end where fewer than 15 transitions exist (F 39, D 38). Faceoffs are shown for context; they partially overlap the on-ice components.