← Research

Component portability: what travels when a skater changes teams

Producer: component_portability.py (2026-09-04). Universe: 6,968 consecutive-season transitions (1,406 skaters, 2010-11 → 2025-26), both seasons GP ≥ 30 and ≥ 75% of TOI with one team. 1,370 are team changes (19.7%).

Question. A skater's seven rating components are estimated on one team. When he moves, which components come with him and which were really the old team's system, linemates, or deployment?

Method. For each component, regress next season's value on this season's with a mover interaction and age/position controls (GP-weighted). Portability = mover carry-over slope ÷ stayer carry-over slope: 1.0 means changing teams costs nothing in predictability; 0.5 means half of what would normally persist stays behind. Absorption k asks the follow-up: among movers, how far does the player's number move toward his new teammates' average for that component (k = 1: it becomes the environment; k = 0: independent). Finishing is the placebo — it is individual credit and should absorb nothing. CIs are 95% cluster bootstraps over players.

All skaters

Componentn stay / mover stayr moveslope stayslope movePortability (95% CI)Absorption k (95% CI)
EV offense5598 / 13700.720.480.730.500.68 (0.61, 0.76)0.59 (0.53, 0.64)
EV defense5598 / 13700.520.240.510.240.46 (0.34, 0.58)0.61 (0.56, 0.67)
Power play5598 / 13700.520.130.510.140.26 (0.09, 0.43)0.37 (0.30, 0.43)
Penalty kill5598 / 13700.290.130.300.130.44 (0.22, 0.70)0.48 (0.40, 0.56)
Finishing5598 / 13700.290.140.280.140.51 (0.27, 0.76)0.14 (0.02, 0.25)
Penalties5598 / 13700.630.550.500.410.82 (0.73, 0.91)-0.25 (-0.39, -0.11)
Faceoffs5598 / 13700.780.670.780.640.82 (0.71, 0.95)0.07 (-0.00, 0.14)

Forwards

Componentn stay / mover stayr moveslope stayslope movePortability (95% CI)Absorption k (95% CI)
EV offense3664 / 9190.740.560.760.600.80 (0.71, 0.89)0.49 (0.43, 0.56)
EV defense3664 / 9190.510.200.500.200.40 (0.26, 0.54)0.51 (0.45, 0.58)
Power play3664 / 9190.550.180.540.180.34 (0.14, 0.54)0.44 (0.35, 0.53)
Penalty kill3664 / 9190.290.130.300.120.40 (0.13, 0.70)0.34 (0.25, 0.42)
Finishing3664 / 9190.310.140.310.150.49 (0.26, 0.76)0.15 (-0.01, 0.31)
Penalties3664 / 9190.550.430.510.390.78 (0.66, 0.90)-0.27 (-0.44, -0.08)
Faceoffs3664 / 9190.780.670.780.640.82 (0.71, 0.95)0.11 (-0.00, 0.23)

Defensemen

Componentn stay / mover stayr moveslope stayslope movePortability (95% CI)Absorption k (95% CI)
EV offense1934 / 4510.670.320.680.330.48 (0.34, 0.60)0.76 (0.67, 0.86)
EV defense1934 / 4510.540.290.530.280.53 (0.33, 0.76)0.83 (0.73, 0.92)
Power play1934 / 4510.42-0.030.40-0.03-0.06 (-0.40, 0.27)0.23 (0.14, 0.32)
Penalty kill1934 / 4510.290.130.300.140.48 (0.11, 0.93)0.75 (0.59, 0.89)
Finishing1934 / 4510.070.080.070.091.19 (-1.07, 5.88)0.11 (-0.02, 0.25)
Penalties1934 / 4510.490.440.470.420.88 (0.68, 1.10)-0.21 (-0.47, 0.04)
Faceoffs1934 / 4510.160.020.140.010.09 (-2.21, 4.93)0.00 (-0.00, 0.00)

Reading the numbers

Caveats

Sensitivity

Portability (movers' carry-over ÷ stayers') under three universes; the ranking and the power-play result hold throughout.

ComponentGP≥20, share≥0.60 (n=1,875 moves)GP≥30, share≥0.75 (1,370)GP≥50, share≥0.90 (690)
EV offense0.710.680.69
EV defense0.440.460.44
Power play0.270.260.32
Penalty kill0.520.440.44
Finishing0.460.510.34
Penalties0.820.820.79
Faceoffs0.840.820.87