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.
Do player situational splits repeat? (2026-10-20)
Question. Highlight clips love a stat like "QB X has +0.40 EPAexpected points addedHow much a play changed the number of points its team should expect to score on that drive. A better measure of a play than raw yards./dropback against the blitz." Is a split like that a trait of the player, or a description of one season?
Data. nflverse play-by-play, regular seasons 2016–2025, with FTN charting (play action, pocket,
blitz, box count, screens, motion, RPO; 2022 on) and NGS participation data (pressure, coverage,
time to throw, personnel; 2016–2025). Built by scripts/nfl/build_player_plays.py; computed by
build_repeat() in [redacted]; live at /nfl/stats.
Method. For each player-season with at least half a season's qualifying volume (7 dropbacks, 3.1 carries or 0.94 targets per team game × 17), and at least 30/20/12 plays both in the split and outside it:
excess = (player EPA/play in the split − player EPA/play in the rest of that split's plays)
− (the same gap for the whole league that season)
Then correlate a player's excess in season t with his excess in t+1, pooled over all consecutive pairs. Removing the league gap means a split doesn't "repeat" just because everyone is worse under pressure; subtracting the player's own rest-of-split EPA means it doesn't repeat just because good players are good everywhere.
Result
Almost nothing repeats. The median year-to-year r is +0.01 for passers (78 split values), +0.02 for rushers (53) and +0.02 for receivers (67). Of ~200 split values, nine have a 95% interval clear of +0.03 with 50+ pairs, and they are mostly mechanical:
| Role | Split | r | What it really is |
|---|---|---|---|
| QB | Pass vs sack/scramble (EPA on actual throws vs all dropbacks) | +0.66 | sack avoidance is a QB trait |
| QB | Throws behind the line / intermediate / deep | +0.16 to +0.19 | a QB's depth profile |
| QB | 1st down | +0.19 | early-down passing efficiency |
| Rush | Runs up the middle | +0.16 | (direction and gap are the same plays) |
| Receiver | Screens | +0.50 | role: screen-heavy players stay screen-heavy |
| Receiver | Targets behind the line | +0.15 | role |
Splits that don't repeat (95% interval includes zero) include blitzed vs not (−0.15, CI −0.35 to +0.06), play action (−0.03), in/out of pocket (+0.06), pressure (+0.04), man vs zone (+0.01), shotgun vs under center (0.00), home/away, every weather split, quarter, two-minute, score and win probability. A couple lean negative (3rd & 7+ −0.22, leading by 1–8 −0.21), which is what 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. looks like after selecting extreme seasons.
Rushing with 8+ in the box looked sticky (r +0.34) but has only 41 pairs (CI +0.03 to +0.58); worth rechecking as FTN seasons accumulate.
What this means for the site
/nfl/statshighlights show "Splits that hold up" only for splits that clear this test, and tag every "Biggest swing" with its split's r ("mostly noise" vs "repeats").- The swings list also prints how many |z| ≥ 2.5 gaps chance alone would produce. 2026 through week 6: 31 found from 3,073 checks, ~38 expected by chance. 2025 full season: 194 from 11,121, ~138 expected, so a modest excess, most of which is still noise.
- Practical reading: a player's overall EPA/play, sack rate and depth profile carry forward; his "against the blitz" or "in the 4th quarter" number mostly does not.
Caveats
- FTN splits have only three season pairs (2022→23→24→25), so their intervals are wide.
- Pairs require the same player to qualify in both seasons, which drops injured and benched seasons; that selection would, if anything, inflate repeatability.
- One-season-ahead only; no attempt to model aging or scheme changes.
Full table
Pairs = player-season pairs; holds = 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. lower bound > +0.03 with 50+ pairs. Two-value splits are listed once (the gap is the same story from either side).
Passing (EPA/dropback)
| Split | Value | Pairs | r | 95% CI |
|---|---|---|---|---|
| Pass, sack or scramble | Pass | 192 | +0.66 holds | +0.57 to +0.73 |
| Pass, sack or scramble | Scramble | 36 | +0.27 | -0.07 to +0.55 |
| Pass, sack or scramble | Sack | 63 | +0.21 | -0.04 to +0.44 |
| Pass depth | Behind the line | 221 | +0.19 holds | +0.06 to +0.32 |
| Down | 1st down | 277 | +0.19 holds | +0.07 to +0.30 |
| Pass depth | Deep (20+) | 196 | +0.18 holds | +0.04 to +0.31 |
| Pass depth | Intermediate (10–19) | 250 | +0.16 holds | +0.04 to +0.28 |
| Pass rushers | 6+ rushers | 26 | +0.15 | -0.25 to +0.51 |
| Defenders in the box | Light box (6 or fewer) | 84 | +0.13 | -0.09 to +0.34 |
| Time to throw | Quick (under 2.5s) | 277 | +0.12 | -0.00 to +0.23 |
| Pass direction | Left | 275 | +0.11 | -0.00 to +0.23 |
| Down | 3rd down | 276 | +0.11 | -0.01 to +0.23 |
| Field position | Own 50–21 | 277 | +0.11 | -0.01 to +0.23 |
| Defenders in the box | 7 in the box | 80 | +0.11 | -0.12 to +0.32 |
| Pass direction | Middle | 248 | +0.10 | -0.02 to +0.23 |
| Score | Tied | 236 | +0.09 | -0.04 to +0.22 |
| Rest days | Short week (≤5 days) | 111 | +0.09 | -0.10 to +0.27 |
| Win probability | Win prob 20–80% | 277 | +0.08 | -0.04 to +0.20 |
| Field position | Opp 21–49 | 272 | +0.08 | -0.04 to +0.20 |
| Pass direction | Right | 277 | +0.08 | -0.04 to +0.19 |
| Time to throw | Normal (2.5–3.5s) | 277 | +0.07 | -0.05 to +0.19 |
| Offensive personnel | 11 | 260 | +0.07 | -0.05 to +0.19 |
| Time to throw | Long (3.5s+) | 226 | +0.07 | -0.06 to +0.20 |
| In / out of pocket | In pocket | 80 | +0.06 | -0.16 to +0.27 |
| Score | Trailing 9+ | 247 | +0.06 | -0.07 to +0.18 |
| Quarter | Q4 | 274 | +0.05 | -0.07 to +0.17 |
| Score | Trailing 1–8 | 267 | +0.05 | -0.07 to +0.17 |
| Win probability | Win prob under 20% | 247 | +0.05 | -0.08 to +0.17 |
| Home / away | Home | 272 | +0.04 | -0.08 to +0.16 |
| Offensive personnel | 12 | 208 | +0.04 | -0.09 to +0.18 |
| Down | 2nd down | 277 | +0.04 | -0.08 to +0.16 |
| Pressure | Clean pocket | 271 | +0.04 | -0.08 to +0.15 |
| Rest days | Normal (6–8 days) | 222 | +0.03 | -0.10 to +0.17 |
| Win probability | Win prob over 80% | 187 | +0.03 | -0.11 to +0.18 |
| Two-minute | Last 2 min of half | 233 | +0.03 | -0.10 to +0.16 |
| Score | Leading 9+ | 146 | +0.03 | -0.13 to +0.19 |
| Yards to go | 11+ to go | 231 | +0.03 | -0.10 to +0.16 |
| Pre-snap motion | Motion | 92 | +0.02 | -0.18 to +0.23 |
| Pass depth | Short (0–9) | 277 | +0.01 | -0.10 to +0.13 |
| Field position | Red zone (opp 20 in) | 220 | +0.01 | -0.12 to +0.15 |
| Home / away | Away | 272 | +0.01 | -0.11 to +0.13 |
| Temperature (outdoors) | 80°F+ | 95 | +0.01 | -0.19 to +0.21 |
| Indoors / outdoors | Indoors | 202 | +0.01 | -0.13 to +0.15 |
| Rain or snow (outdoors) | Dry | 36 | +0.01 | -0.32 to +0.34 |
| Man / zone | Man | 210 | +0.01 | -0.13 to +0.14 |
| Temperature (outdoors) | Under 40°F | 89 | +0.00 | -0.21 to +0.21 |
| Temperature (outdoors) | 40–59°F | 194 | +0.00 | -0.14 to +0.14 |
| Formation | Shotgun | 222 | -0.00 | -0.13 to +0.13 |
| Rest days | Extra rest (9–12 days) | 129 | -0.00 | -0.17 to +0.17 |
| Coverage shell | Cover 4 | 137 | -0.01 | -0.18 to +0.16 |
| Yards to go | 7–10 to go | 277 | -0.01 | -0.13 to +0.11 |
| Yards to go | 4–6 to go | 240 | -0.02 | -0.14 to +0.11 |
| Field position | Own 20 and in | 182 | -0.02 | -0.17 to +0.12 |
| Play action | Play action | 87 | -0.03 | -0.24 to +0.19 |
| Coverage shell | Cover 1 | 202 | -0.05 | -0.19 to +0.09 |
| Pass rushers | 5 rushers | 87 | -0.05 | -0.26 to +0.16 |
| Quarter | Q1 | 259 | -0.05 | -0.17 to +0.07 |
| Quarter | Q3 | 265 | -0.06 | -0.17 to +0.07 |
| Wind (outdoors) | 15+ mph | 72 | -0.06 | -0.28 to +0.18 |
| Wind (outdoors) | 0–9 mph | 191 | -0.06 | -0.20 to +0.08 |
| Quarter | Q2 | 270 | -0.06 | -0.18 to +0.06 |
| Rest days | Off a bye (13+ days) | 120 | -0.07 | -0.24 to +0.11 |
| Offensive personnel | 21 | 41 | -0.07 | -0.37 to +0.24 |
| Coverage shell | Cover 3 | 212 | -0.07 | -0.21 to +0.06 |
| Yards to go | 1–3 to go | 186 | -0.07 | -0.22 to +0.07 |
| Offensive personnel | Other | 26 | -0.08 | -0.45 to +0.32 |
| Tempo | Huddle | 150 | -0.09 | -0.25 to +0.07 |
| Screen | Screen | 48 | -0.11 | -0.38 to +0.18 |
| 3rd-down distance | 3rd & 4–6 | 146 | -0.12 | -0.28 to +0.04 |
| Wind (outdoors) | 10–14 mph | 151 | -0.12 | -0.28 to +0.04 |
| Temperature (outdoors) | 60–79°F | 184 | -0.13 | -0.27 to +0.02 |
| Blitz | Blitzed | 90 | -0.15 | -0.35 to +0.06 |
| Coverage shell | Cover 2 | 171 | -0.18 | -0.32 to -0.03 |
| Coverage shell | Cover 6 | 54 | -0.20 | -0.44 to +0.07 |
| Score | Leading 1–8 | 232 | -0.21 | -0.33 to -0.08 |
| 3rd-down distance | 3rd & 7+ | 222 | -0.22 | -0.34 to -0.09 |
| Pass rushers | 4 rushers | 91 | -0.27 | -0.45 to -0.07 |
| 3rd-down distance | 3rd & 1–3 | 55 | -0.29 | -0.52 to -0.03 |
Rushing (EPA/designed run)
| Split | Value | Pairs | r | 95% CI |
|---|---|---|---|---|
| Defenders in the box | Stacked box (8+) | 41 | +0.34 | +0.03 to +0.58 |
| Rest days | Short week (≤5 days) | 22 | +0.32 | -0.12 to +0.65 |
| Offensive personnel | Other | 42 | +0.21 | -0.10 to +0.49 |
| Run direction | Middle | 298 | +0.16 holds | +0.05 to +0.27 |
| Run gap | Up the middle | 298 | +0.16 holds | +0.05 to +0.27 |
| Win probability | Win prob under 20% | 85 | +0.13 | -0.08 to +0.34 |
| Defenders in the box | Light box (6 or fewer) | 138 | +0.13 | -0.04 to +0.29 |
| Yards to go | 1–3 to go | 218 | +0.12 | -0.01 to +0.25 |
| Quarter | Q3 | 314 | +0.12 | +0.01 to +0.23 |
| Wind (outdoors) | 10–14 mph | 113 | +0.12 | -0.07 to +0.29 |
| Run gap | Inside (guard) | 320 | +0.11 | +0.00 to +0.22 |
| Run direction | Right | 385 | +0.11 | +0.01 to +0.21 |
| Wind (outdoors) | 15+ mph | 39 | +0.11 | -0.22 to +0.41 |
| Score | Tied | 265 | +0.10 | -0.02 to +0.22 |
| Offensive personnel | 21 | 57 | +0.09 | -0.17 to +0.35 |
| Quarter | Q1 | 306 | +0.09 | -0.02 to +0.20 |
| Temperature (outdoors) | Under 40°F | 59 | +0.08 | -0.17 to +0.33 |
| Offensive personnel | 12 | 265 | +0.07 | -0.05 to +0.19 |
| Field position | Opp 21–49 | 361 | +0.07 | -0.03 to +0.17 |
| Wind (outdoors) | 0–9 mph | 171 | +0.07 | -0.08 to +0.22 |
| Field position | Red zone (opp 20 in) | 219 | +0.06 | -0.07 to +0.19 |
| Field position | Own 20 and in | 93 | +0.05 | -0.15 to +0.25 |
| Run direction | Left | 392 | +0.04 | -0.06 to +0.14 |
| Formation | Shotgun | 324 | +0.03 | -0.07 to +0.14 |
| Tempo | Huddle | 27 | +0.03 | -0.35 to +0.41 |
| Down | 1st down | 420 | +0.02 | -0.08 to +0.11 |
| Score | Trailing 1–8 | 288 | +0.02 | -0.10 to +0.13 |
| Temperature (outdoors) | 60–79°F | 162 | +0.02 | -0.14 to +0.17 |
| Score | Trailing 9+ | 135 | +0.01 | -0.16 to +0.18 |
| Home / away | Home | 403 | +0.01 | -0.09 to +0.10 |
| Indoors / outdoors | Indoors | 206 | +0.00 | -0.13 to +0.14 |
| Score | Leading 1–8 | 279 | +0.00 | -0.11 to +0.12 |
| Home / away | Away | 403 | -0.00 | -0.10 to +0.09 |
| Run gap | Off tackle | 293 | -0.00 | -0.12 to +0.11 |
| Field position | Own 50–21 | 416 | -0.01 | -0.11 to +0.09 |
| Defenders in the box | 7 in the box | 129 | -0.02 | -0.19 to +0.16 |
| Quarter | Q4 | 317 | -0.02 | -0.13 to +0.09 |
| Yards to go | 4–6 to go | 128 | -0.02 | -0.20 to +0.15 |
| Run gap | Outside (end) | 243 | -0.03 | -0.15 to +0.10 |
| Rest days | Extra rest (9–12 days) | 20 | -0.03 | -0.46 to +0.42 |
| Down | 2nd down | 395 | -0.03 | -0.13 to +0.07 |
| Quarter | Q2 | 331 | -0.04 | -0.15 to +0.07 |
| Temperature (outdoors) | 40–59°F | 164 | -0.04 | -0.19 to +0.11 |
| Win probability | Win prob 20–80% | 385 | -0.05 | -0.14 to +0.05 |
| Yards to go | 7–10 to go | 381 | -0.06 | -0.16 to +0.04 |
| Win probability | Win prob over 80% | 261 | -0.09 | -0.21 to +0.03 |
| Offensive personnel | 13 | 20 | -0.10 | -0.52 to +0.36 |
| Offensive personnel | 11 | 370 | -0.10 | -0.20 to +0.00 |
| Score | Leading 9+ | 162 | -0.13 | -0.28 to +0.02 |
| Rest days | Normal (6–8 days) | 209 | -0.14 | -0.27 to +0.00 |
| Down | 3rd down | 34 | -0.14 | -0.46 to +0.21 |
| Pre-snap motion | Motion | 137 | -0.21 | -0.37 to -0.04 |
| Temperature (outdoors) | 80°F+ | 41 | -0.32 | -0.57 to -0.02 |
Receiving (EPA/target)
| Split | Value | Pairs | r | 95% CI |
|---|---|---|---|---|
| Screen | Screen | 70 | +0.50 holds | +0.31 to +0.66 |
| Rest days | Extra rest (9–12 days) | 24 | +0.21 | -0.21 to +0.57 |
| Rest days | Short week (≤5 days) | 23 | +0.19 | -0.24 to +0.56 |
| Pass rushers | 5 rushers | 188 | +0.15 | +0.01 to +0.29 |
| Pass depth | Behind the line | 336 | +0.15 holds | +0.04 to +0.25 |
| Pass rushers | 4 rushers | 290 | +0.12 | +0.01 to +0.24 |
| Pre-snap motion | Motion | 399 | +0.10 | +0.01 to +0.20 |
| Two-minute | Last 2 min of half | 344 | +0.10 | -0.01 to +0.20 |
| Win probability | Win prob over 80% | 292 | +0.09 | -0.02 to +0.21 |
| Pass depth | Short (0–9) | 1196 | +0.09 | +0.03 to +0.14 |
| Blitz | Blitzed | 281 | +0.08 | -0.04 to +0.19 |
| Pass depth | Intermediate (10–19) | 663 | +0.07 | -0.00 to +0.15 |
| Score | Trailing 1–8 | 815 | +0.07 | +0.00 to +0.14 |
| Field position | Opp 21–49 | 919 | +0.06 | -0.00 to +0.12 |
| Field position | Red zone (opp 20 in) | 233 | +0.05 | -0.08 to +0.18 |
| Temperature (outdoors) | Under 40°F | 103 | +0.05 | -0.15 to +0.24 |
| Offensive personnel | 11 | 722 | +0.05 | -0.03 to +0.12 |
| Wind (outdoors) | 10–14 mph | 210 | +0.05 | -0.09 to +0.18 |
| Yards to go | 1–3 to go | 124 | +0.05 | -0.13 to +0.22 |
| Indoors / outdoors | Indoors | 528 | +0.05 | -0.04 to +0.13 |
| Pass direction | Left | 1108 | +0.04 | -0.01 to +0.10 |
| Field position | Own 50–21 | 1286 | +0.04 | -0.01 to +0.10 |
| Quarter | Q1 | 654 | +0.04 | -0.04 to +0.11 |
| Offensive personnel | 12 | 347 | +0.04 | -0.07 to +0.14 |
| Yards to go | 7–10 to go | 1202 | +0.03 | -0.02 to +0.09 |
| Rain or snow (outdoors) | Dry | 22 | +0.03 | -0.39 to +0.45 |
| Man / zone | Man | 785 | +0.03 | -0.04 to +0.10 |
| Coverage shell | Cover 1 | 644 | +0.03 | -0.05 to +0.11 |
| Pass direction | Right | 1207 | +0.03 | -0.03 to +0.08 |
| 3rd-down distance | 3rd & 7+ | 175 | +0.02 | -0.13 to +0.17 |
| Yards to go | 4–6 to go | 407 | +0.02 | -0.08 to +0.12 |
| Coverage shell | Cover 3 | 667 | +0.02 | -0.06 to +0.10 |
| Score | Tied | 490 | +0.02 | -0.07 to +0.11 |
| Down | 2nd down | 1090 | +0.02 | -0.04 to +0.07 |
| Temperature (outdoors) | 80°F+ | 104 | +0.01 | -0.18 to +0.21 |
| Pass depth | Deep (20+) | 326 | +0.01 | -0.10 to +0.12 |
| Pressure | Clean pocket | 798 | +0.01 | -0.06 to +0.08 |
| Down | 1st down | 1138 | +0.00 | -0.05 to +0.06 |
| Tempo | Huddle | 166 | -0.00 | -0.16 to +0.15 |
| Quarter | Q2 | 924 | -0.01 | -0.07 to +0.06 |
| Quarter | Q3 | 667 | -0.01 | -0.08 to +0.07 |
| Rest days | Normal (6–8 days) | 491 | -0.01 | -0.10 to +0.08 |
| Score | Trailing 9+ | 624 | -0.01 | -0.09 to +0.06 |
| Win probability | Win prob 20–80% | 1134 | -0.02 | -0.07 to +0.04 |
| Temperature (outdoors) | 60–79°F | 419 | -0.02 | -0.11 to +0.08 |
| Pass direction | Middle | 662 | -0.02 | -0.10 to +0.05 |
| Formation | Shotgun | 408 | -0.02 | -0.12 to +0.08 |
| Down | 3rd down | 855 | -0.02 | -0.09 to +0.04 |
| Home / away | Home | 1252 | -0.02 | -0.08 to +0.03 |
| Home / away | Away | 1245 | -0.03 | -0.08 to +0.03 |
| Quarter | Q4 | 866 | -0.03 | -0.09 to +0.04 |
| Play action | Play action | 204 | -0.03 | -0.16 to +0.11 |
| Score | Leading 1–8 | 453 | -0.03 | -0.12 to +0.06 |
| Field position | Own 20 and in | 89 | -0.04 | -0.24 to +0.17 |
| Defenders in the box | Light box (6 or fewer) | 210 | -0.04 | -0.18 to +0.09 |
| Wind (outdoors) | 15+ mph | 57 | -0.05 | -0.31 to +0.21 |
| Score | Leading 9+ | 146 | -0.05 | -0.21 to +0.11 |
| In / out of pocket | In pocket | 41 | -0.05 | -0.35 to +0.26 |
| Win probability | Win prob under 20% | 631 | -0.05 | -0.13 to +0.03 |
| Temperature (outdoors) | 40–59°F | 384 | -0.05 | -0.15 to +0.05 |
| Defenders in the box | 7 in the box | 173 | -0.05 | -0.20 to +0.10 |
| Yards to go | 11+ to go | 293 | -0.07 | -0.19 to +0.04 |
| Coverage shell | Cover 4 | 142 | -0.08 | -0.24 to +0.08 |
| Coverage shell | Cover 2 | 265 | -0.09 | -0.21 to +0.03 |
| Wind (outdoors) | 0–9 mph | 371 | -0.09 | -0.19 to +0.01 |
| Offensive personnel | 21 | 27 | -0.17 | -0.51 to +0.23 |
| 3rd-down distance | 3rd & 4–6 | 37 | -0.27 | -0.55 to +0.06 |