SmashLob
Fair tennis win probabilities · SkipOdds Index

Two players. One fair number each.

Bookmaker prices for professional tennis, averaged across the market and stripped of the bookmaker margin — clean win probabilities for every match.

Today's matches   Get the API

Live API Match-winner probabilities Margin removed Developer-first
Raw bookmaker odds · Arthur Fils v Frances Tiafoe · 63 books
Arthur Fils 67.9%Frances Tiafoe 36.9%
Total: 104.8%Bookmaker margin: +4.8%
↓ Margin removed
SkipOdds Index · fair probabilities
Arthur Fils64.8%
Frances Tiafoe35.2%
Fair probabilities total: 100.0%
$ curl skipodds.com/v1/tennis/fixtures { "skipodds": { "p1": 0.6479, "p2": 0.3521, "margin_removed": 0.0476, "books_surveyed": 63 } }

The Board, live

Professional tennis · 63 bookmakers, de-vigged and refreshed continuously

ATP Cincinnati Open2026-08-23 20:30 UTC
Fils64.8%
Tiafoe35.2%
63 booksmargin cut +4.8%
WTA Cincinnati Open2026-08-23 23:00 UTC
Gauff58.4%
Pegula41.6%
63 booksmargin cut +4.9%

How it works

Bookmaker odds overstate every player — the margin ("vig") is baked in, so the two implied probabilities add up to more than 100%. SmashLob averages the surveyed prices for each player and removes that margin, leaving the SkipOdds Index: the market's honest opinion of the match, two numbers that sum to exactly 100%. No bookmaker names, no betting slips — a forecast, not a tout.

Build with this data

Every number on this page is served by the SkipOdds API — the same engine behind:

CollegeBallCricketSeekHoopSeekMMASeekPinOddsProBallPuckSeekScrumSeekWunderGoal
curl "https://skipodds.com/v1/tennis/fixtures?api_key=skipodds-demo-2026"

Or skip the code entirely — the free widget drops this exact board into any page with two lines:

<div data-skipodds data-sport="tennis" data-limit="5"></div>
<script async src="https://skipodds.com/widget.js"></script>

The demo key serves 100 requests/day. Full reference