Cross-sport·CLV receipts
Closing-line value is the metric that survives short-term variance. Positive CLV over a meaningful sample is the strongest signal a model has real edge. Every settled pick below, scored against the closing line, downloadable as CSV.
Picks scored
993
of 1,000 graded
Avg CLV
-45
bps · model vs close
Median CLV
-75
bps
Positive %
45%
95% CI 42–48% · 446W / 547L
CLV distribution
993 scored picks. Positive bins = model beat the closing number.
<-1000
-1000..-500
-500..-200
-200..0
0
0..200
200..500
500..1000
>1000
| Bin (bps) | Picks |
|---|---|
| <-1000 | 73 |
| -1000..-500 | 172 |
| -500..-200 | 185 |
| -200..0 | 117 |
| 0 | 0 |
| 0..200 | 116 |
| 200..500 | 151 |
| 500..1000 | 123 |
| >1000 | 56 |
Per league
Average CLV across each league's scored picks over the last 365 days.
| League | Picks | Avg CLV | Median | +% |
|---|---|---|---|---|
| mlb | 999 | +247 | +234 | 64% |
| nba | 65 | +958 | +733 | 72% |
| wnba | 49 | +1185 | +1222 | 92% |
| nhl | 466 | -3 | -6 | 50% |
| nfl | 0 | — | — | — |
Public receipts
Every settled pick · model line · market line · closing line · CLV bps. No filters, no edits. Open file, audit the math yourself.
Methodology
At pick issue time (T-30min before tip), the model writes a row to picks_log with the model's projected probability and the market line + price at that moment.
At T-5min before tip, a cron snapshots the closing line into closing_lines.
When the game settles, a grader computes CLV bps = (model_prob − no_vig_closing_prob) × 10,000. Positive CLV means the model identified the side that the market eventually confirmed by close — a leading indicator of true edge.
Picks that lack a closing line are excluded from CLV math (shown as "—" in tables). Sample sizes below 30 in any cohort should be read with skepticism — CLV is a survival statistic, not a single-game one.
Full methodology + open-source backtest notebooks live at /model/methodology.