Sara Bejlek vs Madison Keys

hard wta masters_1000 best of 3 tennis_wta_cincinnati_open · commence 2026-08-21 17:00:00+00:00 · completed winner: a

P(Sara Bejlek) = 1.000  |  P(Madison Keys) = 0.000
live composite (last tick)

Sharp anchor — Pinnacle pre-match

Pinnacle P(Sara Bejlek) 0.369
Pinnacle P(Madison Keys) 0.631
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 Sara BejlekMadison Keys 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
Sara Bejlek unknown 4 0.500 0.2
Madison Keys all_court 105 0.736 4.2

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)

AdjustmentSara BejlekMadison KeysNet
Match fatigue (14d load) -2.00pp (load 4.0) -1.50pp (load 3.0) -0.50pp

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(Sara Bejlek) P(Madison Keys) Exp games Source
19:31:45 3 11 {'sets': [[6, 0], [0, 6]], 'current_set_games': [6, 5], 'sets_won_synthetic': True, 'point_score': ['0', '0']} b 0.510 0.490 39.8 feed
19:32:16 3 11 {'sets': [[6, 0], [0, 6]], 'current_set_games': [6, 5], 'sets_won_synthetic': True, 'point_score': ['0', '0']} b 0.495 0.504 39.7 feed
19:32:46 3 11 {'sets': [[6, 0], [0, 6]], 'current_set_games': [6, 5], 'sets_won_synthetic': True, 'point_score': ['0', '0']} b 0.503 0.497 39.7 feed
19:33:17 3 11 {'sets': [[6, 0], [0, 6]], 'current_set_games': [6, 5], 'sets_won_synthetic': True, 'point_score': ['15', '0']} b 0.488 0.512 39.7 feed
19:33:48 3 11 {'sets': [[6, 0], [0, 6]], 'current_set_games': [6, 5], 'sets_won_synthetic': True, 'point_score': ['15', '0']} b 0.514 0.486 39.8 feed
19:34:18 3 11 {'sets': [[6, 0], [0, 6]], 'current_set_games': [6, 5], 'sets_won_synthetic': True, 'point_score': ['15', '15']} b 0.499 0.500 39.8 feed
19:34:49 3 11 {'sets': [[6, 0], [0, 6]], 'current_set_games': [6, 5], 'sets_won_synthetic': True, 'point_score': ['30', '15']} b 0.487 0.513 39.8 feed
19:35:20 3 11 {'sets': [[6, 0], [0, 6]], 'current_set_games': [6, 5], 'sets_won_synthetic': True, 'point_score': ['40', '30']} b 0.483 0.516 39.8 feed
19:35:50 3 12 {'sets': [[6, 0], [0, 6]], 'current_set_games': [6, 6], 'sets_won_synthetic': True, 'point_score': ['0', '0']} b 0.493 0.507 40.8 feed
19:36:21 3 12 {'sets': [[6, 0], [0, 6]], 'current_set_games': [6, 6], 'sets_won_synthetic': True, 'point_score': ['0', '0']} b 0.487 0.512 40.8 feed
19:36:51 3 12 {'sets': [[6, 0], [0, 6]], 'current_set_games': [6, 6], 'sets_won_synthetic': True, 'point_score': ['1', '1']} b 0.500 0.500 40.8 feed
19:37:22 3 12 {'sets': [[6, 0], [0, 6]], 'current_set_games': [6, 6], 'sets_won_synthetic': True, 'point_score': ['1', '1']} b 0.495 0.505 40.8 feed
19:37:52 3 12 {'sets': [[6, 0], [0, 6]], 'current_set_games': [6, 6], 'sets_won_synthetic': True, 'point_score': ['1', '2']} b 0.520 0.480 40.8 feed
19:38:23 3 12 {'sets': [[6, 0], [0, 6]], 'current_set_games': [6, 6], 'sets_won_synthetic': True, 'point_score': ['1', '2']} b 0.490 0.510 40.8 feed
19:38:54 3 12 {'sets': [[6, 0], [0, 6]], 'current_set_games': [6, 6], 'sets_won_synthetic': True, 'point_score': ['2', '2']} b 0.514 0.486 40.7 feed
19:39:24 3 12 {'sets': [[6, 0], [0, 6]], 'current_set_games': [6, 6], 'sets_won_synthetic': True, 'point_score': ['3', '2']} b 0.488 0.512 40.8 feed
19:39:55 3 12 {'sets': [[6, 0], [0, 6]], 'current_set_games': [6, 6], 'sets_won_synthetic': True, 'point_score': ['4', '2']} b 0.515 0.485 40.7 feed
19:40:25 3 12 {'sets': [[6, 0], [0, 6]], 'current_set_games': [6, 6], 'sets_won_synthetic': True, 'point_score': ['4', '2']} b 0.478 0.522 40.8 feed
19:40:56 3 12 {'sets': [[6, 0], [0, 6]], 'current_set_games': [6, 6], 'sets_won_synthetic': True, 'point_score': ['4', '2']} b 0.509 0.491 40.8 feed
19:41:26 3 12 {'sets': [[6, 0], [0, 6]], 'current_set_games': [6, 6], 'sets_won_synthetic': True, 'point_score': ['4', '3']} b 0.512 0.488 40.8 feed
19:41:57 3 12 {'sets': [[6, 0], [0, 6]], 'current_set_games': [6, 6], 'sets_won_synthetic': True, 'point_score': ['4', '3']} b 0.504 0.496 40.8 feed
19:42:27 3 12 {'sets': [[6, 0], [0, 6]], 'current_set_games': [6, 6], 'sets_won_synthetic': True, 'point_score': ['4', '4']} b 0.490 0.510 40.8 feed
19:42:58 3 12 {'sets': [[6, 0], [0, 6]], 'current_set_games': [6, 6], 'sets_won_synthetic': True, 'point_score': ['5', '4']} b 0.487 0.513 40.8 feed
19:43:29 3 12 {'sets': [[6, 0], [0, 6]], 'current_set_games': [6, 6], 'sets_won_synthetic': True, 'point_score': ['5', '4']} b 0.505 0.495 40.8 feed
19:43:59 3 12 {'sets': [[6, 0], [0, 6]], 'current_set_games': [6, 6], 'sets_won_synthetic': True, 'point_score': ['5', '5']} b 0.501 0.499 40.8 feed
19:44:29 3 12 {'sets': [[6, 0], [0, 6]], 'current_set_games': [6, 6], 'sets_won_synthetic': True, 'point_score': ['5', '6']} b 0.505 0.495 40.8 feed
19:45:00 3 12 {'sets': [[6, 0], [0, 6]], 'current_set_games': [6, 6], 'sets_won_synthetic': True, 'point_score': ['5', '6']} b 0.496 0.504 40.8 feed
19:45:30 3 12 {'sets': [[6, 0], [0, 6]], 'current_set_games': [6, 6], 'sets_won_synthetic': True, 'point_score': ['5', '6']} b 0.499 0.500 40.7 feed
19:46:01 3 12 {'sets': [[6, 0], [0, 6]], 'current_set_games': [6, 6], 'sets_won_synthetic': True, 'point_score': ['5', '6']} b 0.507 0.493 40.8 feed
19:46:31 4 13 {'sets': [[6, 0], [6, 0], [0, 6]], 'current_set_games': [7, 6], 'sets_won_synthetic': True, 'point_score': ['16', '16']} 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.