# Consensus Odds - Fair and Book Calculations
URL: https://sockodds.com/docs/info/consensus-odds/

# Consensus Odds - Fair and Book Calculations [#consensus-odds---fair-and-book-calculations]

## "Lines" [#lines]

- "Line" here means the spread or over/under value associated with a set of odds.
- For bet types without a line (head to head, yes/no) every price is treated as having a line of 0.
- Both sides of a bet carry mirrored line values: home +3 ↔ away −3; over 165.5 ↔ under 165.5.

## Fair odds [#fair-odds]

### Key fields [#key-fields]

- `fairSpread` or `fairOverUnder`: the fairest line (if applicable)
- `fairOdds`: the fair price for the given side at that line
- `fairOddsAvailable`: whether sufficient sharp data existed to calculate them

### Summary [#summary]

The fair price is derived from the exchange and sharp-book prices in the feed — the Betfair Exchange, Pinnacle, ProphetX, and Kalshi and Polymarket where they price the fixture — with the margin removed so the implied probabilities of the sides sum to one. It is never estimated from soft-book prices alone: where the sharp sources do not price a market, `fairOdds` is `null` and `fairOddsAvailable` is false. On the Lite plan fair fields are always null.

### Calculation process [#calculation-process]

1. **Group odds** for each event + oddID by `bookmakerID` + line.
2. **Keep the sharp sources** (exchanges, Pinnacle, prediction markets) that are currently open for the market.
3. **Choose the fair line**: the line where the sharp sources' two sides are closest to balanced.
4. **Take the consensus** across those sources at that line.
5. **Remove the juice**: convert each side to implied probability, normalise so they sum to one, convert back to American.

## Book odds [#book-odds]

### Key fields [#key-fields]

- `bookSpread` or `bookOverUnder`: consensus main line across bookmakers
- `bookOdds`: consensus price for that line
- `bookOddsAvailable`: whether the side is open at at least one bookmaker

### Summary [#summary]

We identify each bookmaker's main line, select the most common main line across all bookmakers, and take the median price across bookmakers for that line.

### Full calculation process [#full-calculation-process]

1. **Group odds** for each event + oddID by `bookmakerID` + line.
2. **Identify the main line** for each book; where a book doesn't distinguish main from alt, the line closest to the other books' main line is used.
3. **Take the latest price** from each group.
4. **Combine**, preferring prices that are open for betting.
5. **Select the consensus book line**: the line most books call their main line; ties go to the line closest to the fair line.
6. **Consensus book odds** = the median price across bookmakers for that line.

> Need help?[FAQ](https://sockodds.com/docs/faq/) · [Email](mailto:api@sockodds.com) · [Contact](https://sockodds.com/contact-us/)
