NBA Prop Arbitrage and Middles Finder

How a pair is formed

The scan takes the best Over and the best Under across books at one exact number. It is symmetric: no book is preferred, and the two legs are chosen by price alone.

Legs at exchange and prediction market venues are kept out of pairing entirely. Their prices carry commission or per-trade fees, plus spread and depth, which the posted number does not state -- so a margin computed as though those legs were free would be a false claim on the one screen that invites staking both sides. Their prices still render on the board and in line movement; only the margin claim needs the netting.

A book we have never classified stays IN. The exclusion runs on a known venue role, never on a guess about an unfamiliar name.

Decimal prices above 99 are excluded, because a price that long is indistinguishable from an American one to the shared detector and would be reinterpreted as a bet nobody offered.

The widest margin is usually the worst row

A fat margin is not a better opportunity. It is usually evidence that one book is mispriced against its peers, which is the price most likely to be voided, re-graded or pulled before the second leg lands -- and the pattern a retail risk desk acts on hardest.

So each leg is checked against the other books quoting that same number, and a leg sitting 3 percentage points or more of de-vigged probability away from those peers is flagged. The default ordering is outlier_last: flagged rows are demoted rather than clean rows promoted, because there is no reason to rank one clean row above another beyond the margin it already shows.

The peer set deliberately excludes both legs of the opportunity. Two books are needed for an arbitrage to exist, so a consensus that included them would be the two legs comparing against themselves.

An unchecked leg is not demoted. Ranking a leg nobody could check alongside one that was checked and found out of line would state a finding we do not have.

When there is nothing to check a price against

A row whose number was quoted by nobody except its own two legs carries no verdict in either direction, and says so in the payload rather than reading as a clean row:

  • No reference set beyond these two legs -- no other book quoted this exact number, so there is nothing to check either price against.

Staleness is measured per leg

Each leg reports how many minutes its book had been sitting on that price when the capture was taken. That is not the age of the snapshot, which is the same number for every row: the two legs of one opportunity can differ by a long way, and a book that last moved forty minutes ago is a different execution risk from one that moved two minutes ago in the same snapshot.

The two ages add. Total staleness is the leg's own figure plus the snapshot's, and both are served separately so the sum can be done and checked.

A price stamped after our own capture is not an age but a clock we cannot reconcile, so it reports unknown rather than zero.

What every row discloses

  • Sportsbooks limit and close accounts that arb or middle consistently. Treat these as one-off opportunities, not a strategy you can run at size.
  • These are the prices the books had published at the capture time shown. Verify both legs at the book before staking -- lines move between polls, and a leg that moves leaves you with a one-sided bet, not a locked margin.
  • This margin is arithmetic on the posted prices and is gross of any book fee or commission. Venue books that charge one are left out of the scan entirely rather than reported at a margin they do not pay.

Availability and price

This tool is part of the Market tier at $4.99/month. Goes live in October.

This page describes how the tool works. It carries no price, no fair-value figure and no margin: every number on it is a fixed threshold or a count read out of the product's own configuration.

Loading Net Prophet...