Consensus Odds Calculations
“Lines”
- The word “line” is used in this guide to refer to the spread or over-under value associated with a given set of odds
- For bet types without a line (ex: moneyline or yes/no bets), all odds are treated as if they have a line of 0
- Both sides of the bet will have mirrored line values
- ex: On a spread bet, if the fairSpread for the home side is 3, then the fairSpread for the away side will be -3
- ex: On an over-under bet, if the fairOverUnder for the over side is 5, then the fairOverUnder for the under side will also be 5
Fair Odds
Key Fields
fairSpreadorfairOverUnder: The most fair spread or over/under line (if applicable)fairOdds: The most fair odds for the given bet (associated with the line if applicable)fairOddsAvailable: Indicates if sufficient data was available to calculate fairOdds (and fairSpread/fairOverUnder)
Summary
We group odds by line, perform linear regression to find the most balanced line, calculate median odds across bookmakers for that line, and remove the juice to determine fair odds.
Calculation Process
- Group odds data for each Event + oddID by
bookmakerID+line - Include related bet types into the groupings if possible
- ex: moneyline bets are spread bets with a line of 0, so moneyline odds are included as such in spread calculations)
- Get the latest odds data from each group in cases where we have multiple values
- Combine these values into a single dataset
- We first attempt to do this only with odds that are available/open for betting at the given bookmaker
- If that doesn’t yield sufficient data, then all values will be considered (and
fairOddsAvailablewill be set to false)
- Perform linear regression to estimate the line with the most even odds
- Choose the fair line based on:
- Separate regressions for each side of the bet determine the line’s upper and lower bounds for the fair line
- Regression on the entire dataset gives us a target line value
- Only positive lines are considered for over-unders and non-zero lines are considered for spreads
- Line closest to target value with most data points is chosen
- Calculate median odds for each side across all bookmakers for the chosen line
- If no bookmakers offer odds at the fair line, then we use the odds returned by our regression calculation instead
- Remove the juice to get the fair odds value by:
- Calculating implied probability for each side
- Recalculating odds based on the combined implied probabilities of both sides
Book Odds
Key Fields
bookSpreadorbookOverUnder: Consensus/average spread or over/under line across bookmakersbookOdds: Consensus/average odds for the associated linebookOddsAvailable: Indicates if odds are available/open at at least one bookmaker
Summary
We identify the main line for each bookmaker, select the most common main line across all bookmakers, and calculate the median odds across bookmakers for that line.
Full Calculation Process
- Group odds data for each Event + oddID by
bookmakerID+line - Identify the main line for each group.
- If a bookmaker doesn’t distinguish between main and alt lines (and we can’t easily infer that based on data attributes which can vary by bookmaker), then…
- We identify the main line used most frequently by other bookmakers
- And identify this bookmaker’s main line as the line closest to that one
- Get the latest odds data from each group in cases where we have multiple values
- Combine these values into a single dataset
- We first attempt to do this only with odds that are available/open for betting at the given bookmaker
- If that doesn’t yield sufficient data, then all values will be considered
- Select the consensus book line by applying the following criteria:
- The line which has the most data points (ie: the largest number of bookmakers have identified this as their main line)
- If two have the same number of data points, then the line closest to the consensus fair line is selected
- Calculate consensus book odds as the median odds across all bookmakers for the selected line
