No exchange appears in our stored NFL price history. These 13 sportsbooks are every book that stored an NFL quote in the last 24 hours, from DraftKings at 44 of 49 markets down to Sportsbetting.ag at 1.
265,334 player-prop quotes across 46 market types · 15,428 game-line snapshots across 3 market kinds, last 24 hours · 9 exchange platforms are registered and none of them stored a quote in that window · more books than these price NFL live; this room counts what we keep, not what we scan · as of 7:10 AM ET
The exchange feed is scanned and refused at the door, not missing from the market.
We buy 80,000 exchange-scan credits a day for NFL, and those prices do reach you — on the arbitrage and low-hold boards, which read the live scan. None of them reaches the price history this room counts, because the feed_source check on odds_history still lists only the three sportsbook feeds, so an exchange row is rejected before it can be written. The index that would serve those rows already exists. The one change that opens the door is migrations/20260803_exchange_dfs_price_storage.sql, and it is held back on purpose: applied once before the exchange writer could resolve a game id, it filed prices under a second set of ids and every game rendered twice. It lands when that writer is deployed, not before.
An exchange lets you take the other side of a bet from another person rather than from a book, so the price is usually better and the hold is usually smaller. None of these has written a NFL quote into the price history this room reads — so there is nothing stored here to set a sportsbook against, and this room says so rather than showing you the sportsbook board a second time. Where an exchange does price a live NFL market it reaches you on the arbitrage and low-hold boards, which read the live scan rather than the store. The moment one lands in the history it appears at the top of the floor above.