TennisEdge's AI bot is backing M. Zheng (moneyline) at 1.78 in M. Zheng vs M. Kecmanovic (Montreal on 2026-08-02). Result: LOST.
Independent estimates of who wins, each from a different method. The blend is what the bot prices against the market.
| Method | M. Zheng | M. Kecmanovic |
|---|---|---|
| Elo ratings-based, surface-weighted |
61.2% | 38.8% |
| Machine learning 29-feature gradient-boosted model |
73.1% | 26.9% |
| Serve / return point-by-point simulation |
74.8% | 25.2% |
| Blend what the bot actually prices off |
65.5% | 34.5% |
| Market implied de-vigged from the opening odds |
54.8% | 45.2% |
We publish how well these score against the closing market, including where they lose: how accurate are tennis predictions?
| Player | Surface | Elo | Record | Matches |
|---|---|---|---|---|
| M. Zheng | hard | 1772 | 67–35 | 102 |
| M. Kecmanovic | hard | 1734 | 98–98 | 196 |
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. 4, 2026.
M. Kecmanovic leads 1–0 over 1 meeting. Full record.
| Date | Event | Surface | Winner | Score |
|---|---|---|---|---|
| Aug. 4, 2026 | Montreal | hard | M. Kecmanovic | 2 - 1 |
| L | M. Kecmanovic | 1 - 2 | Aug. 4, 2026 |
| W | K. Nishikori | 2 - 0 | Aug. 1, 2026 |
| L | A. Gea | 2 - 1 | July 30, 2026 |
| W | M. Landaluce | 2 - 0 | July 29, 2026 |
| L | J. Fearnley | 2 - 0 | July 25, 2026 |
| W | M. Zheng | 1 - 2 | Aug. 4, 2026 |
| L | S. Baez | 2 - 1 | July 21, 2026 |
| L | J. M. Cerundolo | 2 - 1 | July 16, 2026 |
| W | K. Feldbausch | 1 - 2 | July 13, 2026 |
| L | J. Sinner | 3 - 2 | June 29, 2026 |
All Aug. 2, 2026 results & picks →
═══ M. Zheng (A) vs M. Kecmanovic (B) — Montreal, hard, R1 (1/64) ═══
MODELS vs MARKET
ELO_a 0.612 | ML_a 0.731 | blend 0.655 | Pinnacle no-vig_a 0.571
Book A 1.73 / B 2.10 | Betfair A 1.78 / B 2.26
All three models favour A; sharp market ~57%. Model-market gap 4pts (ELO) to 8pts (blend) ON A.
ELO/rank note: A ranked 182 but ELO-favourite — "high ELO, modest rank" farmed-rating flag.
BUT live form independently backs the ELO (hard-court wins over 1739/1776 this week), so
the rating is credible here rather than pure weak-field farming. ML 0.731 treated as inflated;
I anchor nearer ELO/blend.
RECENT FORM (last 5)
Zheng (A): 08-01 Montreal-Fin W 6-3 6-1 vs Nishikori(1739) DOM/Strong; 07-30 LosCabos L vs Gea(1807);
07-29 LosCabos W 6-4 6-3 vs Landaluce(1776) DOM/Strong; 07-25 Bloomfield-SF L vs Fearnley(1677);
07-24 Bloomfield-QF W 4-6 7-6 6-3 vs Walton(1767) GRIND/Strong.
Shape SHARPENING — DOM wins over Strong bracket (1739/1776), deep runs, all on HARD.
Kecmanovic (B): 07-21 Kitzbuhel L vs Baez(1763) clay; 07-16 Gstaad L vs Cerundolo(1840) clay;
07-13 Gstaad W vs Feldbausch(1720) clay; 06-29 Wimb L(5set) vs Sinner(2013) grass;
06-25 Mallorca L vs Marozsan(1553) grass.
Shape FADING — clay/grass losses, no hard-court reps, poor recent stretch.
PATH & SHARPNESS
Zheng: 3-4 matches deep on HARD this week (Los Cabos + Montreal lead-in) — match-sharp,
conditions-adjusted, timing grooved. This is the primary qualitative edge.
Kecmanovic: last match 07-21 (12 days off), FIRST hard-court match — rust risk + surface
transition off clay. Clay→hard TRANSITION on the OPPONENT supports backing A's ML (Step 3).
FATIGUE
Zheng: 7 matches/14d, matches_7d 3, back_to_back 2, last match 08-01. HEAVY load — BUT
yesterday was a 2-set quick win (6-3 6-1), so NO 3-set hangover haircut applies (~neutral).
Age 22 -> recovers fast, soften one tier. Cumulative-minutes gap alone = context, not an edge.
Net: fatigue counterweight softened to "roughly equal"; note the price may be shaded on the
visible-fatigue narrative the research says the market over-prices (value often ON tired side).
Kecmanovic: fresh (12d rest) but that reads as RUST here, not advantage.
NARRATIVE
No first-Final let-down spot for B. Zheng deep-run momentum on hard. Opponent surface
transition (clay->hard) directional support for A ML.
GATES
G1 edge-origin: PASS — blend 0.655 vs exchange implied 0.574 = ~8% gap PRE-narrative;
edge exists numerically before any fatigue/transition adjustment (those only confirm).
G2 consensus: stake-tier — all 3 models on A -> full ladder eligible; capped modestly
(1.5u) for ELO-reliability caution + marginal edge. (G2 never FAILs.)
G3 fatal-risk: N/A for ML — this is a moneyline bet; G3 hard-veto applies only to
handicap/totals. Fatigue is a risk factor, not thesis-negating enough to flag.
MARKET CHOICE
ML A @ 1.78 (Betfair): my prob 0.63, edge +5.6% (5-10% tier). PRIMARY — lowest-variance
winner expression for a modest favourite. STAKE.
Handicap A -1.5 @ 1.92: sim covers -2.5 at 0.673 (=> -1.5 higher) — large nominal edge but
laying the favourite needs a margin = higher variance and Zheng's true level uncertain
(250-level form, fatigue). PASS in favour of the cleaner ML winner thesis.
Total Under 22.5 @ 1.97: sim under 0.577, edge +5.6% — same coherent distribution, but ML
is my direct winner thesis; not stacking. PASS.
AH: A -1.5 @ 1.92 (favourite, not a dog ML — shadow record not required; noted).
refutation_check: no web-search tool in this env and brief player_notes is null ->
clean by absence of any injury/withdrawal finding; thesis unchanged.
VERDICT: BET A (M. Zheng) ML @ 1.78, 1.5u. Match-sharp in-form hard-court player, models 61-73%
vs market 57%, price shaded on a fatigue narrative the data says is weak, opponent rusty and
transitioning off clay. min 1.667 (exchange 1.78 clears).