Marta Kostyuk vs Mirra Andreeva

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

P(Marta Kostyuk) = 1.000  |  P(Mirra Andreeva) = 0.000
live composite (last tick)

Sharp anchor — Pinnacle pre-match

Pinnacle P(Marta Kostyuk) 0.438
Pinnacle P(Mirra Andreeva) 0.562
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 Marta KostyukMirra Andreeva 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
Marta Kostyuk all_court 122 0.644 3.4
Mirra Andreeva aggressive_baseliner 37 0.692 2.6

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

AdjustmentMarta KostyukMirra AndreevaNet
Match fatigue (14d load) -2.00pp (load 4.0) -2.50pp (load 5.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 (182 ticks)

Time Set Game Score Server P(Marta Kostyuk) P(Mirra Andreeva) Exp games Source
18:27:36 3 4 {'sets': [[6, 0], [0, 6]], 'current_set_games': [3, 1], 'sets_won_synthetic': True, 'point_score': ['40', '30']} b 0.562 0.438 29.8 feed
18:28:06 3 4 {'sets': [[6, 0], [0, 6]], 'current_set_games': [3, 1], 'sets_won_synthetic': True, 'point_score': ['40', '30']} b 0.597 0.403 29.8 feed
18:28:37 3 4 {'sets': [[6, 0], [0, 6]], 'current_set_games': [3, 1], 'sets_won_synthetic': True, 'point_score': ['40', '40']} b 0.554 0.446 29.7 feed
18:29:07 3 4 {'sets': [[6, 0], [0, 6]], 'current_set_games': [3, 1], 'sets_won_synthetic': True, 'point_score': ['40', 'A']} b 0.578 0.422 29.9 feed
18:29:38 3 5 {'sets': [[6, 0], [0, 6]], 'current_set_games': [4, 1], 'sets_won_synthetic': True, 'point_score': ['0', '0']} b 0.710 0.290 30.7 feed
18:30:08 3 5 {'sets': [[6, 0], [0, 6]], 'current_set_games': [4, 1], 'sets_won_synthetic': True, 'point_score': ['0', '0']} b 0.713 0.287 30.7 feed
18:30:39 3 5 {'sets': [[6, 0], [0, 6]], 'current_set_games': [4, 1], 'sets_won_synthetic': True, 'point_score': ['0', '0']} b 0.717 0.283 30.8 feed
18:31:09 3 5 {'sets': [[6, 0], [0, 6]], 'current_set_games': [4, 1], 'sets_won_synthetic': True, 'point_score': ['0', '0']} b 0.723 0.277 30.8 feed
18:31:40 3 5 {'sets': [[6, 0], [0, 6]], 'current_set_games': [4, 1], 'sets_won_synthetic': True, 'point_score': ['15', '0']} b 0.725 0.275 30.7 feed
18:32:11 3 5 {'sets': [[6, 0], [0, 6]], 'current_set_games': [4, 1], 'sets_won_synthetic': True, 'point_score': ['30', '0']} b 0.710 0.290 30.7 feed
18:32:41 3 5 {'sets': [[6, 0], [0, 6]], 'current_set_games': [4, 1], 'sets_won_synthetic': True, 'point_score': ['30', '15']} b 0.727 0.273 30.8 feed
18:33:12 3 5 {'sets': [[6, 0], [0, 6]], 'current_set_games': [4, 1], 'sets_won_synthetic': True, 'point_score': ['40', '15']} b 0.724 0.276 30.8 feed
18:33:42 3 6 {'sets': [[6, 0], [0, 6]], 'current_set_games': [4, 2], 'sets_won_synthetic': True, 'point_score': ['0', '0']} b 0.543 0.457 31.7 feed
18:34:13 3 6 {'sets': [[6, 0], [0, 6]], 'current_set_games': [4, 2], 'sets_won_synthetic': True, 'point_score': ['0', '15']} b 0.564 0.436 31.8 feed
18:34:43 3 6 {'sets': [[6, 0], [0, 6]], 'current_set_games': [4, 2], 'sets_won_synthetic': True, 'point_score': ['15', '15']} b 0.578 0.422 31.8 feed
18:35:14 3 6 {'sets': [[6, 0], [0, 6]], 'current_set_games': [4, 2], 'sets_won_synthetic': True, 'point_score': ['15', '30']} b 0.565 0.435 31.8 feed
18:35:44 3 6 {'sets': [[6, 0], [0, 6]], 'current_set_games': [4, 2], 'sets_won_synthetic': True, 'point_score': ['15', '40']} b 0.571 0.429 31.8 feed
18:36:15 3 6 {'sets': [[6, 0], [0, 6]], 'current_set_games': [4, 2], 'sets_won_synthetic': True, 'point_score': ['30', '40']} b 0.568 0.432 31.8 feed
18:36:45 3 7 {'sets': [[6, 0], [0, 6]], 'current_set_games': [5, 2], 'sets_won_synthetic': True, 'point_score': ['0', '0']} b 0.720 0.280 32.8 feed
18:37:16 3 7 {'sets': [[6, 0], [0, 6]], 'current_set_games': [5, 2], 'sets_won_synthetic': True, 'point_score': ['0', '0']} b 0.730 0.270 32.8 feed
18:37:46 3 7 {'sets': [[6, 0], [0, 6]], 'current_set_games': [5, 2], 'sets_won_synthetic': True, 'point_score': ['0', '0']} b 0.712 0.288 32.8 feed
18:38:17 3 7 {'sets': [[6, 0], [0, 6]], 'current_set_games': [5, 2], 'sets_won_synthetic': True, 'point_score': ['0', '0']} b 0.738 0.262 32.8 feed
18:38:47 3 7 {'sets': [[6, 0], [0, 6]], 'current_set_games': [5, 2], 'sets_won_synthetic': True, 'point_score': ['15', '0']} b 0.714 0.286 32.7 feed
18:39:18 3 7 {'sets': [[6, 0], [0, 6]], 'current_set_games': [5, 2], 'sets_won_synthetic': True, 'point_score': ['30', '0']} b 0.692 0.308 32.7 feed
18:39:48 3 7 {'sets': [[6, 0], [0, 6]], 'current_set_games': [5, 2], 'sets_won_synthetic': True, 'point_score': ['40', '0']} b 0.724 0.276 32.8 feed
18:40:19 3 7 {'sets': [[6, 0], [0, 6]], 'current_set_games': [5, 2], 'sets_won_synthetic': True, 'point_score': ['40', '15']} b 0.737 0.263 32.8 feed
18:40:49 3 7 {'sets': [[6, 0], [0, 6]], 'current_set_games': [5, 2], 'sets_won_synthetic': True, 'point_score': ['40', '30']} b 0.716 0.284 32.7 feed
18:41:20 3 7 {'sets': [[6, 0], [0, 6]], 'current_set_games': [5, 2], 'sets_won_synthetic': True, 'point_score': ['40', '40']} b 0.715 0.285 32.8 feed
18:41:51 3 7 {'sets': [[6, 0], [0, 6]], 'current_set_games': [5, 2], 'sets_won_synthetic': True, 'point_score': ['40', 'A']} b 0.734 0.266 32.9 feed
18:42:21 4 8 {'sets': [[6, 0], [6, 0], [0, 6]], 'current_set_games': [6, 2], 'sets_won_synthetic': True, 'point_score': ['8', '16']} b 1.000 0.000 0.0 feed

Showing last 30 of 182 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.