Skip to content

VALUEODDSAPI / DEVELOPER RESOURCES

How to find value bets: a step-by-step method

Value bets are found by comparison, not by prediction. This guide walks through the six steps from raw odds to a bet you can trust, shows where value usually appears and ends with a small Python scanner.

Published by ValueOddsAPI · 3 November 2026

Chart of a fair price dropping from 2.12 to 2.00 after news while a soft bookmaker stays at 2.10 for 75 seconds, creating a +5.0% EV value window
Illustrative example: the sharp price reacts to news within seconds; the soft price lags, and that gap is the value bet.

In 30 seconds

What you need before you start

Finding value bets is a comparison exercise. You need five things, and none of them is a gut feeling about who will win:

A fair reference: a price you trust to be close to the true probability, usually from a sharp bookmaker. Soft bookmakers: the bookmakers where you can actually place bets. Fresh odds: prices for both, captured at the same moment. A threshold: the minimum expected value you will act on. A log: a record of every bet, so you can check later whether the method works.

If the term itself is new to you, start with What is value betting? and come back.

Step 1: pick a fair reference

Every value bet is measured against a fair price, so the reference is the most important choice you make.

Common fair price references
ReferenceWhy it is usedStrengthWatch out for
PinnacleLow margins, high limits and fast reactions to information.StrongCoverage is thinner in small leagues and niche markets.
A betting exchangePrices are set by other bettors, not a trader.Good in liquid marketsCommission, and thin markets where the back and lay prices are far apart.
Consensus of many bookmakersThe average of many margin-free prices.MediumSlow soft bookmakers pull the average towards their own errors.

Read more about using Pinnacle as a reference in Pinnacle odds API, and see the full list in Sharp vs soft bookmakers.

Step 2: match exactly the same bet

Checklist comparing a sharp reference with a soft bookmaker on event, line, period, settlement, freshness and market status
Two prices are only comparable when every row matches.

Most false value bets come from comparing two bets that only look the same. Over 2.5 and Over 2.75 goals are different bets, and so are full time and first half. Player markets can have different rules for a player who does not start.

Match on event, market, period, line and settlement rules, and only use a reference market that is complete and open. If no exact match exists, skip the bet instead of using the closest one.

Step 3: remove the margin from the reference

Even a sharp price contains a margin. If Over and Under both cost 1.95, the implied probabilities are 51.3% each and add up to 102.6%. Divide each one by 1.026 and you get the fair probability: 50.0% each, or a fair price of 2.00.

That proportional method is the most common starting point. Other methods, such as power or Shin, shift more of the margin onto outsiders. The differences and the code are in How to remove the bookmaker margin.

Step 4: calculate the expected value of every price

Now compare each soft bookmaker with the fair probability: EV = odds × fair probability − 1. With a fair price of 2.00 (50%):

Expected value of three soft prices against a fair price of 2.00
Soft priceCalculationExpected valueVerdict
1.951.95 × 0.500 − 1−2.5%No value
2.032.03 × 0.500 − 1+1.5%Below a +2% threshold
2.102.10 × 0.500 − 1+5.0%Value bet

More worked examples in How to calculate expected value.

Step 5: filter before you bet

Filters that remove false or unusable value bets
FilterA common starting pointWhy
Minimum EV+1% to +3%Leaves room for small errors in the fair price.
Maximum price ageA few seconds pre-match, less in-playOld prices are often gone by the time you try to bet.
Odds rangeFor example 1.50 to 5.00Fair prices on long shots are less certain, and results swing more.
Market statusOpen, complete reference marketA suspended or partial market cannot be de-margined correctly.
Stake ruleFlat stake or a fraction of KellyDecided in advance, so one bet never decides your month.

Step 6: log every bet and check closing line value

Record the price you took, the fair price at that moment, the time and the stake. After the event, add the closing price. If you consistently beat the closing price, your method is finding real value, even in a month where results are poor. Profit and loss take thousands of bets to say the same thing.

How to calculate it, with code: Closing line value (CLV).

Where value bets usually show up

Value bets are not spread evenly. They appear where soft bookmakers are slow, and disappear when they catch up:

Situations where value bets tend to appear
SituationWhy value appearsHow long it lasts
After newsLine-ups, injuries or weather move the sharp price first.Seconds to minutes
Early pricesNew markets are opened before much money has corrected them.Minutes to hours
Smaller leaguesBookmakers spend less trading effort on them.Varies
Secondary marketsCorners, cards and player props get less attention than 1X2.Varies
In-playPrices change constantly and some bookmakers lag.Seconds

Main markets in top leagues close to kick-off are the most efficient. Value there is rare and small.

Finding value bets in football

