# How we compare odds

## Sources

We read the public odds that bookmakers show on their websites. Prematch lines are refreshed about every 5 minutes, live lines about every 20 seconds. A bookmaker whose data is older than 20 minutes (prematch) or 60 seconds (live) is hidden until fresh data arrives.

## Markets

- Result: 1X2 in regular time for football and ice hockey; the match winner (including overtime) for basketball, tennis, volleyball and MMA; the money line (including extra innings) for baseball; the match winner (including a super over) for cricket, where the draws of multi-day matches are not compared; the match winner for esports; the money line (including overtime) for American football.
- Total: every line that at least two bookmakers offer, compared line by line (only bookmakers offering that exact line). The line most bookmakers treat as their main one is selected first.
- Handicap: the same rule; the line is the home team's handicap.
- Baseball totals and handicaps count runs, American football's count points including overtime; esports totals and handicaps count maps, never rounds or kills.

## Matching events

Bookmakers spell team names differently. We normalise names (accents, club prefixes, abbreviations), require markers such as women, youth or reserve teams to agree, and compare start times. Uncertain matches are reviewed by hand instead of being merged automatically.

## Checks on the data

- A feed that suddenly lists far fewer events than usual, or prices outside a plausible range, is not published.
- Live prices that stop moving for several minutes are treated as frozen.
- Once at least three bookmakers price an outcome, a price far above their consensus is left out of the "best" figures: it is usually a stale line or a mismatched event.

## Betting exchanges

Betfair is a betting exchange: its prices are the best offers of other customers to back an outcome, shown only when enough money is offered. The exchange takes a commission of 5% on net winnings, so we show and compare its prices after commission: a back at 3.00 counts as 2.90. Its public feed is also delayed by a few seconds to minutes.

Kalshi is a prediction-market exchange regulated in the US. Each outcome is a contract that pays $1 if it happens; its price is the cheapest offer to buy it, shown only when at least a few dollars are offered. Kalshi charges a fee on each purchase, 7% of price × (1 − price) per contract (half that on some markets), so we show its prices after the fee: an offer at 31¢ counts as 3.08 instead of 3.23. We do not compare Kalshi's hockey markets, because they include overtime.

Polymarket is a prediction-market exchange too: each outcome is a share that pays $1 if it happens, and its price is the cheapest offer to buy it. Its taker fee on sports is 5% of price × (1 − price) per share, so we show its prices after the fee: an offer at 50¢ counts as 1.95 instead of 2.00. As with Kalshi, we do not compare its hockey markets, which include overtime.

## Price movement

An arrow next to a price shows that the bookmaker changed it recently: up or down from the price it showed before (in the last 6 hours prematch, the last 3 minutes live). Hover over it, or read the Markdown version, to see the earlier price.

## Fair odds

Fair odds are Pinnacle's prematch prices with its margin removed: its implied probabilities are scaled so that they add up to 100%. Pinnacle takes bets from professional bettors and keeps a low margin, so its prices are a common reference for the true chance of an outcome. "vs fair" shows how far the best price is above (+) or below (−) the fair price. It is an estimate, not a promise of profit. We do not show fair odds for live events, and we do not compare Pinnacle live: its public live prices can be up to 15 minutes old.

## Margin and payout

A bookmaker's margin is the sum of the implied probabilities of all outcomes minus 100%. The payout at best odds uses the best price of each outcome across bookmakers.

## Bookmaker statistics

The [Bookmakers](https://odds.observer/bookmakers) page measures what this site shows, sampled every few seconds and counted by UTC day for 30 days. Coverage is the share of the events on the site a bookmaker lists, prematch and live apart. "Best" is the share of time its price was the best for an outcome, counted over every outcome at least two bookmakers price, ties included; "sole best" counts only the time no other bookmaker matched it. Prices far above the consensus are left out of the best, as on the event pages. The margin is its average margin on the main market, weighted by time. Uptime is the share of time it had a fresh feed on the site.
