SignalTuned SignalTuned

Rankings tuned to the signal, not the noise.

Need help?Sign in
RB2026-05-15

The "vacated backfield" guys aren't yapping. They're right.

What the consensus says

If you've read any post-draft dynasty piece in the last two weeks, you've seen the same sentence pattern about half a dozen times. "Jadarian Price is interesting because the Notre Dame backfield is wide open." "RJ Harvey vaulted up boards once Ezekiel Elliott didn't get re-signed." The recurring claim is that Day-2 rookie RBs (Rounds 2 and 3, picks 33 through 100) get the biggest fantasy boost when their NFL team's prior-year workhorse leaves. Rotoballer, NBC Sports, FantasyPros, Rotostreet Journal, Fantasy Life, Fox Sports, and RotoWire have all been pushing some version of it. Seven independent voices in seven days qualifies as recurrence in my book.

The mechanism makes intuitive sense, which is exactly when you should test it. Rookie RBs don't have target shares or snap shares yet. The only opportunity signal you have is "did the guy in front of him just leave?" If yes, the rookie's path to volume just got a lot shorter.

The claim, in plain English

The falsifiable version: at the same NFL pick capital, a Day-2 rookie RB whose team's Y-1 lead RB (200+ carries OR 15+ ppg) is no longer on the team in Y0 outscores a Day-2 rookie RB whose Y-1 lead stuck around. By a meaningful margin, in rookie-year ppg.

The predicate looks like this:

def predicate(rookie_row) -> bool:
    """In-cohort = rookie RB landed in a vacated backfield."""
    team_y_minus_1_lead = lookup_lead_rb(team=rookie_row.team, season=rookie_row.season - 1)
    if team_y_minus_1_lead is None:
        return False  # no clear lead, ambiguous case, excluded
    lead_y0_carries_on_same_team = lookup_y0_carries(team_y_minus_1_lead.pid, rookie_row.season, rookie_row.team)
    return lead_y0_carries_on_same_team < 50  # lead departed (or fell off a cliff)

In plain English: I find the back who carried the load on this rookie's NFL team the year before. If that guy isn't on the roster in any real capacity this year (traded, released, retired, or buried), I tag the rookie's backfield as "vacated." Then I compare those rookies to rookies whose team's prior-year lead came back and kept his job.

How I beat on it

Ten rookie classes, 2015 through 2024. Half-PPR scoring, the exact Sleeper settings my own dynasty league uses (which is probably close to what most of you are playing). Filtered to rookies who got at least four games and 20+ touches in their first year. Enough to call it a real rookie season, not a healthy scratch.

I excluded rookies whose team didn't have a clear Y-1 lead in the first place (committees, transition teams) because the vacated-vs-returned comparison is undefined for them. That left 105 rookie-RB seasons: 37 in vacated backfields, 68 whose veteran lead stuck around. Bucketed by NFL pick: top-15 R1, late-R1, R2, R3, R4-5, R6-7+, with a "Day-2 combined" row that matches the literal claim.

What the data actually said

Aggregate first: vacated rookies averaged 8.02 ppg in their rookie year. Returned-lead rookies averaged 5.47. A 2.55 ppg gap before any controls. Three points a week, every week, for a 17-week season. That's the difference between a flex starter and a bench dart.

But the aggregate hides selection effects. Maybe vacated backfields concentrate in early-round picks, where rookies hit harder regardless of who's in front of them. So I split by NFL pick bucket. Always slice.

Pick bucket Vacated n / ppg Returned n / ppg Gap
R1 top 1-15 2 / 17.52 2 / 12.28 +5.23 (tiny sample)
R1 late 16-32 0 / n/a 0 / n/a no data
R2 33-64 4 / 11.24 6 / 8.07 +3.17
R3 65-100 6 / 10.11 11 / 6.46 +3.65
R4-5 101-165 8 / 6.24 20 / 5.28 +0.96
R6-7+ 166+ 5 / 4.37 12 / 3.68 +0.69
Day-2 combined (R2+R3) 10 / 10.56 17 / 7.03 +3.53

Every single bucket with data points the same direction: vacated rookies outscore returned-lead rookies. The magnitude is biggest right where the claim says it should be (Day-2) and tapers as you move into late-round picks. The Day-2 combined cell hits 10 vacated rookies versus 17 returned-lead rookies, and the gap is 3.53 ppg with both sides cleanly above my sample-size floor. Real signal at the magnitude the takesmiths are claiming.

Here is the mechanism, and it matters for second-order thinking. A Day-2 pick means the team invested meaningful draft capital without having an incumbent lead. That is a front-office commitment signal. Combine that with a cleared path and the rookie doesn't just get more touches. He gets the touches earlier in games, in higher-leverage situations, when the score is close. Volume plus situational weight compounds. The late-round buckets (R4-5 and R6-7+) show a positive but small gap of about a point per game. Vacated still helps, but the rookie was probably a long shot anyway, and a vacated backfield isn't enough to drag him into starter territory.

What the engine already figured out

This one's the interesting case. Our rookie projection model (the empirical-first v3 system we shipped in early May) uses three signals: NFL pick bucket baselines, within-bucket combine deltas, within-bucket college production deltas. It does not have a team-context term. Two Day-2 rookies with identical combines and identical college profiles get the same projection regardless of whether their NFL team's lead RB just left or got re-signed. The engine treats backfield context as zero.

The data says it shouldn't.

What to do about it

For drafting in 2026: if you're deciding between two Day-2 rookie RBs and one of them landed on a team that lost its lead RB this offseason, that's worth a meaningful tier bump. Not "round earlier" worth, but "I'd take this guy at the same ADP" worth. The expected lift is about three and a half points a game in his rookie year, and rookie-year fantasy production is also a strong signal for sophomore-year value, so the effect compounds for keeper and dynasty leagues.

For the engine: I'm classifying this as an "adds information" verdict. The signal isn't currently encoded, the data supports it, the magnitude is large enough to matter. But I'm not turning it on in the live ranks yet. I'm staging it as an experimental feature with weight 0.0 and a warm_loop_watch flag, which means our warm-loop A/B harness will start sampling its predictions in the background. The promotion gate is a residual test: does this signal still help once you control for everything the engine already weights? That requires a walk-forward cache rebuild that doesn't exist yet. Once it does, if the residual confirms the lift, we turn the weight up and ship.

Until then: treat the Day-2 vacated-backfield bump as a manual override on your own draft board, not something baked into the ranks. Yet.

SignalTuned, 2026-05-15


Back to all posts