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.

Cross-player usage redistribution: the effect is real, the projection gain is not

Date: 2026-08-31 · Verdict: ❌ REJECTED — usage_redistribution = False

The gap it was meant to close

Nothing in the engine moved a receiver's volume when his teammate sat. A WR2's baseline is built from weeks his WR1 played, so with the WR1 out he was still projected as though competing for the same targets.

The measurement is the deliverable

Across 5,610 present-player weeks with at least one absent established teammate (2019–2025, established = trailing target share ≥ 8%):

k = 0.223, 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.176, 0.269]

Only ~22% of a vacated target share reaches the remaining established players. Capture scales with the size of the hole:

vacated share n observed ratio full renormalisation captured
<10% 1,035 0.983 1.099 −17%
10–15% 1,626 1.005 1.139 4%
15–20% 917 1.035 1.213 16%
20–30% 1,232 1.068 1.324 21%
>30% 800 1.188 1.700 27%

⭐ The standard fantasy heuristic is wrong by about four times. "The WR1 is out, so his targets go to the WR2" implies k=1. It is 0.22. The rest goes to players with no established role — the WR4s and callups — or is simply not thrown, because the offence throws less without its best receiver.

But it does not improve projections

Implemented as uplift = 1 + k(1/(1−vacated) − 1), capped at 1.25, with the vacated share weighted by each teammate's P(plays) from that week's injury report. It fires on 113 team-weeks in 2025 and correctly identifies real cases (Tampa Bay without Evans and Irving, the Jets without Garrett Wilson).

2024 dev 2025 holdoutholdoutData deliberately set aside and never looked at while developing an idea, then used once at the end as a fair test. Peeking at it first would defeat the purpose.
receiving_yards 19.504 → 19.529 (+0.025) 18.486 → 18.503 (+0.017)
targets −0.002 −0.003
overall 4 worse / 3 better 3 worse / 3 better

The primary target category is worse in both seasons. Rejected.

Why, most likely: the trailing baseline already absorbs some of this. A WR2's three-week average includes weeks when the WR1 was out, so his baseline is already a blend of both states — and adding an uplift double-counts. That is the same failure that killed applying backup-QB shading to the QB himself, and the same reason pace lost: the recency-weighted baseline quietly encodes more context than it looks like it does.

⚠️ A blocker found on the way, worth more than the feature

_get_injury_adjustment returns 'Healthy' for any historical week by design (_is_future_week), and its docstring says so plainly: "The MAEmean absolute errorAverage size of the miss, ignoring direction. If a projection is off by 3 one week and -5 the next, the MAE is 4. Lower is better. harness always evaluates weeks with already-recorded stats, so this is False there and the injury-status path below never executes."

Two consequences:

  1. Redistribution needed its own absence signal, reading report_status directly, or every A/B would have compared the feature against itself. That is not a leak — an injury report for week W is published days before week W's games, so it is a pre-kickoff forecast, not an outcome.
  2. ~~The injury multipliers have never been validated.~~ ❌ I claimed this and it is wrong — corrected the same day. FINDINGS_INJURY_MULTIPLIERS.md is a purpose-built out-of-sampleout-of-sampleTested on data that was not used to build or tune the idea. This is the honest test; results on the data you built with are almost always flattering. validation (derived 2015–21, tested 2022–25) and it opens by naming this same harness limitation as the reason it exists. EV-frame MAE 3.414 → 2.634 (−23%), biasbiasWhether the misses lean consistently one way. A projection can have a good average error size but still be biased if it is almost always too high. Bias is often the more fixable problem. +2.016 → +0.292; Questionable-only 6.202 → 4.972 (−20%). The multipliers are well validated; the harness gap is real but was already known and already worked around.

The lesson is mine: ~40 findings documents exist in this repo, and before declaring something unmeasured the first move is to look for one.