Naomi Osaka vs Elise Mertens

hard wta grand_slam best of 3 tennis_wta_us_open · commence 2026-09-05 23:00:00+00:00 · completed winner: a

P(Naomi Osaka) = 1.000  |  P(Elise Mertens) = 0.000
live composite (last tick)

Sharp anchor — Pinnacle pre-match

Pinnacle P(Naomi Osaka) 0.731
Pinnacle P(Elise Mertens) 0.269
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 Naomi OsakaElise Mertens 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
Naomi Osaka big_server 76 0.823 7.0
Elise Mertens big_server 171 0.690 3.9

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

AdjustmentNaomi OsakaElise MertensNet
Match fatigue (14d load) -1.00pp (load 2.0) -3.00pp (load 8.0) +2.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 (52 ticks)

Time Set Game Score Server P(Naomi Osaka) P(Elise Mertens) Exp games Source
23:21:08 1 3 {'sets': [], 'current_set_games': [2, 1], 'sets_won_synthetic': True, 'point_score': ['0', '15']} b 0.510 0.490 27.5 feed
23:21:39 1 3 {'sets': [], 'current_set_games': [2, 1], 'sets_won_synthetic': True, 'point_score': ['15', '15']} b 0.522 0.478 27.4 feed
23:22:09 1 3 {'sets': [], 'current_set_games': [2, 1], 'sets_won_synthetic': True, 'point_score': ['15', '30']} b 0.517 0.483 27.5 feed
23:22:40 1 3 {'sets': [], 'current_set_games': [2, 1], 'sets_won_synthetic': True, 'point_score': ['30', '30']} b 0.500 0.500 27.5 feed
23:23:10 1 3 {'sets': [], 'current_set_games': [2, 1], 'sets_won_synthetic': True, 'point_score': ['30', '30']} b 0.500 0.500 27.4 feed
23:23:41 1 3 {'sets': [], 'current_set_games': [2, 1], 'sets_won_synthetic': True, 'point_score': ['30', '40']} b 0.505 0.495 27.3 feed
23:24:11 1 3 {'sets': [], 'current_set_games': [2, 1], 'sets_won_synthetic': True, 'point_score': ['30', '40']} b 0.507 0.493 27.5 feed
23:24:42 1 4 {'sets': [], 'current_set_games': [3, 1], 'sets_won_synthetic': True, 'point_score': ['0', '0']} b 0.531 0.469 28.5 feed
23:25:13 1 4 {'sets': [], 'current_set_games': [3, 1], 'sets_won_synthetic': True, 'point_score': ['0', '15']} b 0.516 0.484 28.2 feed
23:25:43 1 4 {'sets': [], 'current_set_games': [3, 1], 'sets_won_synthetic': True, 'point_score': ['15', '15']} b 0.545 0.455 28.4 feed
23:26:14 1 4 {'sets': [], 'current_set_games': [3, 1], 'sets_won_synthetic': True, 'point_score': ['15', '30']} b 0.532 0.468 28.4 feed
23:26:44 1 4 {'sets': [], 'current_set_games': [3, 1], 'sets_won_synthetic': True, 'point_score': ['15', '40']} b 0.534 0.466 28.5 feed
23:27:15 1 5 {'sets': [], 'current_set_games': [4, 1], 'sets_won_synthetic': True, 'point_score': ['0', '0']} b 0.610 0.390 29.3 feed
02:01:02 4 12 {'sets': [[6, 0], [6, 0], [0, 6]], 'current_set_games': [7, 5], 'sets_won_synthetic': True, 'point_score': ['14', '16']} b 1.000 0.000 0.0 feed
02:02:02 4 12 {'sets': [[6, 0], [6, 0], [0, 6]], 'current_set_games': [7, 5], 'sets_won_synthetic': True, 'point_score': ['14', '16']} b 1.000 0.000 0.0 feed
02:03:02 4 12 {'sets': [[6, 0], [6, 0], [0, 6]], 'current_set_games': [7, 5], 'sets_won_synthetic': True, 'point_score': ['14', '16']} b 1.000 0.000 0.0 feed
02:04:02 4 12 {'sets': [[6, 0], [6, 0], [0, 6]], 'current_set_games': [7, 5], 'sets_won_synthetic': True, 'point_score': ['14', '16']} b 1.000 0.000 0.0 feed
02:05:26 4 12 {'sets': [[6, 0], [6, 0], [0, 6]], 'current_set_games': [7, 5], 'sets_won_synthetic': True, 'point_score': ['14', '16']} b 1.000 0.000 0.0 feed
02:06:27 4 12 {'sets': [[6, 0], [6, 0], [0, 6]], 'current_set_games': [7, 5], 'sets_won_synthetic': True, 'point_score': ['14', '16']} b 1.000 0.000 0.0 feed
02:07:27 4 12 {'sets': [[6, 0], [6, 0], [0, 6]], 'current_set_games': [7, 5], 'sets_won_synthetic': True, 'point_score': ['14', '16']} b 1.000 0.000 0.0 feed
02:08:27 4 12 {'sets': [[6, 0], [6, 0], [0, 6]], 'current_set_games': [7, 5], 'sets_won_synthetic': True, 'point_score': ['14', '16']} b 1.000 0.000 0.0 feed
02:09:28 4 12 {'sets': [[6, 0], [6, 0], [0, 6]], 'current_set_games': [7, 5], 'sets_won_synthetic': True, 'point_score': ['14', '16']} b 1.000 0.000 0.0 feed
02:10:28 4 12 {'sets': [[6, 0], [6, 0], [0, 6]], 'current_set_games': [7, 5], 'sets_won_synthetic': True, 'point_score': ['14', '16']} b 1.000 0.000 0.0 feed
02:11:28 4 12 {'sets': [[6, 0], [6, 0], [0, 6]], 'current_set_games': [7, 5], 'sets_won_synthetic': True, 'point_score': ['14', '16']} b 1.000 0.000 0.0 feed
02:12:28 4 12 {'sets': [[6, 0], [6, 0], [0, 6]], 'current_set_games': [7, 5], 'sets_won_synthetic': True, 'point_score': ['14', '16']} b 1.000 0.000 0.0 feed
02:13:28 4 12 {'sets': [[6, 0], [6, 0], [0, 6]], 'current_set_games': [7, 5], 'sets_won_synthetic': True, 'point_score': ['14', '16']} b 1.000 0.000 0.0 feed
02:14:28 4 12 {'sets': [[6, 0], [6, 0], [0, 6]], 'current_set_games': [7, 5], 'sets_won_synthetic': True, 'point_score': ['14', '16']} b 1.000 0.000 0.0 feed
02:15:28 4 12 {'sets': [[6, 0], [6, 0], [0, 6]], 'current_set_games': [7, 5], 'sets_won_synthetic': True, 'point_score': ['14', '16']} b 1.000 0.000 0.0 feed
02:16:28 4 12 {'sets': [[6, 0], [6, 0], [0, 6]], 'current_set_games': [7, 5], 'sets_won_synthetic': True, 'point_score': ['14', '16']} b 1.000 0.000 0.0 feed
02:17:29 4 12 {'sets': [[6, 0], [6, 0], [0, 6]], 'current_set_games': [7, 5], 'sets_won_synthetic': True, 'point_score': ['14', '16']} b 1.000 0.000 0.0 feed

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