Sports Edge Model — every game called, every call graded, in public

Spreads & totals, graded in public

The board calls moneylines. Spreads and totals are collected from every book on every poll and graded here as games finish — never picked, never part of the model’s call. The question is whether their prices are right: if favorites failed to cover, or overs failed to hit, more often than their prices said, that would be an edge that needs no model at all.

Since we started collecting

Our own closing lines, games since 2026-07-04: the last price each book posted before the game, at the number most books were on. “Priced” is what those prices implied with the vig removed. A gap inside the noise is not evidence of nothing — “can detect” is the smallest gap this sample could have found.

Favorites cover

Does the side laying points cover as often as its closing price says?

SportGamesActual PricedGapCan detect
All sports 1178 +6 pushes 41.9% 42.0% -0.0pt ±2.9pt
MLB 1019 41.4% 41.8% -0.4pt ±3.1pt
NFL 72 +6 pushes 45.8% 50.0% -4.2pt ±11.8pt
NHL 87 44.8% 37.5% +7.3pt ±10.3pt

n=1,178 (6 pushes). Actual 41.9% against an implied 42.0%, a gap of -0.0pt (z=-0.03). Inside the noise. This sample resolves 2.86pt at 2 SE, so a gap smaller than that is not evidence of nothing -- it is a sample that cannot say.

Overs hit

Does the over hit as often as its closing price says?

SportGamesActual PricedGapCan detect
All sports 1151 +33 pushes 50.0% 50.0% -0.0pt ±3.0pt
MLB 986 +33 pushes 50.1% 50.0% +0.2pt ±3.2pt
NFL 78 50.0% 50.0% -0.0pt ±11.3pt
NHL 87 48.3% 50.4% -2.1pt ±10.7pt

n=1,151 (33 pushes). Actual 50.0% against an implied 50.0%, a gap of -0.0pt (z=-0.02). Inside the noise. This sample resolves 2.95pt at 2 SE, so a gap smaller than that is not evidence of nothing -- it is a sample that cannot say.

Spread moves

When the spread moved before the game, did the side it moved toward beat its closing price?

SportGamesActual PricedGapCan detect
All sports 126 +5 pushes 46.8% 41.9% +4.9pt ±8.7pt
MLB 69 43.5% 37.7% +5.8pt ±11.6pt
NFL 49 +5 pushes 49.0% 49.7% -0.7pt ±14.3pt
NHL 8 62.5% 31.2% +31.3pt ±32.8pt

n=126 (5 pushes). Actual 46.8% against an implied 41.9%, a gap of +4.9pt (z=+1.13). Inside the noise. This sample resolves 8.71pt at 2 SE, so a gap smaller than that is not evidence of nothing -- it is a sample that cannot say.

Total moves

When the total moved before the game, did the side it moved toward beat its closing price?

Checked against five seasons of history on 2026-10-12: it failed. On 2024–26 games the moved-toward side ran 1.2 points BELOW its price and lost 5.8% at the best US price. Kept here, graded as before.

SportGamesActual PricedGapCan detect
All sports 443 +20 pushes 53.3% 49.2% +4.1pt ±4.8pt
MLB 356 +20 pushes 54.2% 49.2% +5.0pt ±5.3pt
NFL 69 47.8% 49.8% -2.0pt ±12.0pt
NHL 18 55.6% 46.2% +9.3pt ±23.5pt

n=443 (20 pushes). Actual 53.3% against an implied 49.2%, a gap of +4.1pt (z=+1.71). Inside the noise. This sample resolves 4.75pt at 2 SE, so a gap smaller than that is not evidence of nothing -- it is a sample that cannot say.

Line flips (NHL & MLB)

When the ±1.5 puck line or run line flipped sides before the game — the market changing its mind about who is favored — did the newly favored side beat its closing price?

Added 2026-10-12 after the history check: the newly favored side beat its price in every period with data (NHL 2021–23 +4.5pt on 114 games, 2024–26 +5.6pt on 145; MLB 2021–23 +9.4pt on 144). Found by looking at many slices, so it is a lead, not a finding. Counted only for games from 2026-10-13: earlier live games helped suggest it, so they cannot also grade it. Flips are rare; proving it takes years, not weeks.

Nothing graded yet.

Before we collected our own

Five seasons of purchased history, 2021–2025, priced at bet time. Spreads are read as “the home side covers”, totals as “the over hits”.

SportMarketGamesActual Pricedz
NHLspread 6,55547.6% 48.2%−1.16
NHLtotal 6,23650.6% 50.3%+0.39
NFLspread 1,32149.7% 50.0%−0.25
NFLtotal 1,34148.6% 50.0%−1.01
NBAspread 6,02750.1% 50.0%+0.17
NBAtotal 6,09650.7% 50.0%+1.01
MLBspread 11,81047.5% 48.0%−1.04
MLBtotal 11,33149.1% 50.0%−2.03

Eight tests, about 46,000 games. Every price was right to within 1.4 points. The one reading outside two standard errors (MLB totals) is what eight tests produce by chance about a third of the time — and it still lost: a side at −110 needs 52.4% to break even, 2.4 points more than a coin, and no gap here is that large. Backing unders at the best US price lost 2.8%; a spread-versus-moneyline lead died on the same data.

What is still open

One lead survives, and it is small: when the ±1.5 puck line or run line flips sides before the game, does the newly favored side beat its closing price? In five seasons of history it did in every period with data — but it was found by looking at many slices, and flips are rare. It is graded above as “Line flips”, counting only games from 2026-10-13.

The lead this page first raised did not survive. On our own games, moved totals beat their closing price by 4.1 points; on five seasons of history they did not — 2024–26 ran 1.2 points below the price and lost 5.8% at the best US price. It stays above, graded the same way, because a page that only kept its winners would not be a record.

The forward tests were fixed on 2026-10-12, before any of this data was looked at, and are graded the same way whatever they show. Each game’s own spread and total, book by book, is on its game page. The moneyline record →