Lorenzo Musetti vs Frances Tiafoe

hard atp masters_1000 best of 3 tennis_atp_cincinnati_open · commence 2026-08-21 23:00:00+00:00 · completed winner: b

P(Lorenzo Musetti) = 0.000  |  P(Frances Tiafoe) = 1.000
live composite (last tick)

Sharp anchor — Pinnacle pre-match

Pinnacle P(Lorenzo Musetti) 0.507
Pinnacle P(Frances Tiafoe) 0.493
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 Lorenzo MusettiFrances Tiafoe 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
Lorenzo Musetti all_court 117 0.779 4.2
Frances Tiafoe all_court 177 0.827 8.0

Matchup adjustment: +0.00pp toward Frances Tiafoe 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)

AdjustmentLorenzo MusettiFrances TiafoeNet
Match fatigue (14d load) -2.00pp (load 4.0) -2.25pp (load 4.5) +0.25pp

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(Lorenzo Musetti) P(Frances Tiafoe) Exp games Source
01:11:18 2 9 {'sets': [[0, 6]], 'current_set_games': [4, 5], 'sets_won_synthetic': True, 'point_score': ['30', '30']} b 0.210 0.789 36.0 feed
01:11:48 2 9 {'sets': [[0, 6]], 'current_set_games': [4, 5], 'sets_won_synthetic': True, 'point_score': ['40', '30']} b 0.200 0.800 35.9 feed
01:12:19 2 9 {'sets': [[0, 6]], 'current_set_games': [4, 5], 'sets_won_synthetic': True, 'point_score': ['40', '30']} b 0.229 0.771 36.2 feed
01:12:50 2 9 {'sets': [[0, 6]], 'current_set_games': [4, 5], 'sets_won_synthetic': True, 'point_score': ['40', '40']} b 0.216 0.783 35.9 feed
01:13:20 2 9 {'sets': [[0, 6]], 'current_set_games': [4, 5], 'sets_won_synthetic': True, 'point_score': ['40', '40']} b 0.213 0.786 35.9 feed
01:13:51 2 9 {'sets': [[0, 6]], 'current_set_games': [4, 5], 'sets_won_synthetic': True, 'point_score': ['40', 'A']} b 0.240 0.760 36.1 feed
01:14:22 2 9 {'sets': [[0, 6]], 'current_set_games': [4, 5], 'sets_won_synthetic': True, 'point_score': ['40', 'A']} b 0.201 0.799 35.8 feed
01:14:52 2 10 {'sets': [[0, 6]], 'current_set_games': [5, 5], 'sets_won_synthetic': True, 'point_score': ['0', '0']} b 0.250 0.750 37.6 feed
01:15:23 2 10 {'sets': [[0, 6]], 'current_set_games': [5, 5], 'sets_won_synthetic': True, 'point_score': ['0', '15']} b 0.237 0.762 37.5 feed
01:15:53 2 10 {'sets': [[0, 6]], 'current_set_games': [5, 5], 'sets_won_synthetic': True, 'point_score': ['0', '30']} b 0.267 0.734 37.6 feed
01:16:24 2 10 {'sets': [[0, 6]], 'current_set_games': [5, 5], 'sets_won_synthetic': True, 'point_score': ['15', '30']} b 0.247 0.753 37.6 feed
01:16:54 2 10 {'sets': [[0, 6]], 'current_set_games': [5, 5], 'sets_won_synthetic': True, 'point_score': ['30', '30']} b 0.248 0.752 37.7 feed
01:17:25 2 10 {'sets': [[0, 6]], 'current_set_games': [5, 5], 'sets_won_synthetic': True, 'point_score': ['30', '30']} b 0.248 0.752 37.7 feed
01:17:56 2 10 {'sets': [[0, 6]], 'current_set_games': [5, 5], 'sets_won_synthetic': True, 'point_score': ['40', '30']} b 0.258 0.742 37.6 feed
01:18:26 2 10 {'sets': [[0, 6]], 'current_set_games': [5, 5], 'sets_won_synthetic': True, 'point_score': ['40', '40']} b 0.254 0.746 37.7 feed
01:18:57 2 10 {'sets': [[0, 6]], 'current_set_games': [5, 5], 'sets_won_synthetic': True, 'point_score': ['A', '40']} b 0.263 0.737 37.7 feed
01:19:27 2 10 {'sets': [[0, 6]], 'current_set_games': [5, 5], 'sets_won_synthetic': True, 'point_score': ['A', '40']} b 0.253 0.748 37.7 feed
01:19:58 2 10 {'sets': [[0, 6]], 'current_set_games': [5, 5], 'sets_won_synthetic': True, 'point_score': ['A', '40']} b 0.257 0.743 37.8 feed
01:20:28 2 11 {'sets': [[0, 6]], 'current_set_games': [5, 6], 'sets_won_synthetic': True, 'point_score': ['0', '0']} b 0.221 0.779 38.1 feed
01:20:59 2 11 {'sets': [[0, 6]], 'current_set_games': [5, 6], 'sets_won_synthetic': True, 'point_score': ['0', '0']} b 0.196 0.804 37.8 feed
01:21:29 2 11 {'sets': [[0, 6]], 'current_set_games': [5, 6], 'sets_won_synthetic': True, 'point_score': ['0', '0']} b 0.221 0.779 38.1 feed
01:22:00 2 11 {'sets': [[0, 6]], 'current_set_games': [5, 6], 'sets_won_synthetic': True, 'point_score': ['0', '0']} b 0.225 0.775 38.2 feed
01:22:30 2 11 {'sets': [[0, 6]], 'current_set_games': [5, 6], 'sets_won_synthetic': True, 'point_score': ['15', '0']} b 0.224 0.776 38.1 feed
01:23:01 2 11 {'sets': [[0, 6]], 'current_set_games': [5, 6], 'sets_won_synthetic': True, 'point_score': ['15', '0']} b 0.214 0.785 38.0 feed
01:23:32 2 11 {'sets': [[0, 6]], 'current_set_games': [5, 6], 'sets_won_synthetic': True, 'point_score': ['30', '0']} b 0.204 0.795 37.8 feed
01:24:03 2 11 {'sets': [[0, 6]], 'current_set_games': [5, 6], 'sets_won_synthetic': True, 'point_score': ['40', '0']} b 0.214 0.786 38.2 feed
01:24:33 2 11 {'sets': [[0, 6]], 'current_set_games': [5, 6], 'sets_won_synthetic': True, 'point_score': ['40', '15']} b 0.225 0.775 38.0 feed
01:25:04 2 11 {'sets': [[0, 6]], 'current_set_games': [5, 6], 'sets_won_synthetic': True, 'point_score': ['40', '15']} b 0.202 0.798 38.0 feed
01:25:34 2 11 {'sets': [[0, 6]], 'current_set_games': [5, 6], 'sets_won_synthetic': True, 'point_score': ['40', '30']} b 0.228 0.772 38.1 feed
01:26:05 3 12 {'sets': [[0, 6], [0, 6]], 'current_set_games': [5, 7], 'sets_won_synthetic': True, 'point_score': ['14', '11']} 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.