Alexander Zverev vs Botic van de Zandschulp

hard atp grand_slam best of 5 tennis_atp_us_open · commence 2026-09-09 23:30:00+00:00 · completed winner: a

P(Alexander Zverev) = 1.000  |  P(Botic van de Zandschulp) = 0.000
live composite (last tick)

BO5 — elevated retirement risk

Best-of-5 matches (ATP men's Slams) historically retire at a materially higher rate than best-of-3. Per-player retirement frequency over their last 30 matches:
Alexander Zverev: 0/30 (0.0%)
Botic van de Zandschulp: 0/30 (0.0%)

Sharp anchor — Pinnacle pre-match

Pinnacle P(Alexander Zverev) 0.863
Pinnacle P(Botic van de Zandschulp) 0.137
n_books observed 1 live

Sharp anchor sourced via OddsAPI event_id lookup → Pinnacle no-vig computation. (Field-id mismatch fix shipped 2026-05-02 — pinnacle capture is now the source of truth for pre-match anchoring.)

Surface ELO radar

Surface Alexander ZverevBotic van de Zandschulp Diff (a−b)
hard 1500 (0) 1500 (0) +0
clay 1500 (0) 1500 (0) +0
grass 1500 (0) 1500 (0) +0
indoor 1500 (0) 1500 (0) +0
overall 1500 (0) 1500 (0) +0

Per-surface ELO from 24h-cached global rater. Number-in-parens = matches contributing to that rating.

Style matchup (display-only · v0 priors · NOT in headline)

Player Archetype n matches Hold % Aces / match
Alexander Zverev all_court 196 0.865 9.9
Botic van de Zandschulp all_court 120 0.785 6.4

Matchup adjustment: +0.00pp toward Botic van de Zandschulp on hard.

v0 sharp priors per tennis-betting-expert lock 2026-05-02. Display-only — NOT blended into the headline composite probability above. Promotion to wired-in pending: N≥200 archetype-tagged settled matches with closing-line capture + Brier delta ≥+0.005 vs unwired baseline + no 5pp-bucket regression. Re-evaluate post-Roland Garros (2026-06-09).

Composite adjustments (live)

AdjustmentAlexander ZverevBotic van de ZandschulpNet
Match fatigue (14d load) -3.00pp (load 6.6) -3.00pp (load 8.3) +0.00pp

Live adjustments flowed into the headline composite probability above. Surface transition gated to documented poor-history (>15% win-rate drop in first 3 surface-change matches). Fatigue: 14-day load weighted by best-of (BO5=2.0, BO3=1.0), capped ±3pp. Tennis-betting-expert RG R1 audit 2026-05-24.

Composite signal weights

SignalWeight
surface_elo 0.35
recent_form 0.18
h2h_matrix 0.16
surface_transition 0.11
match_simulator 0.10
tournament_fatigue 0.10
Sum 1.00

Locked weights per tennis-betting-expert composite design 2026-04-26. Signals flagged low_data are excluded; remaining weights renormalize proportionally. h2h overweighting noted in audit; will be revisited with a dedicated calibration pass after Roland Garros.

Live trajectory (200 ticks)

Time Set Game Score Server P(Alexander Zverev) P(Botic van de Zandschulp) Exp games Source
02:05:57 3 5 {'sets': [[6, 0], [6, 0]], 'current_set_games': [4, 1], 'sets_won_synthetic': True, 'point_score': ['0', '0']} b 0.929 0.071 37.8 feed
02:06:28 3 5 {'sets': [[6, 0], [6, 0]], 'current_set_games': [4, 1], 'sets_won_synthetic': True, 'point_score': ['0', '0']} b 0.936 0.064 37.7 feed
02:06:58 3 5 {'sets': [[6, 0], [6, 0]], 'current_set_games': [4, 1], 'sets_won_synthetic': True, 'point_score': ['0', '0']} b 0.928 0.072 37.9 feed
02:07:29 3 5 {'sets': [[6, 0], [6, 0]], 'current_set_games': [4, 1], 'sets_won_synthetic': True, 'point_score': ['0', '0']} b 0.933 0.067 37.8 feed
02:07:59 3 5 {'sets': [[6, 0], [6, 0]], 'current_set_games': [4, 1], 'sets_won_synthetic': True, 'point_score': ['0', '0']} b 0.931 0.069 38.0 feed
02:08:30 3 5 {'sets': [[6, 0], [6, 0]], 'current_set_games': [4, 1], 'sets_won_synthetic': True, 'point_score': ['0', '15']} b 0.921 0.079 38.0 feed
02:09:00 3 5 {'sets': [[6, 0], [6, 0]], 'current_set_games': [4, 1], 'sets_won_synthetic': True, 'point_score': ['0', '15']} b 0.930 0.070 37.9 feed
02:09:31 3 5 {'sets': [[6, 0], [6, 0]], 'current_set_games': [4, 1], 'sets_won_synthetic': True, 'point_score': ['0', '30']} b 0.921 0.079 38.0 feed
02:10:02 3 5 {'sets': [[6, 0], [6, 0]], 'current_set_games': [4, 1], 'sets_won_synthetic': True, 'point_score': ['15', '30']} b 0.931 0.069 37.8 feed
02:10:32 3 5 {'sets': [[6, 0], [6, 0]], 'current_set_games': [4, 1], 'sets_won_synthetic': True, 'point_score': ['15', '30']} b 0.927 0.073 37.9 feed
02:11:03 3 5 {'sets': [[6, 0], [6, 0]], 'current_set_games': [4, 1], 'sets_won_synthetic': True, 'point_score': ['30', '30']} b 0.919 0.081 38.0 feed
02:11:33 3 5 {'sets': [[6, 0], [6, 0]], 'current_set_games': [4, 1], 'sets_won_synthetic': True, 'point_score': ['30', '40']} b 0.934 0.066 37.6 feed
02:12:04 3 5 {'sets': [[6, 0], [6, 0]], 'current_set_games': [4, 1], 'sets_won_synthetic': True, 'point_score': ['30', '40']} b 0.931 0.069 38.1 feed
02:12:35 3 5 {'sets': [[6, 0], [6, 0]], 'current_set_games': [4, 1], 'sets_won_synthetic': True, 'point_score': ['40', '40']} b 0.931 0.069 37.8 feed
02:13:05 3 5 {'sets': [[6, 0], [6, 0]], 'current_set_games': [4, 1], 'sets_won_synthetic': True, 'point_score': ['40', 'A']} b 0.921 0.079 37.7 feed
02:13:36 3 5 {'sets': [[6, 0], [6, 0]], 'current_set_games': [4, 1], 'sets_won_synthetic': True, 'point_score': ['40', 'A']} b 0.930 0.070 37.9 feed
02:14:07 3 5 {'sets': [[6, 0], [6, 0]], 'current_set_games': [4, 1], 'sets_won_synthetic': True, 'point_score': ['40', '40']} b 0.934 0.066 37.7 feed
02:14:37 3 5 {'sets': [[6, 0], [6, 0]], 'current_set_games': [4, 1], 'sets_won_synthetic': True, 'point_score': ['40', 'A']} b 0.938 0.062 37.9 feed
02:15:08 3 6 {'sets': [[6, 0], [6, 0]], 'current_set_games': [5, 1], 'sets_won_synthetic': True, 'point_score': ['0', '0']} b 0.971 0.029 36.6 feed
02:15:39 3 6 {'sets': [[6, 0], [6, 0]], 'current_set_games': [5, 1], 'sets_won_synthetic': True, 'point_score': ['15', '0']} b 0.970 0.030 36.6 feed
02:16:09 3 6 {'sets': [[6, 0], [6, 0]], 'current_set_games': [5, 1], 'sets_won_synthetic': True, 'point_score': ['15', '0']} b 0.960 0.040 36.9 feed
02:17:01 3 6 {'sets': [[6, 0], [6, 0]], 'current_set_games': [5, 1], 'sets_won_synthetic': True, 'point_score': ['15', '15']} b 0.972 0.028 36.8 feed
02:17:32 3 6 {'sets': [[6, 0], [6, 0]], 'current_set_games': [5, 1], 'sets_won_synthetic': True, 'point_score': ['15', '30']} b 0.963 0.037 36.8 feed
02:18:03 3 6 {'sets': [[6, 0], [6, 0]], 'current_set_games': [5, 1], 'sets_won_synthetic': True, 'point_score': ['30', '30']} b 0.972 0.028 36.7 feed
02:18:35 3 6 {'sets': [[6, 0], [6, 0]], 'current_set_games': [5, 1], 'sets_won_synthetic': True, 'point_score': ['30', '40']} b 0.969 0.031 36.6 feed
02:19:06 3 6 {'sets': [[6, 0], [6, 0]], 'current_set_games': [5, 1], 'sets_won_synthetic': True, 'point_score': ['40', '40']} b 0.967 0.033 36.8 feed
02:19:37 3 6 {'sets': [[6, 0], [6, 0]], 'current_set_games': [5, 1], 'sets_won_synthetic': True, 'point_score': ['40', '40']} b 0.967 0.033 36.7 feed
02:20:07 3 6 {'sets': [[6, 0], [6, 0]], 'current_set_games': [5, 1], 'sets_won_synthetic': True, 'point_score': ['40', 'A']} b 0.966 0.034 36.9 feed
02:20:38 3 6 {'sets': [[6, 0], [6, 0]], 'current_set_games': [5, 1], 'sets_won_synthetic': True, 'point_score': ['40', 'A']} b 0.969 0.031 36.7 feed
02:21:09 4 7 {'sets': [[6, 0], [6, 0], [6, 0]], 'current_set_games': [6, 1], 'sets_won_synthetic': True, 'point_score': ['8', '19']} b 1.000 0.000 0.0 feed

Showing last 30 of 200 ticks.

Tennis variance: best-of-3 single-match outcomes are noisy. Composite + trajectory shown for transparency, not as a tout. Use closing-line comparison (vs Pinnacle anchor above) as the canonical edge metric.