Learner Tien vs Frances Tiafoe

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

P(Learner Tien) = 0.000  |  P(Frances Tiafoe) = 1.000
live composite (last tick)

Sharp anchor — Pinnacle pre-match

Pinnacle P(Learner Tien) 0.533
Pinnacle P(Frances Tiafoe) 0.467
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 Learner TienFrances 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
Learner Tien counterpuncher 12 0.713 3.6
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)

AdjustmentLearner TienFrances TiafoeNet
Match fatigue (14d load) -3.00pp (load 6.0) -1.25pp (load 2.5) -1.75pp

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(Learner Tien) P(Frances Tiafoe) Exp games Source
02:17:59 3 7 {'sets': [[6, 0], [0, 6]], 'current_set_games': [3, 4], 'sets_won_synthetic': True, 'point_score': ['0', '0']} b 0.426 0.574 36.8 feed
02:18:29 3 7 {'sets': [[6, 0], [0, 6]], 'current_set_games': [3, 4], 'sets_won_synthetic': True, 'point_score': ['15', '15']} b 0.441 0.559 36.8 feed
02:19:00 3 7 {'sets': [[6, 0], [0, 6]], 'current_set_games': [3, 4], 'sets_won_synthetic': True, 'point_score': ['15', '30']} b 0.445 0.555 36.7 feed
02:19:31 3 7 {'sets': [[6, 0], [0, 6]], 'current_set_games': [3, 4], 'sets_won_synthetic': True, 'point_score': ['15', '30']} b 0.425 0.575 36.8 feed
02:20:01 3 7 {'sets': [[6, 0], [0, 6]], 'current_set_games': [3, 4], 'sets_won_synthetic': True, 'point_score': ['30', '30']} b 0.432 0.568 36.8 feed
02:20:32 3 7 {'sets': [[6, 0], [0, 6]], 'current_set_games': [3, 4], 'sets_won_synthetic': True, 'point_score': ['30', '30']} b 0.425 0.575 36.8 feed
02:21:02 3 7 {'sets': [[6, 0], [0, 6]], 'current_set_games': [3, 4], 'sets_won_synthetic': True, 'point_score': ['40', '30']} b 0.419 0.581 36.8 feed
02:21:33 3 7 {'sets': [[6, 0], [0, 6]], 'current_set_games': [3, 4], 'sets_won_synthetic': True, 'point_score': ['40', '40']} b 0.429 0.571 36.8 feed
02:22:04 3 7 {'sets': [[6, 0], [0, 6]], 'current_set_games': [3, 4], 'sets_won_synthetic': True, 'point_score': ['A', '40']} b 0.440 0.560 36.8 feed
02:22:34 3 7 {'sets': [[6, 0], [0, 6]], 'current_set_games': [3, 4], 'sets_won_synthetic': True, 'point_score': ['A', '40']} b 0.425 0.575 36.8 feed
02:23:05 3 7 {'sets': [[6, 0], [0, 6]], 'current_set_games': [3, 4], 'sets_won_synthetic': True, 'point_score': ['A', '40']} b 0.427 0.573 36.8 feed
02:23:47 3 7 {'sets': [[6, 0], [0, 6]], 'current_set_games': [3, 4], 'sets_won_synthetic': True, 'point_score': ['40', '40']} b 0.441 0.559 36.7 feed
02:24:18 3 7 {'sets': [[6, 0], [0, 6]], 'current_set_games': [3, 4], 'sets_won_synthetic': True, 'point_score': ['40', '40']} b 0.443 0.557 36.8 feed
02:24:48 3 7 {'sets': [[6, 0], [0, 6]], 'current_set_games': [3, 4], 'sets_won_synthetic': True, 'point_score': ['40', '40']} b 0.444 0.556 36.7 feed
02:25:19 3 7 {'sets': [[6, 0], [0, 6]], 'current_set_games': [3, 4], 'sets_won_synthetic': True, 'point_score': ['A', '40']} b 0.434 0.566 36.7 feed
02:26:03 3 8 {'sets': [[6, 0], [0, 6]], 'current_set_games': [3, 5], 'sets_won_synthetic': True, 'point_score': ['0', '0']} b 0.231 0.769 37.7 feed
02:26:34 3 8 {'sets': [[6, 0], [0, 6]], 'current_set_games': [3, 5], 'sets_won_synthetic': True, 'point_score': ['0', '15']} b 0.204 0.796 37.8 feed
02:27:04 3 8 {'sets': [[6, 0], [0, 6]], 'current_set_games': [3, 5], 'sets_won_synthetic': True, 'point_score': ['0', '40']} b 0.212 0.787 37.8 feed
02:27:35 3 8 {'sets': [[6, 0], [0, 6]], 'current_set_games': [3, 5], 'sets_won_synthetic': True, 'point_score': ['15', '40']} b 0.194 0.806 37.8 feed
02:28:06 3 9 {'sets': [[6, 0], [0, 6]], 'current_set_games': [4, 5], 'sets_won_synthetic': True, 'point_score': ['0', '0']} b 0.443 0.557 38.7 feed
02:28:36 3 9 {'sets': [[6, 0], [0, 6]], 'current_set_games': [4, 5], 'sets_won_synthetic': True, 'point_score': ['0', '0']} b 0.427 0.573 38.8 feed
02:29:07 3 9 {'sets': [[6, 0], [0, 6]], 'current_set_games': [4, 5], 'sets_won_synthetic': True, 'point_score': ['0', '0']} b 0.421 0.579 38.8 feed
02:29:37 3 9 {'sets': [[6, 0], [0, 6]], 'current_set_games': [4, 5], 'sets_won_synthetic': True, 'point_score': ['0', '0']} b 0.425 0.575 38.8 feed
02:30:08 3 9 {'sets': [[6, 0], [0, 6]], 'current_set_games': [4, 5], 'sets_won_synthetic': True, 'point_score': ['15', '0']} b 0.428 0.572 38.8 feed
02:30:38 3 9 {'sets': [[6, 0], [0, 6]], 'current_set_games': [4, 5], 'sets_won_synthetic': True, 'point_score': ['15', '0']} b 0.427 0.573 38.7 feed
02:31:09 3 9 {'sets': [[6, 0], [0, 6]], 'current_set_games': [4, 5], 'sets_won_synthetic': True, 'point_score': ['15', '15']} b 0.429 0.571 38.8 feed
02:31:39 3 9 {'sets': [[6, 0], [0, 6]], 'current_set_games': [4, 5], 'sets_won_synthetic': True, 'point_score': ['15', '30']} b 0.410 0.590 38.8 feed
02:32:10 3 9 {'sets': [[6, 0], [0, 6]], 'current_set_games': [4, 5], 'sets_won_synthetic': True, 'point_score': ['30', '30']} b 0.429 0.571 38.7 feed
02:32:40 3 9 {'sets': [[6, 0], [0, 6]], 'current_set_games': [4, 5], 'sets_won_synthetic': True, 'point_score': ['40', '30']} b 0.415 0.585 38.9 feed
02:33:11 4 10 {'sets': [[6, 0], [0, 6], [0, 6]], 'current_set_games': [4, 6], 'sets_won_synthetic': True, 'point_score': ['16', '14']} 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.