Type two player names into the boxes below (start typing and pick from the suggestions), choose a surface — Hard, Clay, or Grass — and press Calculate true odds.
You'll get each player's estimated chance of winning, the "fair" decimal odds and moneyline that chance implies, and their past head-to-head results if they've played before.
If you've got odds from a bookmaker for the same match, pop them into the two boxes at the bottom of the results to see whether the bookmaker's price looks generous or stingy compared to this model.
The leaderboard further down shows the current top players on each surface, based on results through 2026-09-12.
UPDATE WITH LATEST RESULTS
Loaded 2026.xlsx: +1381 new matches merged in (702 duplicates skipped, 67 incomplete skipped). Total now 8465 matches. To keep this update: use your browser’s Save Page As (Ctrl/Cmd+S) and choose "Webpage, HTML only" — the saved file will carry today’s merged data.
Download the current-year file (or any updated file) from tennis-data.co.uk's "All data" page and drop it in here.
Same column layout as the original ATP files works automatically (Date / Winner / Loser / Surface / Comment).
New matches merge in and duplicates are skipped automatically — ratings recalculate instantly in your browser.
Nothing is uploaded anywhere; it's all processed locally on this page. Once you've merged new data, use your browser's Save Page As (Ctrl/Cmd+S) and choose "Webpage, HTML only" to save it as a new file with the update baked in — otherwise it's only good for this browser session and reverts to the built-in data on reopen.
MATCH PREDICTOR
HARD
CLAY
GRASS
Model win prob.
Fair decimal odds
Fair moneyline
SURFACE LEADERBOARD
HARD
CLAY
GRASS
#
PLAYER
ELO
N
1
Sinner J.
2215
112
2
Alcaraz C.
2042
96
3
Fils A.
1950
85
4
Shelton B.
1945
125
5
Zverev A.
1920
118
6
Tiafoe F.
1913
107
7
Nakashima B.
1878
115
8
Gea A.
1846
18
9
Fritz T.
1843
120
10
Auger-Aliassime F.
1832
103
11
Djokovic N.
1828
58
12
Fonseca J.
1823
33
13
Tien L.
1800
80
14
Jodar R.
1798
38
15
Tirante T.A.
1783
27
Model: independent Elo rating per surface (Hard / Clay / Grass), dynamic K = 250/(matches+5)^0.4, initial rating 1500. Ratings reflect form through the last match in the dataset (2026-09-12). For entertainment/analysis — not betting advice.