| 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 | Naomi Osaka | Elise 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.
| 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).
| Adjustment | Naomi Osaka | Elise Mertens | Net |
|---|---|---|---|
| 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.
| Signal | Weight |
|---|---|
| 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.
| 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 |