Home/ Guides FAQ/ Consensus

Market Consensus
Across 50+ Sportsbooks

Last updated 2026-06-08

Aggregate statistics from 50+ books in one call. Median, mean, min, max, and standard deviation for each outcome. See where books agree, where they disagree, and who the outliers are.

50

Books aggregated

Real-time

30s refresh

24

Sports covered

Get API Key — See Consensus
Sample — /intelligence/consensus
{
  "event": "Lakers vs Warriors",
  "market": "h2h",
  "outcomes": [
    {
      "name": "Lakers",
      "median_price": -142,
      "mean_price": -140,
      "min_price": -155,
      "max_price": -130,
      "std_dev": 5.8,
      "books_reporting": 47
    },
    {
      "name": "Warriors",
      "median_price": +120,
      "mean_price": +118,
      "min_price": +108,
      "max_price": +135,
      "std_dev": 6.2,
      "books_reporting": 47
    }
  ]
}

What Consensus Tells You

Median

The Market Center

The middle price across all 50+ books. This is the market's best estimate of the true line. If you're getting a price significantly better than median, you're likely on the right side of value.

Std Dev

Market Disagreement

High standard deviation means books disagree on pricing. Disagreement = opportunity. Low std dev means the market has converged — harder to find edges. Sort by highest std dev to find the most inefficient markets.

Min / Max

The Outliers

The widest spread between min and max tells you where to bet and where to fade. Max price = best available odds (bet here). Min price = worst odds (avoid this book). A 25-point min/max spread on a two-way market is highly unusual — investigate.

Integration

Pull consensus and find disagreement.

Python — Sort by Market Disagreement
import requests

response = requests.get(
    "https://api.bettingdataapi.com/intelligence/consensus",
    headers={"x-api-key": "YOUR_KEY"},
    params={"sport_key": "basketball_nba"}
)

events = response.json()["data"]

# Sort by highest disagreement (std_dev) — most edge potential
for event in sorted(events, key=lambda e: max(o["std_dev"] for o in e["outcomes"]), reverse=True)[:5]:
    print(f"{event['event']}")
    for o in event["outcomes"]:
        spread = o["max_price"] - o["min_price"]
        print(f"  {o['name']}: median {o['median_price']}, spread {spread}pt, σ={o['std_dev']}")

How Operators Use Consensus

Model Calibration

Use the 50-book consensus as a benchmark. If your model disagrees with consensus by more than 3%, investigate. Either your model sees something the market doesn't, or your model is wrong. Consensus keeps you calibrated.

Outlier Detection

Sort events by standard deviation. High σ = books disagree = edge opportunities. Focus your energy on events where the market hasn't converged. Low σ events are efficient — skip them.

Fair Odds Proxy

If you don't have a proprietary model, the 50-book median is your best proxy for true probability. Bet any book offering significantly better than median. Combined with /intelligence/fair-odds (vig-removed), you get two independent fair-price signals.

Related

We publish real, graded edge hits from the live feed every week.

Browse the edge case study archive →

See the Full Market Picture

Business plan includes consensus, fair odds, value detection, arbitrage signals, and Pinnacle-anchored edge scanning. Raw odds cover 20+ sports; edge detection runs on the 16 sports where Pinnacle anchors the feed, concentrated in the leagues in season.