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.
Pre-registration: Overs on lopsided low reception props (frozen 2026-10-31)
Do not edit this file or grade.py after the commit that adds them. Grade once, after week 18.
Where the idea came from (a screen, so treat it as a guess)
While testing devigdevigRemoving the bookmaker's cut from odds to recover the market's actual implied probability. methods (backtests/devig_calibration/FINDINGS.md), heavily juiced reception props looked mispriced.
- Part of that was a grading artifact. nflverse has no stat row for a player who played and caught nothing, so those Unders, which won, were dropped. The grader now counts snaps with no stat row as 0.
- After the fix, one bucket still stood out: lines of 1.5 and 2.5 where some book prices a side at 65%+. On those, the Over beat its price.
Discovery results (2026 weeks 1–8, games before 2026-11-01):
| Bets (player-game-lines) | Games | Over won | Fair (exact Shin) | ROIreturn on investmentProfit as a percentage of the money wagered. +2% means $2 profit per $100 bet. at best Over price |
|---|---|---|---|---|
| 248 | 93 | 52.8% | 44.0% | +15.9% ± 8.2 |
This came from looking at about 25 groups, so a 1.8-SE result is about what chance alone would produce. Non-lopsided 1.5/2.5 Overs lost 6.1% ± 3.7 in the same sample.
Rule
- Market: NFL
player_receptions, line 1.5 or 2.5. - Close: each book's last two-sided price in the 6 hours before kickoff, from
[redacted]nfl_prop_snapshots(excludinghist_close). - Qualifies: at least one book's raw implied probability for either side is ≥ 65%.
- Bet: Over at the best closing Over price among the captured books. One bet per (game, player, line).
- Grading:
scripts/cron/paper_trading_jobs.NflProps(nflverse stats; snaps with no stat row count as 0; ruled out or inactive is void). Voids and ungraded bets are excluded and reported.
Forward sample
Regular-season games kicking off from 2026-11-01T00:00Z to before 2027-01-12T00:00Z (weeks 9–18).
Test
- Primary: ROI with the SE clustered by game. Pass if ROI − 1.645 × SE > 0 (one-sided 95%).
- Secondary, reported but not deciding: Over win rate minus mean exact-Shin fair probability.
- Power: about 30 qualifying bets a week, so about 300 forward bets with SE ≈ 7.5%. It passes only if forward ROI is about +12% or better. A true edge of +5% would most likely fail. That's accepted: a real edge this size should show up at this scale.
Caveats stated up front
- The best price across books at close may not be bettable in practice (limits, line moves in the last 30 minutes). The ROI is an upper bound for a single-book bettor.
- The capture schedule changed during the season (Q1 repolls); receptions closes are polled every 30 minutes in the final 2 hours, unchanged since week 1.
Grade: python3 backtests/nfl_receptions_low_line/grade.py (writes result_forward.json).
On this page
Terms in this report
Source
backtests/nfl_receptions_low_line/PREREG.md
updated 2026-10-31 21:26