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 5 sportsbooks and 12 markets — the closer a book's Over hit rate sits to 50.0%, the more balanced its line.

47,144
graded outcomes
5
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 6 of 12 markets we tracked — more than any other book. That's the technical definition of "the sharpest line" before vig.

Bovada graded 17,623 outcomes in this window

Bovada carried the deepest coverage of any book here, with 17,623 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 8.5-point cross-book spread

FanDuel's Game Totals Overs hit 39.7% while Bovada's hit 31.2% 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.

MarketDraftKingsFanDuelBovadaBetRiversUnibet
Pitcher Strikeouts
MLB
51.0%
n=514
50.7%
n=586
50.6%
n=635
51.5%
n=579
Batter Hits
MLB
54.5%
n=4,850
57.9%
n=5,721
Batter Total Bases
MLB
40.9%
n=2,211
39.5%
n=2,947
35.1%
n=5,862
Hits + Runs + RBIs
MLB
46.4%
n=4,557
46.4%
n=6,029
Player Points
NBA
44.3%
n=298
40.5%
n=346
44.6%
n=686
Player Rebounds
NBA
46.9%
n=277
44.3%
n=318
45.1%
n=587
Player Assists
NBA
42.1%
n=254
41.1%
n=253
45.9%
n=438
Player 3s Made
NBA
41.2%
n=243
34.5%
n=267
40.8%
n=468
Shots on Goal
NHL
41.4%
n=372
Goalie Saves
NHL
39.0%
n=41
Moneyline
Game lines
Game Totals
Game lines
33.6%
n=610
39.7%
n=605
31.2%
n=5,420
36.3%
n=584
35.3%
n=586
All markets (avg)47.8%42.7%40.3%46.1%35.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) 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 5+ 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.