Skip to content
OddsRelay

How to price a bet with odds data

Pricing a bet is four steps: implied probability, remove the overround, derive a fair price, then compare across books. Sharp books and exchanges give the best estimate of the true probability.

James6 min read

To price a bet from odds data, convert each price to an implied probability, remove the bookmaker's margin to get a fair probability, then compare across books to see whether a price is fair or generous. The best estimate of the true probability comes from sharp books and exchanges, because their prices carry the least margin and the most informed money. Everything below is that method, step by step, with the fields a feed gives you to run it.

The important caveat first: a fair price is an estimate drawn from the market, not a prediction of the result. The market can be wrong, and a single event still resolves one way. What you are computing is a considered reference point, not a certainty.

What does it mean to price a bet?

Pricing a bet means working out the probability a fair market implies for an outcome, then reading that probability back as odds. A bookmaker's posted price already encodes a probability, but with margin baked in. Your job is to strip the margin out and compare the result against the sharpest reference you have. If a book's price sits above your fair estimate, it is generous on that selection; if below, it is short.

This is the engine under both value betting and matched betting. You are never pricing in a vacuum: you are pricing one book's number against the wider market, which is why a broad feed matters more than any single clever formula.

How do you turn a price into a probability?

Divide one by the decimal price. A decimal price of 2.00 implies a probability of 1 / 2.00 = 0.50, or 50%. A price of 4.00 implies 1 / 4.00 = 0.25. That is the whole of the implied-probability step, and it works the same for every selection in a market. We cover the format details and edge cases in decimal odds and implied probability.

The catch appears when you add up every selection's implied probability in a market. In a fair world they would sum to exactly 1.00, or 100%. They never do. A bookmaker's prices sum to more than 100%, and that surplus is the margin.

What is the overround, and why remove it?

The overround is how much a market's implied probabilities exceed 100%. If the three prices in a match-odds market imply 40%, 33% and 32%, they sum to 105%: a 5% overround. That extra 5% is the bookmaker's built-in edge, and it is exactly what makes the raw implied probability an unfair estimate. To price honestly you have to take it out. We go deeper on where it comes from in the overround and margin.

The simplest way to remove it is proportional normalisation: divide each selection's implied probability by the market's total. Take the 40% selection in that 105% book: 0.40 / 1.05 = 0.381, a fair probability of about 38.1%. Do the same for every selection and the market now sums to 100%. More refined methods weight the favourite and the longshots differently, but proportional normalisation is the honest baseline and the right place to start.

How do you derive a fair price?

Invert the fair probability: one divided by it. The 38.1% fair probability from above becomes a fair price of 1 / 0.381 = 2.62. That is the price a zero-margin book would offer on that selection, given this market's view. Now you have a like-for-like number to compare against any bookmaker's posted price.

The four steps, in order:

  1. Implied probability: 1 / decimal_price for each selection.
  2. Remove the overround: divide each by the market total so the book sums to 100%.
  3. Derive the fair price: invert the fair probability, 1 / fair_probability.
  4. Compare: hold the posted price against the fair price to judge fair, generous or short.

Why is a sharp book or exchange the reference?

Because their prices are the closest thing to the true probability the market can produce. An exchange like Betfair, Smarkets or Matchbook sets prices from money laid on both sides, so its margin is thin and its numbers absorb informed opinion fast. A sharp bookmaker behaves similarly. When you normalise an exchange market you are left with a fair probability that reflects a lot of money, which is a far better estimate than one soft book in isolation.

This is why the comparison step needs breadth. Pricing one book against itself only removes that book's margin. Pricing it against the exchange lay price tells you whether the number is genuinely generous relative to the sharpest available view. That relationship, between a bookmaker back price and an exchange lay price, is the heart of both matched betting and value betting vs arbitrage.

What does the data look like?

Here is a match-odds market with each price shown alongside its raw implied probability. The three sum to more than 100%, which is the overround you normalise away (illustrative, not live data):

One market, prices and implied probabilities · illustrative
{
  "event": "Arsenal vs Chelsea",
  "market": "match_odds",
  "selections": [
    { "selection": "Arsenal", "odds": 2.50, "implied": 0.400 },
    { "selection": "Draw",    "odds": 3.40, "implied": 0.294 },
    { "selection": "Chelsea", "odds": 2.90, "implied": 0.345 }
  ],
  "implied_total": 1.039   // 3.9% overround — divide each implied by this to normalise
}

A matched feed carries the comparison already done for you. Each row pairs a bookmaker back price with the current exchange lay price for the same selection, and attaches a rating and a qualifying_loss, so the fair-versus-generous read is a field rather than a calculation you run per event:

The same selection, matched against an exchange · illustrative
{
  "event": "Arsenal vs Chelsea",
  "market": "match_odds",
  "selection": "Arsenal",
  "back": { "bookmaker": "bet365", "odds": 2.50 },
  "lay":  { "exchange": "betfair", "odds": 2.54, "liquidity": 1620 },
  "rating": 98.4,
  "qualifying_loss": -0.14
  // ... region, feed_type and freshness fields elided
}

The rating expresses how close the back price sits to the exchange lay price: near 100 means the book is pricing almost level with the sharpest available view, which is the generous end. The qualifying_loss is the small cost of placing back and lay together. Both fields exist because the pricing comparison is done before you receive the row.

Why does coverage decide the quality of the estimate?

Your fair price is only as good as the market you compute it from. A thin sample of soft books gives a noisy estimate; a wide set anchored on exchange prices gives a stable one. To price well you want many books on the same selection at the same moment, including the ones that are hardest to cover.

That is what a broad feed provides: 60+ UK books with bet365 included, each back price paired against three exchanges (Betfair, Smarkets and Matchbook) for the lay side, with coverage built to extend into the domestic South African and Nigerian books the big aggregators skip. The prices arrive on pre-match polling on roughly a few-second cycle, so the market you normalise is current rather than an hour old. You can see what is live on the coverage dashboard.

The short answer

Pricing a bet is four steps: implied probability from 1 / price, remove the overround so the market sums to 100%, invert the fair probability for a fair price, then compare against the sharpest reference you have. Exchanges and sharp books give the best estimate of the true probability, so the breadth and freshness of your data decide the quality of the answer. If you would rather compute against a market that already pairs each book with exchange lay prices, a free trial gives you the full UK feed, bet365 included, and you can check the coverage live before you commit. It powers a leading UK matched-betting platform today.

Fundamentals

Written by

James

Founder, OddsRelay

James is the founder of OddsRelay — the odds-data feed behind matched betting, arbitrage and odds-comparison products: 60+ UK bookmakers with bet365 included, matched against exchange lay prices and delivered as one clean, documented API. He writes here about how that data layer actually behaves — coverage, matching, freshness and the trade-offs — from the side that builds and runs it. The same feed powers a leading UK matched-betting platform today.

Part of the Fundamentals cluster

What is an odds API? A 2026 guide for builders

18+ · Data product for licensed operators. Please gamble responsibly.