calibrated SPORTS
NFLAnalyticsOpportunity residualPersistence Rushing Yards

One measure, in full · Opportunity residual

Does it persist: rushing yards volume against efficiency

Opportunity residual

Not published
Week-to-week carry-over
1999–2026
Seasons
One league figure
Leader
12
Values in the file

Definition

One definition, the column that binds its range, and what the figure is a share of.

Pearson r of a player's per-game value between two samples of himself - season T and T+1, or odd and even weeks - for the volume-predicted rushing yards (opportunity), the residual (efficiency), and opportunity minus efficiency (gap), all three from one set of resamples of players

opportunity_residual.persistence.rushing_yards

Source
pbp; n counts independent players
Bound column
the whole archive, 1999-2026; no input binds it; fit rushing yards ~ carries, OLS per season x position group over player-weeks; R^2 RB median 0.743 (0.684-0.800, 28 seasons); QB median 0.617 (0.434-0.722, 28 seasons); position group is the player's CURRENT nflverse position applied to every season, not as-of; QB kneel-downs (nflverse qb_kneel) are excluded from both sides of the fit - 9457 kneel plays removed (RB 4, QB 9453 by position group); SURVIVORSHIP: a lag-1 pair needs >= 5 games in both seasons, a split-half pair >= 3 in each half, so both designs are conditional on the player staying in the league; RB lag-1 efficiency r by games required {1: 0.154, 5: 0.199, 12: 0.271}; 846 of 2661 qualifying player-seasons do not return, mean per-game residual -1.122 leaving against +0.544 returning; QB lag-1 efficiency r by games required {1: 0.215, 5: 0.405, 12: 0.403}; 310 of 983 qualifying player-seasons do not return, mean per-game residual -0.538 leaving against +0.237 returning
Columns it reads
pbp.rusher_player_id|rush_attempt, weekly_stats.position
Denominator
Not a share: the figure has no denominator it splits with anyone.
Season range
Current 1999–2026. Current. Its inputs cover 1999 to 2026 and reach the season in progress.
Slices
position_group|design|quantity
Refreshed
This file was generated Tue, Oct 27, 9:32 AM ET. It does not state a refresh schedule.

Distribution

No distribution: the file is one figure for the whole league, not a value per player.

Does it carry?

No week-to-week carry-over is published for this measure. Its file holds a value per league with its interval; whether a week above average carries into the next is not in it.

Leaderboard

No leaderboard: the file is one league-wide figure, not a value per player.

What the file does and does not say

Four limits, stated plainly.

  1. Interval from resampling players with replacement, 2,000 times. Built at 95%. That coverage is nominal: this page does not check it against outcomes.
  2. n counts independent players, never rows. A value resting on fewer than 5 players is shown muted in the table and not read: it is left out of the range and the leaders.
  3. It covers 1999 to 2026, and says why in the producer's words: the whole archive, 1999-2026; no input binds it; fit rushing yards ~ carries, OLS per season x position group over player-weeks; R^2 RB median 0.743 (0.684-0.800, 28 seasons); QB median 0.617 (0.434-0.722, 28 seasons); position group is the player's CURRENT nflverse position applied to every season, not as-of; QB kneel-downs (nflverse qb_kneel) are excluded from both sides of the fit - 9457 kneel plays removed (RB 4, QB 9453 by position group); SURVIVORSHIP: a lag-1 pair needs >= 5 games in both seasons, a split-half pair >= 3 in each half, so both designs are conditional on the player staying in the league; RB lag-1 efficiency r by games required {1: 0.154, 5: 0.199, 12: 0.271}; 846 of 2661 qualifying player-seasons do not return, mean per-game residual -1.122 leaving against +0.544 returning; QB lag-1 efficiency r by games required {1: 0.215, 5: 0.405, 12: 0.403}; 310 of 983 qualifying player-seasons do not return, mean per-game residual -0.538 leaving against +0.237 returning.
  4. It is one figure for the whole league, pooled. It does not say what any one player does, and it does not split by position.