TennisEdge's AI model finds no betting value in S. Zhang vs J. Ostapenko (Toronto on 2026-08-04) — the market is efficient, with J. Ostapenko favoured at 1.30.
Independent estimates of who wins, each from a different method. The blend is what the bot prices against the market.
| Method | S. Zhang | J. Ostapenko |
|---|---|---|
| Elo ratings-based, surface-weighted |
44.3% | 55.7% |
| Machine learning 29-feature gradient-boosted model |
32.1% | 67.9% |
| Serve / return point-by-point simulation |
68.0% | 32.0% |
| Blend what the bot actually prices off |
42.0% | 58.0% |
| Market implied de-vigged from the opening odds |
27.4% | 72.6% |
We publish how well these score against the closing market, including where they lose: how accurate are tennis predictions?
| Player | Surface | Elo | Record | Matches |
|---|---|---|---|---|
| S. Zhang | hard | 1727 | 111–88 | 199 |
| J. Ostapenko | hard | 1767 | 88–73 | 161 |
Our own ratings, computed from match results since 2018. Players with fewer than 5 rated matches are omitted rather than shown at a provisional starting value. Last updated Aug. 3, 2026.
| W | Y. Putintseva | 0 - 2 | Aug. 3, 2026 |
| L | G. Knutson | 1 - 2 | July 25, 2026 |
| L | K. Muchova | 2 - 0 | July 1, 2026 |
| W | B. Andreescu | 0 - 2 | June 29, 2026 |
| L | G. Ruse | 0 - 2 | June 20, 2026 |
| L | A. Sabalenka | 2 - 0 | July 3, 2026 |
| W | A. Ruzic | 2 - 0 | July 1, 2026 |
| W | H. Dart | 2 - 1 | June 29, 2026 |
| L | T. Maria | 1 - 0 | June 26, 2026 |
| W | Z. Sonmez | 2 - 0 | June 25, 2026 |
All Aug. 4, 2026 results & picks →
S. Zhang (A) vs J. Ostapenko (B) — WTA Toronto, hard, 1/32-finals
═══ MODELS vs MARKET ═══
ELO : Zhang 44.3%
ML : Zhang 32.1%
Blend : Zhang 42.0%
Book quote: A 3.45 / B 1.30 → implied Zhang 29.0% (STALE — see market choice)
Betfair ML: A 2.62 / B 1.43 → raw implied Zhang 38.2%, devigged 35.3%
Commission-adjusted executable A = 1 + 1.62 x 0.95 = 2.539 → 39.4%
Blend edge vs executable = 42.0 − 39.4 = +2.6%. ELO alone +4.9%; ML alone −7.3%.
Models split hard, and the only model that likes Zhang is the one the exchange
has already largely caught up with.
═══ RECENT FORM (max 5 shown per player) ═══
S. Zhang (37, rank 79):
08-03 Toronto R64 W vs Y. Putintseva (1767) 6-4 6-1 — DOM over Strong
07-25 Washington L vs G. Knutson (1494) 4-6 6-1 1-6 — loss to Weak, 3 sets
07-01 Wimbledon L vs K. Muchova (1806) 3-6 2-6
06-29 Wimbledon W vs B. Andreescu (1665) 7-6 7-6 — GRIND
06-20 Bad Homburg L vs G. Ruse (1721) 5-7 4-6
Note: the "Final" entries at Berlin/London/Strasbourg are qualifying finals
(each is followed by a main-draw loss days later) — NOT titles. No let-down spot.
Shape: MIXED, tilting up. The Putintseva 6-4 6-1 is genuine over-performance vs
bracket, but it sits directly after a 3-set loss to a 1494 opponent (07-25).
One dominant result is not a trend; call it STABLE-to-SHARPENING, unconfirmed.
J. Ostapenko (29, rank 36):
07-03 Wimbledon R16 L vs A. Sabalenka (1926) 4-6 4-6 — narrow loss to Elite, neutral-positive
07-01 Wimbledon W vs A. Ruzic (1641) 6-2 6-0 — DOM
06-29 Wimbledon W vs H. Dart (1568) 6-3 3-6 6-4 — GRIND
06-26 Eastbourne SF L vs T. Maria (1804) 6-1 1-2 (truncated — retirement pattern)
06-25 Eastbourne QF W vs Z. Sonmez (1761) 6-3 6-0 — DOM over Strong
Shape: STABLE/SHARPENING on grass through early July (two DOMs, competitive vs
Sabalenka). Then nothing.
═══ PATH & SHARPNESS (Step 1b) ═══
Zhang : 1 match at this venue this week, won it convincingly. Match-sharp,
conditions-adjusted, on the match surface. Positive.
Ostapenko: last match anywhere 07-03 — 32 days ago. Clear RUST RISK (>21d), and
her last competitive tennis was on grass → surface transition into hard.
First match of the North American swing.
This is the real qualitative story: sharp-and-played-in vs rusty-and-cold. It is
also, precisely, the story the exchange has ALREADY priced (below).
═══ FATIGUE (Step 2) ═══
Zhang : 2 matches/14d, 1/7d, 155 court-min, no back-to-back, played 08-03.
Yesterday's win was a STRAIGHT-SETS win → no −4.5pp 3-set hangover
(2-set win ≈ neutral). Age 37 → veteran, recovery hardened one tier,
so a same-swing quick turnaround is a mild negative, not an edge.
Ostapenko: 0 matches/14d, fully rested — but "rested" here means rusty, not fresh.
Cumulative-minutes gap is trivial and is CONTEXT only, never an edge (Step 2
calibration). No extreme fatigue spot on either side.
═══ NARRATIVE (Step 3) ═══
Let-down : None. Zhang's recent "Final" wins are qualifying finals, not titles.
Venue : Zhang 1-0 at Toronto this week. Amplifier only, creates nothing.
Transition: Ostapenko grass → hard. Directional negative for her level.
ELO/rank : Zhang ELO-implied 44% while ranked 79 vs Ostapenko's 36 — ELO is more
generous to Zhang than ranking. With a 07-25 loss to a 1494-ELO
opponent in the window, that ELO is not obviously trustworthy;
discount it rather than lean on it. ML (32%) sits on the other side.
═══ MARKET CHOICE (Step 4b) ═══
alt_markets: handicap and totals NOT quoted (null); sim margin model null.
AH: not quoted. betfair_ml present and plausible → exchange is the edge baseline.
ML is the only stakeable market here.
The decisive fact: the book has Zhang 3.45 (29.0%) while Betfair has her 2.62
(38.2% raw / 35.3% devigged). That is a ~9-point gap. The exchange has already
moved a long way toward Zhang — it has priced Ostapenko's month-long layoff and
Zhang's R1 win. The brief's headline value_edge of +14.6% is computed against the
STALE book quote and is a mirage: per Pricing Discipline #1 a book price the
exchange contradicts is a stale quote, not value. Measured where we can actually
execute, the edge collapses from +14.6% to +2.6%.
═══ GATES (Step 4a) ═══
GATES
G1 edge-origin: FAIL — pre-narrative blend edge vs executable 2.62 is +2.6%,
below even the 3% probe bar (needs eff 2.563 / Betfair ~2.65 at p=0.420).
The only way to a bettable number is to hand-raise Zhang's probability for
the rust story — narrative creating edge, which G1 forbids outright.
G2 consensus: PASS (stake tier only) — would be lone_signal: ELO-only, with
ML actively against; capped tier at best. Cannot rescue a failed G1.
G3 fatal-risk: PASS (n/a) — ML bet, G3 never blocks; no margin market quoted.
═══ VERDICT: PASS ═══
The qualitative read is real and I like it: Ostapenko 32 days idle, coming off
grass, into a hard court against a 37-year-old who is already played-in at the
venue and beat a 1767 opponent 6-4 6-1 yesterday. That is a legitimate
soft-favourite spot. But it is not MY information — the exchange has repriced
Zhang from 3.45 to 2.62 for exactly these reasons, and at 2.62 the models leave
+2.6% after commission, with ML (−7.3%) arguing the price is if anything already
too short. Buying a story the market has finished paying for is how a
14%-on-paper edge becomes a 2.6% real one. No stake.
What would change this: Zhang drifting back to 2.65+ on the exchange (the probe
threshold), or confirmed news on Ostapenko's fitness after the Eastbourne
retirement pattern — neither is in hand now.