New to these reports? Start here
  • Dotted-underlined words have a plain-English definition — hover or tap them. Every term is also on the glossary page.
  • "Null" means we found nothing, not that something broke. Most reports here are negative results, on purpose — knowing an idea doesn't work is the point.
  • Two questions get asked separately. First, is the effect real? Second, is it already priced into the betting odds? An effect can be completely real and still useless to bet on.
  • A "calibration" row is a self-check. It runs the same method on something already known to be true. If that fails, the whole report is unreliable — so it's reported alongside the findings.
  • If a confidence interval includes zero, the real effect might be nothing at all, so no claim gets made.

What does transferring actually do? (college hockey)

2026-09-08. 5,494 skater and 307 goalie player-season pairs, 2020-2024, from college_hockey_player_game_stats joined to the transfer sheet ingested in e5746b5. A pair is a player who appears in season N and again in N+1, so both sides of a move are observed.

The design question is regression to the meanregression to the meanExtreme results tend to be followed by more ordinary ones, purely by chance. Mistaking this for a real decline is a classic error.. Players transfer after seasons that flattered them and out of situations that are deteriorating, so the raw before/after of a transfer is mostly RTM. Everything below compares a mover to a STAYER who looked the same in season N.

⚠ Two data traps hit on the way, both of which would have produced nonsense: - EMPTY NET is 32% of the goalie table. It is a situation, not a goalie, and it appears for every team in every season — joining on name without excluding it cross-joins into ~17,500 fabricated "transfers" out of 18,154 pairs. - Goalies need a shots-against floor (100) before a save percentage means anything.

Skaters: no average effect, but a strong interaction

prior P/GP after delta
movers (n=635) 0.367 0.399 +0.032
stayers (n=3,592) 0.369 0.413 +0.044

Matched on prior P/GP in deciles: −0.0113 P/GP [95% CI95% confidence intervalThe range the true value is plausibly in. If this range includes zero, we cannot rule out that the real effect is nothing at all. −0.0308, +0.0098]. That spans zero. On average, transferring does nothing.

But the average hides the result. The effect is monotonic in how good the player already was:

prior P/GP decile 0.02 0.10 0.29 0.43 0.66 0.92
effect vs matched stayers +0.014 +0.113 +0.077 −0.065 −0.108 −0.210

Fitting it continuously rather than in bins, delta ~ prior + moved + prior x moved:

term estimate 95% CI
moved +0.1069 [+0.0776, +0.1389] excludes zero
prior x moved −0.3256 [−0.4035, −0.2498] excludes zero

Crossover at 0.33 P/GP, just below the league mean of 0.369. Below it, moving is associated with gaining more than a comparable stayer; above it, with gaining less.

Checks that this is not an artifact: - Within-bin balance: movers' and stayers' priors differ by <3% of bin width in every decile, and in the TOP decile the movers are actually lower (0.8986 vs 0.9194) — the imbalance runs against the finding, not for it. - Level of competition: adding the change in the destination team's goal differential barely moves the interaction (−0.3305 → −0.3470), and the competition term itself is small (+0.0229 per goal-diff unit). So this is not "weak players drop down a level and score more".

⚠ It is associational. The obvious alternative is selection: a star transfers because something changed — role, injury, a coaching change — and that same something depresses next season. The design controls for prior production and destination strength, not for the reason he left. There is also no ice-time data, so a star moving into a deeper roster may simply play less.

Goalies: nothing

Matched effect +0.0019 SV% [−0.0033, +0.0070], n=76 movers. A clean nullnull resultA test that found nothing. "Null" is the starting assumption that there is no real effect; a "null result" means the data gave us no reason to abandon that assumption. It does not mean the data was missing or the test failed to run., though the sample is small enough that only a large effect would show.

Team level: portal losses hurt ~4x more than graduation

For 280 team-seasons, regressing the change in goal differential on prior goal differential (which absorbs RTM) plus production lost to each channel:

term estimate 95% CI
prior goal diff −0.5229 [−0.6491, −0.3883] excludes zero
points lost to transfers −0.00708 [−0.01084, −0.00279] excludes zero
points lost to everything else −0.00177 [−0.00441, +0.00076] spans zero

Transfers are only 25% of departed production (22.8 points per team-season against 69.3), yet they carry the entire effect. Per point lost, the portal costs about four times what graduation costs, and graduation alone cannot be distinguished from zero.

The plausible mechanism is that graduation is planned for. A coach knows years ahead who is leaving and recruits against it; a portal exit is a surprise late in an offseason and much harder to replace.

⚠ Note the raw correlations point the other way — transfer_out −0.154 vs other_out −0.387 — because other_out is far larger and correlates with team quality (good teams have more production to lose). The sign flips only once prior goal differential is controlled, which is the right specification but worth seeing.

⚠ Reverse causation is not excluded: a program heading for a bad season may lose more players to the portal in the first place. Prior goal differential controls for current quality, not for anticipated decline.

⚠ The sheet under-measures — name-match rates run 68-87% and arrivals are captured worse than departures. Under-measurement attenuates a coefficient toward zero, so the transfer effect here is if anything conservative.

What this is good for

The team-level result is the usable one: production lost to the portal is a preseason signal for team change that graduation is not, and both are known before a season starts. That fits the two-stage design in backtests/player_movement/FINDINGS.md.

The player-level interaction is a spectator/analysis finding, not a projection input — it is associational and the mechanism is unidentified.

On this page

Terms in this report

Related

Detecting departures without an early-departure list

Source

backtests/player_movement/FINDINGS_TRANSFERS.md
updated 2026-09-08 18:11