Every prediction is stored before the match and settled against the official result — wins and losses alike. When the model changes, the counter resets: what you see below is the current model only, never a blend with retired versions.
What we forecast — for every match, who we think wins and with what probability. Forecast accuracy scores exactly that: how often the player we made favourite went on to win. Calibration error asks the harder question: when we say 70%, does it happen 70% of the time?
What we do not do is tell you what to bet. We published a value/EV signal until 1 August 2026. Then we backtested it against 17,012 matches priced by Pinnacle and it returned −7.5%, degrading to −12.4% as we demanded more edge from it. A signal that gets worse the harder you filter it is not an edge, so it is gone. Our probabilities are honest and well calibrated. They are not a way to beat the bookmaker, and we would rather say that than sell it.
When we say 64%, it happens 66% of the time (92 picks in that band). Predicted vs actual, by confidence bucket.
Cumulative win rate as picks settle, against the market-favorite baseline.
Exact set score and the fixed-line Over/Under were withdrawn from the cards on 8 August 2026. Measured over 7,402 walk-forward matches: the modal set-score pick agrees with the trivial rule "favourite in straight sets" 100% of the time, and on the matches where it deviates it scores 27.9% against the trivial rule's 38.4% — for a well-calibrated distribution that argmax IS the trivial rule, so no model can beat it. The fixed-line Over/Under is ~51% at every confidence band and every distance to the line: with a games spread of 5.8, a 22.5 line cannot be informative in best-of-three. The games handicap replaced them — its calibration is monotone by probability band (37→46 … 75→86 before correction) and each line now carries its own Platt fit. Their public scorecard was retired with them on 13 August 2026: keeping a running score for a market we no longer publish reads as an invitation to bet it. Both are still measured internally, and this note stays so the withdrawal itself remains on the record.
Closing line value asks the sharpest question in betting: after we recorded our pick, did the market move toward it or against it? A model with a real edge beats the closing price consistently. Ours does not — the line moves against our picks roughly three times in four — and we publish that number instead of hiding it, because it is the honest reason this site sells forecasts and analysis, not tips. Both the pick-time price and the closing price are normalised to vig-free probabilities before comparing; comparing raw prices had shown a flattering +2.85% that was nothing but the difference in bookmaker margins between the two snapshots.
Model favours — who the model expects to win, and the price on that player. A high percentage does not make a good bet: at 1.45 you need to be right 69% of the time just to break even.
Even match — the model’s probabilities were too close to call (under 60%), so no pick was published and the row is not scored. We measured it: in that band our “picks” hit 48.6% — a coin flip — and even the market favourite only manages 55%. Publishing them as picks would inflate activity, not accuracy.
Handicap — the games line we published with the match and its probability. Scored on completion (✓/✗); retirements and walkovers never settle it.
This is a forecast, not a tip. We used to publish a “value bet” column here. We tested it against 17,012 matches priced by Pinnacle and it lost money — worse the more edge we demanded from it — so we took it down. The probabilities below are honest and well calibrated; they are not a betting edge, and we will not dress them up as one.
| Date | Match | Model favours | Handicap | Final score | Result |
|---|---|---|---|---|---|
| 08-16 | Denis Shapovalov vs Rafael JodarATP · Masters 1000 Cincinnati (Hard) | Jodar 65%@ 1.41 | Jodar -2.5 · 52% ✗ | Jodar 7-5 4-6 7-5 | HIT · +0.41u |
| 08-16 | Belinda Bencic vs Lois BoissonWTA · WTA 1000 Cincinnati (Hard) | Bencic 87%@ 1.29 | Boisson +4.5 · 55% | Boisson 6-3 | MISS · −1.00u |
| 08-15 | Arthur Fils vs Yannick HanfmannATP · Masters 1000 Cincinnati (Hard) | Fils 68%@ 1.35 | Fils -1.5 · 51% ✓ | Fils 7-6 6-1 | HIT · +0.35u |
| 08-15 | Adolfo Daniel Vallejo vs Valentin VacherotATP · Masters 1000 Cincinnati (Hard) | Vacherot 61%@ 1.35 | Vallejo +4.5 · 51% ✓ | Vallejo 6-3 6-3 | MISS · −1.00u |
| 08-15 | Matteo Berrettini vs Jiri LeheckaATP · Masters 1000 Cincinnati (Hard) | Lehecka 60%@ 1.64 | Lehecka -1.5 · 51% ✓ | Lehecka 6-4 6-7 6-3 | HIT · +0.64u |
| 08-15 | Hubert Hurkacz vs Tommy PaulATP · Masters 1000 Cincinnati (Hard) | Paul 63%@ 1.61 | Paul -3.5 · 54% ✓ | Paul 6-4 6-7 6-3 | HIT · +0.61u |
| 08-15 | Nikola Bartunkova vs Sorana CirsteaWTA · WTA 1000 Cincinnati (Hard) | Cirstea 66%@ 1.62 | Bartunkova +1.5 · 50% ✗ | Cirstea 7-6 6-3 | HIT · +0.62u |
| 08-15 | Anna Kalinskaya vs Caty McNallyWTA · WTA 1000 Cincinnati (Hard) | Kalinskaya 60%@ 1.74 | McNally +2.5 · 51% ✗ | Kalinskaya 6-3 6-4 | HIT · +0.74u |
| 08-15 | Mattia Bellucci vs Jakub MensikATP · Masters 1000 Cincinnati (Hard) | Mensik 76%@ 1.32 | Bellucci +2.5 · 52% ✓ | Mensik 7-5 2-6 7-6 | HIT · +0.32u |
| 08-15 | Katie Boulter vs Linda NoskovaWTA · WTA 1000 Cincinnati (Hard) | Noskova 75%@ 1.30 | Noskova -2.5 · 53% ✓ | Noskova 6-3 6-3 | HIT · +0.30u |
| 08-15 | Diana Shnaider vs Tatjana MariaWTA · WTA 1000 Cincinnati (Hard) | Shnaider 80%@ 1.30 | Shnaider -3.5 · 53% ✓ | Shnaider 6-2 7-5 | HIT · +0.30u |
| 08-15 | Diane Parry vs Elise MertensWTA · WTA 1000 Cincinnati (Hard) | Mertens 72%@ 1.32 | Mertens -3.5 · 54% ✗ | Parry 2-6 6-2 6-2 | MISS · −1.00u |
| 08-15 | Flavio Cobolli vs Miomir KecmanovicATP · Masters 1000 Cincinnati (Hard) | Cobolli 63%@ 1.83 | Kecmanovic -2.5 · 53% ✗ | Cobolli 6-1 4-6 6-3 | HIT · +0.83u |
| 08-15 | Alejandro Tabilo vs Jan-Lennard StruffATP · Masters 1000 Cincinnati (Hard) | Tabilo 62%@ 1.45 | Struff +1.5 · 50% ✗ | Tabilo 6-3 6-4 | HIT · +0.45u |
| 08-15 | Jessica Pegula vs Simona WaltertWTA · WTA 1000 Cincinnati (Hard) | Pegula 89%@ 1.07 | Pegula -4.5 · 53% ✓ | Pegula 6-3 6-2 | HIT · +0.07u |
| 08-15 | Kamilla Rakhimova vs Maria SakkariWTA · WTA 1000 Cincinnati (Hard) | Sakkari 65%@ 1.50 | Rakhimova -1.5 · 51% ✗ | Sakkari 6-2 5-7 6-1 | HIT · +0.50u |
| 08-15 | Amanda Anisimova vs Zeynep SonmezWTA · WTA 1000 Cincinnati (Hard) | Anisimova 71%@ 1.26 | Anisimova -3.5 · 53% ✓ | Anisimova 6-2 6-3 | HIT · +0.26u |
| 08-15 | Aleksandar Kovacevic vs Karen KhachanovATP · Masters 1000 Cincinnati (Hard) | Khachanov 60%@ 1.41 | Khachanov -2.5 · 52% ✗ | Kovacevic 5-7 6-3 7-6 | MISS · −1.00u |
| 08-14 | Quentin Halys vs Vit KoprivaATP · Masters 1000 Cincinnati (Hard) | Halys 65%@ 1.43 | Kopriva +3.5 · 52% ✓ | Halys 7-6 6-4 | HIT · +0.43u |
| 08-14 | Maria Timofeeva vs Xiyu WangWTA · WTA 1000 Cincinnati (Hard) | Wang 62%@ 1.53 | Timofeeva +3.5 · 51% | Wang 6-0 | HIT · +0.53u |
| 08-14 | Mary Stoiana vs Tereza ValentovaWTA · WTA 1000 Cincinnati (Hard) | Valentova 66%@ 1.45 | Valentova -4.5 · 52% ✓ | Valentova 6-2 7-6 | HIT · +0.45u |
| 08-14 | Emiliana Arango vs Venus WilliamsWTA · WTA 1000 Cincinnati (Hard) | Arango 66%@ 1.45 | Arango -3.5 · 50% ✓ | Arango 6-2 6-2 | HIT · +0.45u |
| 08-14 | Hamad Medjedovic vs Marco TrungellitiATP · Masters 1000 Cincinnati (Hard) | Medjedovic 63%@ 1.41 | Trungelliti +3.5 · 50% ✓ | Trungelliti 7-5 7-6 | MISS · −1.00u |
| 08-14 | Adam Walton vs Nicolas MejiaATP · Masters 1000 Cincinnati (Hard) | Walton 60%@ 1.50 | Walton -3.5 · 52% ✓ | Walton 7-6 6-0 | HIT · +0.50u |
| 08-14 | Ben Shelton vs Brandon NakashimaATP · ATP Montreal (Hard) | Shelton 61%@ 1.47 | Nakashima -1.5 · 50% ✗ | Shelton 6-3 7-6 | HIT · +0.47u |
| 08-14 | Alex Michelsen vs Jesper de JongATP · Masters 1000 Cincinnati (Hard) | Michelsen 75%@ 1.22 | Michelsen -2.5 · 52% ✓ | Michelsen 6-4 6-4 | HIT · +0.22u |
| 08-14 | Valentin Royer vs Stefanos TsitsipasATP · Masters 1000 Cincinnati (Hard) | Tsitsipas 70%@ 1.29 | Royer +2.5 · 51% ✗ | Tsitsipas 7-6 7-5 | HIT · +0.29u |
| 08-13 | Henrique Rocha vs Nicolas MejiaATP · Masters 1000 Cincinnati (Hard) | Rocha 60%@ 1.73 | Rocha -2.5 · 51% ✗ | Mejia 7-5 4-6 6-3 | MISS · −1.00u |
| 08-13 | Titouan Droguet vs Stefanos SakellaridisATP · Masters 1000 Cincinnati (Hard) | Droguet 60%@ 1.38 | Sakellaridis -2.5 · 51% ✗ | Droguet 6-4 6-2 | HIT · +0.38u |
| 08-13 | Bu Yunchaokete vs Quentin HalysATP · Masters 1000 Cincinnati (Hard) | Halys 63%@ 1.65 | Halys -1.5 · 51% ✓ | Halys 6-2 7-6 | HIT · +0.65u |
Flat 1-unit stake on the 30 settled picks with recorded odds: +4.77u (+15.9% ROI). Odds are the market average captured before the match, not closing odds.
Latest 100 predictions of the current model. Each row is written before the match starts and never edited after settlement.
| Segment | Settled | Correct | Win rate |
|---|---|---|---|
| ATP | 20 | 14 | 70% |
| WTA | 13 | 10 | 76.9% |
| Hard | 33 | 24 | 72.7% |
The model (v5.3) is surface-specific Elo, and as of v5.3 that is all it is. Earlier versions layered form, head-to-head, playing-style and fatigue adjustments on top. Those were removed, not reduced: on the backtest below, Elo alone scored better than Elo plus the adjustments on both log loss (0.6322 vs 0.6340) and accuracy (64.0% vs 63.7%). Probabilities are published for every modeled match; picks are selective — where the model lacks reliable recent data the match appears as a probability only, never as a pick. Since 8 August 2026 a pick is also withheld when the model disagrees with the vig-free market consensus by more than 10 points: measured on three independent samples, those are exactly the matches where the wrong number is ours, not the market’s (live record in that zone: we claimed 59%, we hit 43%).
We tested the model against the market, and the market won. Every match from 2018 was replayed in date order, recording what the model would have said that morning before the result was known, then compared with the closing price. On the 17,012 held-out matches from 2023 onward:
| Log loss | Accuracy | |
|---|---|---|
| TennisRaptor (Elo) | 0.6322 | 64.0% |
| Pinnacle closing price | 0.5947 | 67.8% |
Lower log loss is better. The bookmaker is sharper than we are, and we would rather you heard that from us. Beating a closing price is the hardest benchmark in the industry — most profitable bettors beat opening lines and are closed out long before the market settles — so this makes us ordinary, not broken. What it does mean is that our numbers are for understanding matches, not for beating prices.
What we are good at is meaning what we say. Across those same 17,012 matches, no probability band drifted more than 1.9 points from reality: when the model said 74.3%, the favourite won 72.9% of the time. It is less sharp than the market — it puts fewer matches in the confident bands — but within its own confidence it is honest. A flat 1-unit stake on the 33 priced picks in the ledger below is reported as a measurement, not a suggestion.
Settlement is automatic and immutable. A prediction is recorded before the match and settled against the official result. Retired matches and walkovers never settle game-total or set-score markets. Set-score and over/under simulations are published as context, not as picks.
Record before the publication policy (2026-08-01 → 2026-08-12, model v5.3): 59.8% over 241 settled predictions, scored under the old rules — every lean counted as a pick, with no confidence floor. The headline record restarted on 2026-08-13 so it only ever contains picks made under the rules it advertises; re-scoring the past with today’s policy would make the number un-checkable. The old figure stays here because a track record you can trust includes the periods before the rules tightened.