28-day cross-book analysis

Which sportsbook prices player props most accurately?

We grade every prop against the league's official box-score feed (MLB Stats API, NBA CDN, NHL API, ESPN for soccer). Below is a real 28-day window across 7 sportsbooks and 12 markets — the closer a book's Over hit rate sits to 50.0%, the more balanced its line.

76,194
graded outcomes
7
sportsbooks
28
day window
12
markets compared

Bovada prices the most markets closest to 50/50

Bovada sits closest to a balanced 50% Over hit rate in 5 of 12 markets we tracked — more than any other book. That's the technical definition of "the sharpest line" before vig.

BetMGM graded 18,767 outcomes in this window

BetMGM carried the deepest coverage of any book here, with 18,767 Over outcomes graded across the 12 markets in the comparison. Sample size translates to confidence: cells from higher-volume books are statistically more reliable than thin ones.

Game lines Game Totals has a 42.5-point cross-book spread

Pinnacle's Game Totals Overs hit 46.8% while DraftKings's hit 4.3% on the same market — same players, same league, same period. That's where cross-book line shopping lives.

Over hit rate by market and book

Each cell shows the percent of Over outcomes that won, last 28 days. Greener = closer to 50/50. A book's Over hitting at 48-52% on a market is balanced pricing; outside that range the book is taking a measurable side of the action.

MarketPinnacleDraftKingsFanDuelBetMGMBovadaBetRiversUnibet
Pitcher Strikeouts
MLB
49.2%
n=636
49.6%
n=621
49.4%
n=607
45.9%
n=604
49.8%
n=618
50.8%
n=596
Batter Hits
MLB
54.5%
n=6,163
45.2%
n=5,877
58.4%
n=5,317
Batter Total Bases
MLB
47.8%
n=6,041
40.2%
n=3,272
44.4%
n=5,877
40.4%
n=3,235
35.2%
n=5,829
Hits + Runs + RBIs
MLB
46.6%
n=6,149
45.5%
n=6,040
46.8%
n=6,172
Player Points
NBA
50.0%
n=82
47.1%
n=85
52.0%
n=579
Player Rebounds
NBA
38.2%
n=68
47.0%
n=66
47.6%
n=511
Player Assists
NBA
58.2%
n=55
68.2%
n=44
48.0%
n=298
Player 3s Made
NBA
42.6%
n=47
27.7%
n=47
44.1%
n=401
Shots on Goal
NHL
Goalie Saves
NHL
Moneyline
Game lines
Game Totals
Game lines
46.8%
n=4,685
4.3%
n=348
10.6%
n=350
6.8%
n=369
34.0%
n=3,839
6.6%
n=333
6.3%
n=333
All markets (avg)47.5%47.5%37.6%44.3%42.6%45.4%6.3%

Cell value = won ÷ total of all graded Over outcomes on that market / book in the window. Cells with fewer than 30 graded outcomes are omitted (insufficient sample). Highlighted cell per row = book closest to a balanced 50%. The footer row averages all markets per book.

How to read this

50% Over ≠ break-even at -110

A market with a 50% Over hit rate at standard -110 / -110 pricing still loses 4.5% over time to vig. To actually profit on the Over, you need it to hit at least 52.4%. So a book sitting at 48-50% on Overs is doing exactly what it's supposed to.

Low Over % = book-favorable, not necessarily mispriced

Markets with 0.5 lines on rare events (player_blocks, batter_doubles) naturally hit Over far below 50% because most players don't record any of the stat in a given game. That's the natural base rate, not a mispricing — though it does mean books print the Under consistently.

Why Pinnacle anchors fair-line math

Pinnacle is the closest-to-50% book on most markets here because they take sharp action and move lines until both sides clear equally. That's why our +EV calculator uses Pinnacle as the no-vig anchor.

Cross-book spreads are where shopping pays off

When two books on the same market sit 5+ percentage points apart on their Over hit rate, that's real pricing divergence — and the kind of edge a multi-book API surfaces that a single-book scrape never could.

Methodology

Source data: Every prop in the comparison is scraped from the listed book's public odds feed every 90 seconds, then matched against the league's official stats API after the game ends (MLB Stats API for baseball, NBA CDN for basketball, NHL Stats for hockey). Resolution is automatic and book-agnostic — we don't use any book's own settlement; the league's box score is the single source of truth.

Window: Last 28 days of graded outcomes. Rolling — refreshes hourly.

Sample-size floor: A (book, market) cell is included only if at least 30 Over outcomes were graded in the window. Cells below the floor are shown as —.

Books included: Pure sportsbooks with consistent Over/Under two-sided pricing. DFS books (PrizePicks, Underdog, Sleeper, Dabble) and prediction-market exchanges (Polymarket, Smarkets, Matchbook, Kalshi) are excluded from this comparison because their pricing dynamics differ — their hit rates aren't directly comparable to sportsbook Over %. They're still graded in our broader dataset.

Reproducibility: Every number in the table comes from the public GET /v1/markets/hit-rates?bookmaker=<book>&days=28 endpoint, available on the free tier. Run it yourself and check our work.

This is what multi-book grading looks like.

PropLine ingests 7+ sportsbooks plus 5exchanges and grades every prop against the league feed. The comparison above is impossible without that — single-book APIs can't tell this story.