Head-to-Head Comparisons
The same matched-lines measurement narrowed to two books at a time.
The Research Behind This Page
This board says which book had the best price. It does not say why, and two studies from the site's own price archive do. The first asks whether a book that sits far from the market is actually pricing badly, and finds that being far from the market and being repeatably wrong are close to unrelated, at a correlation of r = +0.03: of the 25 widest cells measured, only 7 carried a repeatable lean and 18 were scatter. That matters here because a book near the bottom of this leaderboard may simply be loose, which you can shop through, rather than wrong in a fixed direction.
The second went looking for slow books and found the usual test for them does not work, showing that measuring a book against its own closing price is close to useless, because a book that never re-prices scores as one of the fastest. It also found that Bally Bet, BetPARX and BetRivers post the identical price on about 99 percent of shared snapshots, so three rows on this leaderboard are effectively one opinion when you shop across them. Both studies publish their method, their caveats and the data they used.
How Do We Measure Which Book Has the Best Odds?
What is "best-price share"?
Every scan, The Odds Gap checks every book for every side of every game (home win, away win). A book's best-price share is the percentage of those scans where it offered the single highest payout. Higher means the book leads the market more often.
Every book's share is shown at every sample size, with the number of scans it came from, because that share is a plain description of scans that actually happened. A rank position, and the green-to-red color that paints a share, are stronger claims: they say the book is genuinely paying better or worse than its neighbors, and that needs a bigger sample, at least 2,000 scans in whatever view you are looking at. Below that the row shows its share and its scan count in gray, marked Unranked, and takes no rank position. The threshold comes from the color bands themselves. The narrowest band is 5 percentage points wide, and at 2,000 scans the margin of error is about 2.2 points, so a row's color is stable; at a few hundred scans it is 5 to 9 points, which spans whole bands. Narrow views (a single sport on a single day) often have no ranked books at all, and that is the honest answer rather than a fault.
What is "matched lines"?
The "Market Breadth" view credits a book for beating whoever else happened to quote a game, so a wide-coverage book gets credit on games a sharp book never posted. It measures how often a book leads across the whole market we track, partial-coverage games included. The "Matched lines" view is the like-for-like counterpart: pick a set of books, and it only counts games where all of them quoted the same market at the same line, then ranks who had the best price within that set. Smaller sample, but a fair, replicable head-to-head. Add Pinnacle or Kalshi to see how the sharp books rank once coverage is equalized.
Why Do the Two Views Disagree?
Because they answer different questions, and the difference is the most useful thing on this page. Breadth rewards a book for the markets it chooses to quote: a book that prices only a narrow, well-understood slice can post a high share without ever competing on the games it skipped. Matched lines removes that advantage by throwing away every market the whole comparison set did not quote, so the only thing left to win on is price. A book can lead one view and trail the other, and when it does, the matched number is the one that answers "if I had this bet, who would have paid me more."
Why Is the Matched View Capped at 30 Days?
Matched lines is computed from raw_snapshots, the per-book record of every price at every scan, which is kept on a rolling 90-day window and queried here in windows up to 30 days. Breadth reaches back further because it reads a daily rollup instead. So the two views trade off against each other on purpose: the all-time number covers more history but is coverage-confounded, and the like-for-like number is honest but cannot see past the raw window. We publish both rather than picking whichever reads better.
How often does the site scan?
On two cadences. The live board rescans every book's moneyline, spread, and total every minute for games starting within 24 hours, every 30 minutes for the next day out and every hour beyond that, around the clock, and is free during the beta with an email signup. The free board is a snapshot of that scan taken at the top of every hour, 7 AM to 1 AM ET. EPL, La Liga, Serie A, Bundesliga and Ligue 1 refresh every 5 minutes. Player props refresh every hour on Live Beta for games starting within 24 hours and every 4 hours for the day after that, and every 4 hours on the free board; futures refresh every hour on Live Beta and once a day on the free board. Both game-line boards cover every in-season league we track: NBA, WNBA, MLB, NHL, NFL, college football and basketball, soccer (including the World Cup), and UFC. Every scan hits every tracked sportsbook plus the prediction markets and exchanges (Kalshi, Polymarket US, ProphetX, Novig) at once, and data accumulates from every scan for the trend lines. Global Polymarket stopped quoting here on 7 August 2026; its past results stay on this page, marked Retired, but it no longer ranks against live books.
Why no "today" view?
The page only shows completed ET days. Today's numbers aren't displayed because they'd reflect partial-day data that hasn't covered the full slate of scheduled games yet. "Yesterday" is the most recent fully-completed day.
Polymarket US on shorter windows
Polymarket US only appears in 7-Day once it has 7 ET days of recorded history, and in 30-Day once it has 30. Until then it's hidden from those windows so the percentages aren't computed on a partial denominator. Yesterday and All-Time always include Polymarket US once it has any data.
Why is Kalshi different?
Kalshi is a regulated prediction-market exchange, not a traditional sportsbook, so there is no vig baked into its line. That structural difference is real, but it does not make Kalshi the best price. Kalshi charges a per-contract taker fee instead, and every Kalshi price on this site already includes it. Once that fee is applied and coverage is equalized on matched lines, counting only the games where every selected book quoted the same market, Kalshi does not lead. On moneylines it finishes at or near the bottom of every comparison set we have tested. Add Kalshi to the matched view above to see it against whichever books you pick.
This page said the opposite before July 2026, on a pricing bug that credited Kalshi with quotes nobody could have filled and on a metric that counted only the markets Kalshi chose to quote. The earlier number, and why it was wrong, are in our Kalshi versus sportsbooks analysis. Treat Kalshi as a different instrument rather than another sportsbook: no embedded vig, an explicit fee in its place, and a price worth checking on the bet you actually want rather than assuming either way.
What this page is not
It's not a recommendation. Best-price share is one factor among many, and app reliability, withdrawal speed, promo offers, or availability in your state may matter more on any given bet. Use it as one input into your own decision.