Football is the most common sport for value betting because almost every bookmaker covers it and the sharp reference markets are deep. A practical order to work in:

Totals and Asian handicaps in the top leagues have the most reliable sharp prices, so the fair price is trustworthy. 1X2 works the same way but needs a three-way margin removal. Corners, cards and player props have more value, but weaker references and more settlement differences between bookmakers, so check step 2 carefully.

Three ways to do it

Manual, value bet finder or odds API
By handValue bet finder toolOdds API + your own code
How it worksCompare odds sites and calculate in a spreadsheetA subscription service lists bets for youYou fetch odds and apply your own rules
SpeedSlowFastFast
Control over the methodFullLittleFull
ScaleA few matchesWhat the tool coversEvery bookmaker and market you subscribe to
Best forLearning the methodIndividual bettorsProducts, models and serious volume

A minimal value bet scanner in Python

This script does steps 2 to 5 against the ValueOddsAPI response format: each row has the bookmaker’s original price, the margin-free fair probability and the age of the observation. Use the bookmaker IDs your key is entitled to.

import os
import requests

BASE = os.environ["VALUEODDS_BASE_URL"]
KEY = os.environ["VALUEODDS_API_KEY"]
REFERENCE = "pinnacle"                 # the sharp price you trust
SOFT = ["bet365", "unibet", "betano"]  # the prices you can take
MIN_EV = 0.02                          # flag +2% or better
MAX_AGE = 10                           # seconds; older prices are skipped

def fetch(bookmakers):
    r = requests.get(f"{BASE}/v1/odds",
                     params={"phase": "prematch", "bookmakers": ",".join(bookmakers)},
                     headers={"Authorization": f"Bearer {KEY}"}, timeout=10)
    r.raise_for_status()
    return r.json()["data"]

def same_bet(row, outcome):
    m = row["market"]
    return (row["event_id"], m["id"], m["period"], m["line"], m["settlement"], outcome["id"])

rows = [r for r in fetch([REFERENCE, *SOFT])
        if r["market"]["status"] == "open" and r["data_age_seconds"] <= MAX_AGE]

# Step 3: fair probabilities from the reference (the API has removed the margin)
fair = {same_bet(r, o): o["fair_probability"]
        for r in rows if r["bookmaker"] == REFERENCE and r["market"]["fair_status"] == "available"
        for o in r["market"]["outcomes"]}

# Steps 4-5: expected value for every soft price, filtered by threshold
for r in rows:
    if r["bookmaker"] == REFERENCE:
        continue
    for o in r["market"]["outcomes"]:
        p = fair.get(same_bet(r, o))
        if p is None:
            continue                   # no matching reference: skip, never guess
        ev = o["bookmaker_odds"] * p - 1
        if ev >= MIN_EV:
            print(f'{r["event_id"]} {r["market"]["id"]} {o["id"]} @ {r["bookmaker"]}: '
                  f'{o["bookmaker_odds"]:.2f} vs fair {1 / p:.2f} -> EV {ev:+.1%}')

In production you would run it on a WebSocket stream instead of polling, store every flagged bet, and add the closing price after kick-off. See the integration guide and the value betting API.

Frequently asked questions

How do you identify a value bet?

Find a fair probability for the outcome, usually by removing the margin from a sharp bookmaker’s price, and compare it with the odds on offer. If odds × fair probability − 1 is positive, the bet has value.

How do I calculate value bets?

Multiply the decimal odds by the fair probability and subtract 1. With odds of 2.10 and a fair probability of 50%, 2.10 × 0.50 − 1 = +5%.

What is a value bet finder?

A tool that compares many bookmakers with a fair reference and lists the prices above it. You can use a ready-made service, or build your own with an odds API and the steps in this guide.

Do I need a Pinnacle account to use it as a reference?

No. You only need its prices. Many bettors use Pinnacle as the fair reference and place their bets with other bookmakers.

Which sport is best for finding value bets?

Football is the most common, because coverage is wide and the sharp markets are deep. Tennis, basketball and ice hockey work too. What matters most is a reliable reference for the exact market.

Can you find value bets live?

Yes, but it is harder. Prices change every few seconds, so both the reference and the soft price must be very fresh, and bookmakers often delay in-play bets.

Related reading

ValueOddsAPI provides odds data, not betting advice. Betting involves risk of loss and is for adults (18+) only. If gambling stops being fun, contact your local support service, such as StopSpillet in Denmark.

Get the data into your product

Solo €899/month (personal use), Pro €1,800, Scale €4,000, Elite €8,000 and Enterprise from €13,000/month, excluding VAT. Coverage and usage rights are confirmed before activation. Missing a bookmaker? We add the sources you need, scoped and priced per project.