Skip to main content

Overview

Every value bet in /api/value-bets passes through 5 mathematical layers before reaching you. This page explains each one in plain language, with formulas and worked examples. The fields returned by the API map directly to these layers:

Step 1 — Implied probability

Every decimal odds price implies a win probability:
Examples:
  • 2.001 / 2.00 = 0.500 (50%)
  • 3.501 / 3.50 = 0.286 (28.6%)
  • 1.701 / 1.70 = 0.588 (58.8%)
If you sum implied probabilities across all outcomes in a market, the total is always above 100% — the excess is the bookmaker’s margin.

Step 2 — Raw Pinnacle TRJ (devig input only)

For a market with N outcomes, Raw TRJ is the sum of all implied probabilities:
Pinnacle’s natural TRJ ranges:
  • 2-way markets (spread, total, tennis): ~1.02–1.05
  • 3-way markets (football 1X2): ~1.05–1.10
Raw TRJ is a devig input — it feeds into the fair-odds formula below. It is not the quality gate shown as payout_rate in the API. See Step 5 for the distinction.

Step 3 — Fair odds (devigging)

Devigging removes Pinnacle’s margin to produce the true consensus probability for each outcome. Formula for 2-way markets (spread, total, tennis moneyline, BTTS):
Formula for 3-way markets (football moneyline, European handicap):

Worked example — 2-way total

Worked example — 3-way football

The fair odds represent the bet’s true consensus price — what Pinnacle would offer if they had zero margin.

Step 4 — Fair odds floor (safety buffer)

Before EV is computed, a small safety buffer is applied to the fair odds to prevent noise:
Why this exists: Tiny Pinnacle pricing fluctuations can create apparent EV at the margin. The floor ensures only bets with a genuine edge clear the minimum. Effect: For standard markets (spread, total, moneyline), a bookmaker needs roughly +2% raw edge over devigged Pinnacle to show ev_pct ≥ 1%. For player props, it’s roughly +5% raw edge. This explains why many bets that look close don’t appear in the feed.

Step 5 — EV% calculation

Once fair odds are established (with floor applied):

Worked example

What ev_pct means in plain English:
A +5.0% EV bet means that if you placed this exact bet repeatedly under the same conditions, you’d expect to profit an average of 5per5 per 100 wagered over the long run.
Short-term variance is high — a single bet can win or lose. EV only plays out over large sample sizes. The edge comes from the bookmaker mispricing one outcome relative to Pinnacle’s efficient market.

Step 6 — Payout rate (quality gate)

payout_rate in the API response is not the raw Pinnacle TRJ. It is a distinct quality metric: the TRJ of the market with the bookmaker’s odds substituted in for its own Pinnacle side, keeping raw Pinnacle odds for all other sides.
This measures whether the bookmaker is pricing its side generously relative to Pinnacle’s raw pricing on every other side. A value bet should produce a market with total payout close to 100% when you combine the bookmaker price with Pinnacle’s opposing prices.

Worked example — 2-way

Worked example — 3-way (fails)

In the second case, even though the bookmaker offers Home at 2.40 vs Pinnacle’s fair ~2.30, the raw Pinnacle opposing prices are so favorable that the combined market payout is only 94.7%. This indicates the bookmaker’s price isn’t genuinely better than the Pinnacle market when raw opposing odds are considered.

Quality filters applied before the API responds

All results from /api/value-bets have already passed every filter. Nothing is returned that fails any gate:

Why bets with “3% EV” sometimes don’t appear

The fair odds floor (+1% for all markets, +4% for props) means:
  • A bookmaker offering 3% raw edge over raw devigged Pinnacle on a moneyline needs ~2% net after the floor → passes EV_MIN=1%
  • A bookmaker offering 3% raw edge on a player prop needs ~5% net after the prop floor → does not pass EV_MIN=1%
Additionally, payout_rate < 99% can reject a bet even when EV% is positive — this happens when the bookmaker’s “edge” disappears once you price it against raw (non-devigged) opposing Pinnacle odds.

Formula reference

Value Bets Reference

Full endpoint docs with all response fields.

Best Practices

Polling, freshness checks, and production patterns.