Home / Guides FAQ / Value Bet Detection

Value Bet Detection
+EV Across 50 Books

When a sportsbook offers odds better than the vig-removed market consensus, that's a value bet. We compute the fair price from 50 books including Pinnacle, then flag every book that's offering more than they should.

50

Books in consensus

Vig-free

Fair odds baseline

2–5%

Typical value range

Get API Key — Detect Value Bets
Sample — /intelligence/value
{
  "sport_key": "basketball_nba",
  "event": "76ers vs Bucks",
  "market": "h2h",
  "outcome": "76ers",
  "fair_probability": 0.428,
  "fair_price_american": +134,
  "offered_price": +155,
  "offered_book": "betrivers",
  "edge_pct": 3.4,
  "method": "vs_market_average",
  "method_note": "Vig-removed across 50 books including Pinnacle",
  "detected_at": "2026-04-30T19:08:33Z"
}

How Value Detection Works

01

Fair Price Computed

Odds from 50 books (including Pinnacle and EU sharp books) are aggregated. Vig is removed to produce the true market probability for each outcome. This is your baseline — the price the efficient market agrees on.

02

Each Book Compared

Every individual book's offered price is compared against the vig-removed fair price. When the offered odds imply a lower probability than fair (book is giving too much), that's detected value.

03

Value Flagged

GET /intelligence/value returns all detected +EV opportunities with fair probability, offered price, edge percentage, and the book offering it. Filter for your minimum edge threshold.

Reading a Value Bet

The math behind a detected value opportunity.

NBA — 76ers vs Bucks — Moneyline

Fair Probability

42.8%

Vig-removed consensus

Fair Price

+134

What it should be

BetRivers Offering

+155

Better than fair

Your Edge

+3.4%

Above fair value

What happened: The 50-book consensus (vig-removed) says 76ers have a 42.8% chance of winning. That maps to a fair price of +134. BetRivers is offering +155 — implying only 39.2%. They're underestimating the 76ers by 3.4 percentage points.

What you do: Bet 76ers +155 at BetRivers. You're getting paid as if they have a 39.2% chance when the market says 42.8%. Over hundreds of similar bets, this 3.4% edge compounds into consistent profit.

Value Betting vs. Arbitrage

Value Betting Arbitrage
Risk per bet You can lose individual bets (variance) Risk-free (all outcomes covered)
Frequency 10–50+ opportunities per day 1–5 per day (rare, fast-closing)
Edge per bet 2–5% typical 0.5–3% typical
Capital required Moderate (one-sided bets) High (capital on both sides)
Bets to confirm edge 500–1000 bets Immediate (guaranteed per trade)
Account longevity Longer (mixed win/loss pattern) Shorter (obvious to books)

Most professional bettors use both. Arbitrage for risk-free capital growth, value betting for higher-volume edge exploitation. TheOddsAPI provides both via /intelligence/arbitrage and /intelligence/value.

Integration

Pull value bets and filter by your minimum edge threshold.

Python
import requests

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

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

# Filter for 3%+ edge — your threshold for action
for vb in value_bets:
    if vb["edge_pct"] >= 3.0:
        print(f"{vb['event']}{vb['outcome']}")
        print(f"  Fair: {vb['fair_price_american']} | Offered: {vb['offered_price']} @ {vb['offered_book']}")
        print(f"  Edge: +{vb['edge_pct']}%")
JavaScript
const res = await fetch(
  "https://api.theoddsapi.com/v4/intelligence/value?sport_key=basketball_nba",
  { headers: { "x-api-key": "YOUR_KEY" } }
);

const { data: valueBets } = await res.json();

// Surface 3%+ edges
valueBets
  .filter(vb => vb.edge_pct >= 3.0)
  .forEach(vb => console.log(
    `${vb.event}: ${vb.outcome} +${vb.edge_pct}% @ ${vb.offered_book} (${vb.offered_price} vs fair ${vb.fair_price_american})`
  ));

Bankroll and Staking

Value betting is variance-heavy. Individual bets lose regularly. Proper staking turns a mathematical edge into actual profit.

Kelly Criterion

Optimal stake = (edge / odds). A 3% edge at +150 suggests staking 2% of bankroll. Full Kelly maximizes growth but produces large swings.

Most operators use 25–50% Kelly — slower growth but dramatically reduced drawdown risk. A 30% drawdown on full Kelly becomes 8–15% on quarter Kelly.

Flat Staking

Fixed 1–2% of bankroll per bet regardless of edge size. Simpler, more conservative, easier to track.

Best for operators still validating their edge. Once you've confirmed +CLV over 500+ bets, graduate to fractional Kelly for faster compounding.

Expected Drawdowns

Even with a 3% edge, expect losing streaks of 10–15 bets. At 1% staking, that's a 10–15% drawdown — completely normal. The edge reveals itself over 200+ bets. If you're checking results after 20 bets, you're looking at noise, not signal. Minimum viable sample: 500 bets before concluding anything.

Where Value Appears Most

NBA & NHL

High game volume (82-game seasons) means soft books adjust lines more slowly. Daily slates of 5–15 games create dozens of value opportunities per night. Best sport for volume-based value strategies.

MLB

162-game season with daily slates of 10–15 games. Pitcher changes, weather, and lineup decisions create inefficiency that soft books are slow to price. Historically the most profitable sport for value bettors at scale.

European Soccer (EPL, La Liga, Bundesliga)

Three-way markets (home/draw/away) create more pricing disagreement than two-way markets. Geographic differences between UK, EU, and US books mean value surfaces from regional information asymmetry. International books are included in TheOddsAPI's consensus.

Related

Start Detecting Value

Business plan includes value detection, fair odds, consensus, edge detection, and arbitrage — the full intelligence layer across 24 sports.