Best price across books
How Unitley finds the best price at FanDuel's line across eight US sportsbooks, how old each price is, and how parlays are priced.
Different sportsbooks pay different prices for the same bet. Line shopping means taking the best one you can. Unitley shows FanDuel's line for every market, and next to each outcome it shows the best price for that same bet across the books it tracks.
The books
Every price comes from The Odds API. Unitley tracks eight US sportsbooks for the NFL:
| Book | Role |
|---|---|
| FanDuel | The line Unitley shows |
| BetMGM | Best price and no-vig consensus |
| DraftKings | Best price and no-vig consensus |
| BetRivers | Best price and no-vig consensus |
| ESPN BET | Best price and no-vig consensus |
| Hard Rock Bet | Best price and no-vig consensus |
| Bally Bet | Best price and no-vig consensus |
| betPARX | Best price and no-vig consensus |
The same books are fetched for moneylines, spreads, totals and player props. Offshore books are left out.
How the best price is picked
- Only at FanDuel's line. A book counts only if it offers the same bet: the same outcome at the same point. A book hanging −3.5 where FanDuel hangs −3 is offering a different bet, so its price is not compared.
- The best price pays the most. The best price is the one with the highest decimal price, which means the biggest payout for the same stake.
- A tie stays with FanDuel. Another book takes the best price only when it pays strictly more.
- Each outcome on its own. The best price on one side can come from a different book than the best price on the other.
- FanDuel can be the best. When no other book pays more, the best price is FanDuel's own.
The best price is reported with the book's name. The tools don't return every book's price, only FanDuel's line and the derived values: the best price, the no-vig consensus and the EV. The Odds API's terms don't allow Unitley to pass its prices on through Unitley's own API.
In the console, the Slate shows the best price and the book's name on each game card and in each game's odds table. In get_game_odds and get_player_props, each outcome has a best object with bookmaker, bookmakerName and americanOdds.
Check the price at your book
A best price can be at a book you can't use, or one that isn't legal where you are. Every get_game_odds and get_player_props answer carries a priceNote, and agents are told to pass it on:
Prices vary by state and move often. Check the price at your own book, and that the book is legal where you are, before betting.
How old a price is
Prices come from a cache that Unitley's odds jobs keep. Every price and every line carries fetchedAt, the time it was fetched, and updatedAgo, its age in words:
| Age | Shown as |
|---|---|
| Under a minute | Updated just now |
| Under an hour | Updated 5m ago |
| Under a day | Updated 3h ago |
| A day or more | Updated 2d ago |
| No time on file | Not updated yet |
A line's age is that of its oldest outcome. When a game hasn't started and its prices are over three days old, the console marks them Prices may be out of date. Prices move between fetches, so an hours-old price may be gone. See Data sources and limits for when prices are fetched.
Parlays
calc_parlay prices a parlay of 2 to 25 legs. Each leg takes americanOdds, and optionally your own probability, the leg's gameId and a label.
curl -X POST https://console.unitley.com/api/v1/tools/calc_parlay \
-H "Authorization: Bearer YOUR_UNITLEY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"legs":[{"americanOdds":-110},{"americanOdds":150}]}'{
"data": {
"legs": 2,
"decimalOdds": 4.772727272727273,
"americanOdds": 377,
"impliedProbability": 0.2095238095238095,
"combinedProbability": null,
"expectedValuePercent": null,
"correlationWarnings": []
}
}decimalOddsmultiplies the legs' decimal prices: 1.909 × 2.5 = 4.772727272727273.americanOddsis that price rounded to a whole number, +377.impliedProbabilityis 1 ÷ 4.7727 = 0.2095238095238095.combinedProbabilityandexpectedValuePercentare null, because the legs have noprobability.
With your chances of 0.55 and 0.42, combinedProbability is their product, 0.231, and expectedValuePercent is 0.231 × 4.7727 − 1 = 0.10250000000000026, about +10.3%.
Same-game legs
Multiplying the legs' chances is only right when the legs are independent. Legs on the same game are not: a team's spread and the game total move together. When two or more legs share a gameId, correlationWarnings lists them, with a message such as:
Legs 1, 2 are on the same game, so they are not independent: the combined chance and EV can be well off.
The combined chance and EV still come back, but treat them as unreliable.
The console's Parlay Builder prices each leg at FanDuel's price and marks same-game legs with a Same game tag. It shows a Correlated legs note, and it sizes no stake for a parlay with same-game legs. It also sizes no stake until every leg has your chance.
Related
- Parlays and correlation, the guide on the Unitley site.
- The parlay calculator, to price a parlay in the browser.