# Line Drift Study

## Methods

- Data: `data/external/power_rating_snapshots/cfbd_lines/<season>/week_season/captured_*.json`, latest capture per season, seasons 2016-2025 (regular + postseason).
- Caveat: these are retrospective snapshots captured 2026-07-29, not a true point-in-time open/close feed. spreadOpen coverage is partial (~73% of provider quotes carry both spread and spreadOpen).
- Per game, open/close medians are computed over the subset of providers that carry BOTH `spread` and `spreadOpen`, so the two medians come from the same provider set.
- Sign convention: CFBD `spread` is the HOME spread (negative = home favored). Home covers when margin + spread > 0; push when margin + spread == 0 (pushes excluded from hit-rate denominators).
- 2020 (COVID season) games included in pooled numbers: n = 0 (noted separately per instructions, not excluded).
- Follow-drift p-values use a normal approximation to the binomial vs p0=0.5.

## 1. Prediction Accuracy: Open vs Close

| Line | MAE (points) | n |
|---|---|---|
| Open | 12.2775 | 4179 |
| Close | 12.1702 | 4179 |

## 2. Follow-the-Drift ATS Hit Rates (|drift| >= 0.5)

Bettability note: the drift side is only known once the closing number exists, so only the "Closing number" row below is an ex-ante (bettable) strategy. The "Opening number" row requires knowing the close to define the bet at open and is a hindsight diagnostic, NOT a bettable strategy.

### Ex-ante (bettable): follow drift at closing number

| Bet placed at | n | wins | hit rate | p-value (vs 0.5) |
|---|---|---|---|---|
| Closing number | 3306 | 1669 | 0.5048 | 0.5778 |

### Hindsight diagnostic -- NOT a bettable strategy (drift side is only known at close)

| Bet placed at | n | wins | hit rate | p-value (vs 0.5) |
|---|---|---|---|---|
| Opening number | 3320 | 1824 | 0.5494 | 0.0000 |

## 3. Drift-Magnitude Buckets (bet drift side at close)

| |drift| bucket | n | wins | hit rate |
|---|---|---|---|
| [0.5, 1) | 996 | 514 | 0.5161 |
| [1, 2) | 1233 | 619 | 0.5020 |
| [2, +inf) | 1077 | 536 | 0.4977 |

## 4. Per-Season Table

| Season | n games | MAE open | MAE close | follow-drift-close n | follow-drift-close hit rate |
|---|---|---|---|---|---|
| 2021 | 840 | 12.7232 | 12.6583 | 656 | 0.5046 |
| 2022 | 807 | 12.1239 | 12.0496 | 649 | 0.4807 |
| 2023 | 825 | 12.3000 | 12.1015 | 612 | 0.5229 |
| 2024 | 816 | 12.2301 | 12.0839 | 668 | 0.5314 |
| 2025 | 891 | 12.0188 | 11.9618 | 721 | 0.4868 |
