Francisco Cerundolo vs Alexander Blockx

hard atp grand_slam best of 5 tennis_atp_us_open · commence 2026-09-07 17:00:00+00:00 · completed winner: b

P(Francisco Cerundolo) = 0.000  |  P(Alexander Blockx) = 1.000
live composite (last tick)

BO5 — elevated retirement risk HIGH 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:
Francisco Cerundolo: 0/30 (0.0%)
Alexander Blockx: 3/30 (10.0%) HIGH
most recent: 2026-09-09

Sharp anchor — Pinnacle pre-match

Pinnacle P(Francisco Cerundolo) 0.403
Pinnacle P(Alexander Blockx) 0.597
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 Francisco CerundoloAlexander Blockx 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
Francisco Cerundolo all_court 71 0.774 3.8
Alexander Blockx unknown 3 0.727 5.0

Style matchup signal: style matchup low_data: missing archetype or surface

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)

AdjustmentFrancisco CerundoloAlexander BlockxNet
Match fatigue (14d load) -2.50pp (load 5.0) -2.50pp (load 5.0) +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(Francisco Cerundolo) P(Alexander Blockx) Exp games Source
21:11:06 4 7 {'sets': [[6, 0], [0, 6], [0, 6]], 'current_set_games': [3, 4], 'sets_won_synthetic': True, 'point_score': ['0', '0']} b 0.225 0.775 50.9 feed
21:11:36 4 7 {'sets': [[6, 0], [0, 6], [0, 6]], 'current_set_games': [3, 4], 'sets_won_synthetic': True, 'point_score': ['0', '0']} b 0.215 0.785 51.0 feed
21:12:07 4 7 {'sets': [[6, 0], [0, 6], [0, 6]], 'current_set_games': [3, 4], 'sets_won_synthetic': True, 'point_score': ['0', '0']} b 0.211 0.788 50.9 feed
21:12:37 4 7 {'sets': [[6, 0], [0, 6], [0, 6]], 'current_set_games': [3, 4], 'sets_won_synthetic': True, 'point_score': ['15', '0']} b 0.213 0.786 51.1 feed
21:13:08 4 7 {'sets': [[6, 0], [0, 6], [0, 6]], 'current_set_games': [3, 4], 'sets_won_synthetic': True, 'point_score': ['15', '0']} b 0.198 0.802 50.9 feed
21:13:38 4 7 {'sets': [[6, 0], [0, 6], [0, 6]], 'current_set_games': [3, 4], 'sets_won_synthetic': True, 'point_score': ['15', '15']} b 0.212 0.788 50.9 feed
21:14:09 4 7 {'sets': [[6, 0], [0, 6], [0, 6]], 'current_set_games': [3, 4], 'sets_won_synthetic': True, 'point_score': ['15', '30']} b 0.217 0.783 50.9 feed
21:14:39 4 7 {'sets': [[6, 0], [0, 6], [0, 6]], 'current_set_games': [3, 4], 'sets_won_synthetic': True, 'point_score': ['15', '40']} b 0.204 0.795 51.0 feed
21:15:10 4 8 {'sets': [[6, 0], [0, 6], [0, 6]], 'current_set_games': [4, 4], 'sets_won_synthetic': True, 'point_score': ['0', '0']} b 0.261 0.740 52.5 feed
21:15:40 4 8 {'sets': [[6, 0], [0, 6], [0, 6]], 'current_set_games': [4, 4], 'sets_won_synthetic': True, 'point_score': ['30', '0']} b 0.247 0.753 52.7 feed
21:16:11 4 8 {'sets': [[6, 0], [0, 6], [0, 6]], 'current_set_games': [4, 4], 'sets_won_synthetic': True, 'point_score': ['30', '0']} b 0.245 0.754 52.5 feed
21:16:42 4 9 {'sets': [[6, 0], [0, 6], [0, 6]], 'current_set_games': [4, 5], 'sets_won_synthetic': True, 'point_score': ['0', '0']} b 0.218 0.782 52.9 feed
21:17:12 4 9 {'sets': [[6, 0], [0, 6], [0, 6]], 'current_set_games': [4, 5], 'sets_won_synthetic': True, 'point_score': ['0', '0']} b 0.210 0.789 53.0 feed
21:17:43 4 9 {'sets': [[6, 0], [0, 6], [0, 6]], 'current_set_games': [4, 5], 'sets_won_synthetic': True, 'point_score': ['0', '0']} b 0.210 0.790 52.8 feed
21:18:14 4 9 {'sets': [[6, 0], [0, 6], [0, 6]], 'current_set_games': [4, 5], 'sets_won_synthetic': True, 'point_score': ['0', '0']} b 0.204 0.795 53.0 feed
21:18:44 4 9 {'sets': [[6, 0], [0, 6], [0, 6]], 'current_set_games': [4, 5], 'sets_won_synthetic': True, 'point_score': ['0', '15']} b 0.202 0.798 53.0 feed
21:19:15 4 9 {'sets': [[6, 0], [0, 6], [0, 6]], 'current_set_games': [4, 5], 'sets_won_synthetic': True, 'point_score': ['0', '30']} b 0.228 0.772 53.2 feed
21:19:46 4 9 {'sets': [[6, 0], [0, 6], [0, 6]], 'current_set_games': [4, 5], 'sets_won_synthetic': True, 'point_score': ['0', '40']} b 0.213 0.786 53.2 feed
21:20:16 4 10 {'sets': [[6, 0], [0, 6], [0, 6]], 'current_set_games': [5, 5], 'sets_won_synthetic': True, 'point_score': ['0', '0']} b 0.243 0.756 54.6 feed
21:20:47 4 10 {'sets': [[6, 0], [0, 6], [0, 6]], 'current_set_games': [5, 5], 'sets_won_synthetic': True, 'point_score': ['15', '0']} b 0.260 0.740 54.7 feed
21:21:17 4 10 {'sets': [[6, 0], [0, 6], [0, 6]], 'current_set_games': [5, 5], 'sets_won_synthetic': True, 'point_score': ['40', '0']} b 0.259 0.741 54.9 feed
21:21:48 4 11 {'sets': [[6, 0], [0, 6], [0, 6]], 'current_set_games': [5, 6], 'sets_won_synthetic': True, 'point_score': ['0', '0']} b 0.230 0.770 55.1 feed
21:22:18 4 11 {'sets': [[6, 0], [0, 6], [0, 6]], 'current_set_games': [5, 6], 'sets_won_synthetic': True, 'point_score': ['0', '0']} b 0.209 0.791 54.9 feed
21:22:49 4 11 {'sets': [[6, 0], [0, 6], [0, 6]], 'current_set_games': [5, 6], 'sets_won_synthetic': True, 'point_score': ['0', '0']} b 0.195 0.805 54.8 feed
21:23:20 4 11 {'sets': [[6, 0], [0, 6], [0, 6]], 'current_set_games': [5, 6], 'sets_won_synthetic': True, 'point_score': ['0', '0']} b 0.221 0.779 55.1 feed
21:23:50 4 11 {'sets': [[6, 0], [0, 6], [0, 6]], 'current_set_games': [5, 6], 'sets_won_synthetic': True, 'point_score': ['15', '0']} b 0.193 0.807 54.9 feed
21:24:26 4 11 {'sets': [[6, 0], [0, 6], [0, 6]], 'current_set_games': [5, 6], 'sets_won_synthetic': True, 'point_score': ['15', '15']} b 0.207 0.793 55.0 feed
21:24:56 4 11 {'sets': [[6, 0], [0, 6], [0, 6]], 'current_set_games': [5, 6], 'sets_won_synthetic': True, 'point_score': ['30', '15']} b 0.213 0.786 54.9 feed
21:25:27 4 11 {'sets': [[6, 0], [0, 6], [0, 6]], 'current_set_games': [5, 6], 'sets_won_synthetic': True, 'point_score': ['40', '15']} b 0.211 0.788 54.9 feed
21:25:57 5 12 {'sets': [[6, 0], [0, 6], [0, 6], [0, 6]], 'current_set_games': [5, 7], 'sets_won_synthetic': True, 'point_score': ['24', '19']} b 0.000 1.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.