Skater universe: drafted 2010-2026 (or undrafted, first eligible 2010+) AND appeared in the rated-games ledger. Career outcomes restricted to draft years <= 2019 (undrafted: eligible <= 2019); the age-21..27 career metric further requires the window fully observed (born <= 1998-10-01). GP = rated-games GP (~96% of official). All value in relWPA wins/82.
Sanity check: band '1' members, drafts 2010-2019, by age-21..27 wins/82
- Connor McDavid (2015): career21-27 6.935 w/82 over 482 GP, peak 10.610
- Jack Hughes (2019): career21-27 6.540 w/82 over 253 GP, peak 7.708
- Auston Matthews (2016): career21-27 6.397 w/82 over 470 GP, peak 8.996
- Nico Hischier (2017): career21-27 3.503 w/82 over 384 GP, peak 5.624
- Nathan MacKinnon (2013): career21-27 2.623 w/82 over 468 GP, peak 8.835
- Rasmus Dahlin (2018): career21-27 1.796 w/82 over 369 GP, peak 4.467
- Aaron Ekblad (2014): career21-27 1.767 w/82 over 436 GP, peak 6.859
- Taylor Hall (2010): career21-27 1.355 w/82 over 431 GP, peak 4.670
- Ryan Nugent-Hopkins (2011): career21-27 1.031 w/82 over 449 GP, peak 7.362
- Nail Yakupov (2012): career21-27 0.036 w/82 over 150 GP, peak 1.344
The curve (draft_curve.csv)
| band | N<=19 | theo | P(82) | app | P(400) | app | P(400) uncond | career w/82 (mean/med) | peak w/82 | early2 w/82 |
| 1 | 10 | 10 | 1.000 | 0.900 | 0.900 | 2.878 / 1.767 | 6.648 | 0.373 |
| 2 | 10 | 10 | 1.000 | 0.900 | 0.900 | 1.650 / 1.924 | 4.515 | 0.044 |
| 3 | 10 | 10 | 1.000 | 0.900 | 0.900 | 0.838 / 0.374 | 3.650 | 0.048 |
| 4-5 | 20 | 20 | 0.900 | 0.650 | 0.650 | 1.231 / 1.357 | 3.596 | 0.634 |
| 6-10 | 50 | 50 | 0.980 | 0.680 | 0.680 | 0.560 / 0.371 | 2.806 | -0.602 |
| 11-15 | 48 | 50 | 0.833 | 0.479 | 0.460 | -0.225 / -0.406 | 1.979 | -0.409 |
| 16-20 | 48 | 50 | 0.875 | 0.500 | 0.480 | 0.240 / 0.022 | 1.572 | -0.321 |
| 21-30 | 91 | 100 | 0.747 | 0.374 | 0.340 | -0.256 / -0.500 | 1.324 | -0.535 |
| 31-45 | 101 | 150 | 0.723 | 0.208 | 0.140 | -0.413 / -0.472 | 1.003 | -0.418 |
| 46-60 | 98 | 150 | 0.694 | 0.306 | 0.200 | -0.466 / -0.506 | 1.074 | -0.688 |
| 61-90 | 136 | 300 | 0.500 | 0.213 | 0.097 | -0.381 / -0.489 | 1.095 | -0.610 |
| 91-130 | 151 | 400 | 0.530 | 0.179 | 0.068 | -0.566 / -0.607 | 0.942 | -0.435 |
| 131-215 | 198 | 820 | 0.485 | 0.157 | 0.038 | -0.354 / -0.435 | 0.893 | -0.333 |
| undrafted | 286 | | 0.357 | 0.080 | | -0.531 / -0.550 | 0.438 | -0.659 |
Goalies: career GSAx per 60 starts by band (drafts 2010-2019)
| band | N | P(100 gm) | mean games | GSAx/60gm (games-wtd) |
| 1-15 | 2 | 1.000 | 163.0 | 1.84 |
| 16-30 | 5 | 0.600 | 237.8 | 7.41 |
| 31-60 | 20 | 0.650 | 159.7 | 1.99 |
| 61-120 | 41 | 0.537 | 147.2 | 1.48 |
| 121-215 | 39 | 0.282 | 79.9 | -1.72 |
| undrafted | 40 | 0.175 | 46.4 | -2.65 |
D vs F development (round-1 picks 1-30, drafts <=2019, seasons >=20 GP)
Mean debut age: F 19.34, D 19.64
| age | F w/82 (n) | D w/82 (n) |
| 18 | -0.038 (28) | -0.148 (8) |
| 19 | +0.429 (74) | -0.053 (30) |
| 20 | +0.157 (119) | -0.506 (45) |
| 21 | +0.378 (137) | -0.165 (62) |
| 22 | +0.210 (153) | +0.369 (65) |
| 23 | +0.517 (158) | +0.192 (71) |
| 24 | +0.865 (151) | +0.594 (66) |
| 25 | +0.978 (131) | -0.225 (60) |
| 26 | +1.374 (116) | -0.315 (48) |
| 27 | +1.216 (95) | +0.071 (40) |
| 28 | +1.173 (83) | -0.182 (35) |
| 29 | +0.967 (66) | -0.600 (29) |
Findings
- The curve is brutally convex at the very top. Mean peak season: pick 1 = 6.6 wins/82, pick 2 = 4.5, pick 3 = 3.6, picks 6-10 = 2.8, picks 21-30 = 1.3. Pick 1 is worth ~2x pick 3 and ~5x a late-first at peak. The peak column is monotone down the whole board - the cleanest single validation of the study.
- Two cliffs: after pick 1, and after pick ~10. Peak value drops 6.6 -> 4.5 -> 3.7 across the top three slots, holds ~2.8-3.6 through pick 10, then halves again by the late first (2.0 at 11-15, 1.3 at 21-30). From pick ~45 onward the curve is flat (~0.9-1.1) all the way to pick 215.
- Below pick ~45, the draft predicts survival, not skill. Conditional on appearing, career rates from band 31-45 through undrafted are all a replacement-ish -0.35 to -0.57 wins/82 and peaks are ~1.0 regardless of slot. What still falls is quantity: unconditional P(400 rated GP) goes 14% (31-45) -> 20% (46-60) -> 10% (61-90) -> 7% (91-130) -> 4% (131-215); undrafted appearers reach 400 GP just 8% of the time. Slot buys opportunity, not per-game quality.
- Top-3 picks are near-bust-proof. 2010-2019, 100% of picks 1-3 reached 82 rated GP and 27/30 (90%) reached 400; the misses are Yakupov-class outliers. Even picks 6-10 hit 400 GP 68% of the time - vs 34% for picks 21-30.
- Forwards develop earlier and further than defensemen. Round-1 F debut at 19.3 vs 19.6 for D, and R1 forwards' per-game value climbs steadily from ~0 at 18-20 to +1.2..+1.4 wins/82 at ages 26-28, while R1 defensemen as a class never sustain above ~+0.6 and hover near league average across ages (relWPA prices D impact conservatively - normalize within position before cross-position use).
- Goalie drafting 2010-2019 was near-random. Only 7 goalies went top-30 in ten drafts; the 16-30 band's shiny +7.4 GSAx/60 is one player (Vasilevskiy, +156 career GSAx) sitting next to Campbell/Subban/Samsonov at -2 to -31. Bands 31-120 all converge to +1.5-2.0 GSAx/60 among survivors; after pick 120 and undrafted go negative. The only reliable gradient is career games played.
Caveats
- player_bio covers only players who appeared 2010-2026, so per-band means are conditional on appearing; unconditional rates use actual draft sizes (e.g. 131-215 = 810+ pick-slots over 2010-2019). Non-appearing picks have 0 GP, so the unconditional GP-milestone rates are exact.
- relWPA is zero-mean league-wide, so negative band means = below-average NHLers, not negative absolute value; replacement level sits below zero.
- GP counted on the rated-games universe (~96% of official games): 82/400 thresholds are slightly conservative.
- Career means in bands 11-15 vs 16-20 invert slightly (-0.23 vs +0.24, N=48 each) - small-sample noise; the medians and peak column stay ordered.