| Pinnacle P(Arthur Fils) | 0.609 |
|---|---|
| Pinnacle P(Alex de Minaur) | 0.391 |
| 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 | Arthur Fils | Alex de Minaur | 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 |
|---|---|---|---|---|
| Arthur Fils | aggressive_baseliner | 64 | 0.848 | 7.6 |
| Alex de Minaur | all_court | 189 | 0.790 | 4.0 |
Matchup adjustment: +0.00pp toward Alex de Minaur 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 | Arthur Fils | Alex de Minaur | Net |
|---|---|---|---|
| Match fatigue (14d load) | -3.00pp (load 6.0) | -2.30pp (load 4.6) | -0.70pp |
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(Arthur Fils) | P(Alex de Minaur) | Exp games | Source |
|---|---|---|---|---|---|---|---|---|
| 19:26:34 | 1 | 0 | {'sets': [], 'current_set_games': [0, 0], 'sets_won_synthetic': True, 'point_score': ['30', '30']} | b | 0.498 | 0.502 | 24.7 | feed |
| 19:27:04 | 1 | 0 | {'sets': [], 'current_set_games': [0, 0], 'sets_won_synthetic': True, 'point_score': ['40', '30']} | b | 0.488 | 0.512 | 24.4 | feed |
| 19:27:35 | 1 | 0 | {'sets': [], 'current_set_games': [0, 0], 'sets_won_synthetic': True, 'point_score': ['40', '40']} | b | 0.501 | 0.499 | 24.6 | feed |
| 19:28:05 | 1 | 0 | {'sets': [], 'current_set_games': [0, 0], 'sets_won_synthetic': True, 'point_score': ['40', 'A']} | b | 0.500 | 0.500 | 24.7 | feed |
| 19:28:35 | 1 | 0 | {'sets': [], 'current_set_games': [0, 0], 'sets_won_synthetic': True, 'point_score': ['40', '40']} | b | 0.483 | 0.517 | 24.6 | feed |
| 19:29:06 | 1 | 0 | {'sets': [], 'current_set_games': [0, 0], 'sets_won_synthetic': True, 'point_score': ['40', 'A']} | b | 0.489 | 0.510 | 24.3 | feed |
| 19:29:37 | 1 | 1 | {'sets': [], 'current_set_games': [1, 0], 'sets_won_synthetic': True, 'point_score': ['0', '0']} | b | 0.513 | 0.487 | 25.5 | feed |
| 19:30:07 | 1 | 1 | {'sets': [], 'current_set_games': [1, 0], 'sets_won_synthetic': True, 'point_score': ['0', '0']} | b | 0.519 | 0.481 | 25.3 | feed |
| 19:30:38 | 1 | 1 | {'sets': [], 'current_set_games': [1, 0], 'sets_won_synthetic': True, 'point_score': ['0', '0']} | b | 0.528 | 0.472 | 25.6 | feed |
| 19:31:08 | 1 | 1 | {'sets': [], 'current_set_games': [1, 0], 'sets_won_synthetic': True, 'point_score': ['0', '0']} | b | 0.502 | 0.498 | 25.5 | feed |
| 19:31:39 | 1 | 1 | {'sets': [], 'current_set_games': [1, 0], 'sets_won_synthetic': True, 'point_score': ['0', '0']} | b | 0.499 | 0.501 | 25.3 | feed |
| 22:19:28 | 3 | 10 | {'sets': [[6, 0], [6, 0]], 'current_set_games': [6, 4], 'sets_won_synthetic': True, 'point_score': ['7', '12']} | b | 1.000 | 0.000 | 0.0 | feed |
| 22:20:28 | 3 | 10 | {'sets': [[6, 0], [6, 0]], 'current_set_games': [6, 4], 'sets_won_synthetic': True, 'point_score': ['7', '12']} | b | 1.000 | 0.000 | 0.0 | feed |
| 22:21:28 | 3 | 10 | {'sets': [[6, 0], [6, 0]], 'current_set_games': [6, 4], 'sets_won_synthetic': True, 'point_score': ['7', '12']} | b | 1.000 | 0.000 | 0.0 | feed |
| 22:22:29 | 3 | 10 | {'sets': [[6, 0], [6, 0]], 'current_set_games': [6, 4], 'sets_won_synthetic': True, 'point_score': ['7', '12']} | b | 1.000 | 0.000 | 0.0 | feed |
| 22:23:28 | 3 | 10 | {'sets': [[6, 0], [6, 0]], 'current_set_games': [6, 4], 'sets_won_synthetic': True, 'point_score': ['7', '12']} | b | 1.000 | 0.000 | 0.0 | feed |
| 22:24:29 | 3 | 10 | {'sets': [[6, 0], [6, 0]], 'current_set_games': [6, 4], 'sets_won_synthetic': True, 'point_score': ['7', '12']} | b | 1.000 | 0.000 | 0.0 | feed |
| 22:25:29 | 3 | 10 | {'sets': [[6, 0], [6, 0]], 'current_set_games': [6, 4], 'sets_won_synthetic': True, 'point_score': ['7', '12']} | b | 1.000 | 0.000 | 0.0 | feed |
| 22:26:29 | 3 | 10 | {'sets': [[6, 0], [6, 0]], 'current_set_games': [6, 4], 'sets_won_synthetic': True, 'point_score': ['7', '12']} | b | 1.000 | 0.000 | 0.0 | feed |
| 22:27:29 | 3 | 10 | {'sets': [[6, 0], [6, 0]], 'current_set_games': [6, 4], 'sets_won_synthetic': True, 'point_score': ['7', '12']} | b | 1.000 | 0.000 | 0.0 | feed |
| 22:28:29 | 3 | 10 | {'sets': [[6, 0], [6, 0]], 'current_set_games': [6, 4], 'sets_won_synthetic': True, 'point_score': ['7', '12']} | b | 1.000 | 0.000 | 0.0 | feed |
| 22:29:30 | 3 | 10 | {'sets': [[6, 0], [6, 0]], 'current_set_games': [6, 4], 'sets_won_synthetic': True, 'point_score': ['7', '12']} | b | 1.000 | 0.000 | 0.0 | feed |
| 22:30:55 | 3 | 10 | {'sets': [[6, 0], [6, 0]], 'current_set_games': [6, 4], 'sets_won_synthetic': True, 'point_score': ['7', '12']} | b | 1.000 | 0.000 | 0.0 | feed |
| 22:31:55 | 3 | 10 | {'sets': [[6, 0], [6, 0]], 'current_set_games': [6, 4], 'sets_won_synthetic': True, 'point_score': ['7', '12']} | b | 1.000 | 0.000 | 0.0 | feed |
| 22:32:55 | 3 | 10 | {'sets': [[6, 0], [6, 0]], 'current_set_games': [6, 4], 'sets_won_synthetic': True, 'point_score': ['7', '12']} | b | 1.000 | 0.000 | 0.0 | feed |
| 22:33:55 | 3 | 10 | {'sets': [[6, 0], [6, 0]], 'current_set_games': [6, 4], 'sets_won_synthetic': True, 'point_score': ['7', '12']} | b | 1.000 | 0.000 | 0.0 | feed |
| 22:34:56 | 3 | 10 | {'sets': [[6, 0], [6, 0]], 'current_set_games': [6, 4], 'sets_won_synthetic': True, 'point_score': ['7', '12']} | b | 1.000 | 0.000 | 0.0 | feed |
| 22:35:56 | 3 | 10 | {'sets': [[6, 0], [6, 0]], 'current_set_games': [6, 4], 'sets_won_synthetic': True, 'point_score': ['7', '12']} | b | 1.000 | 0.000 | 0.0 | feed |
| 22:36:56 | 3 | 10 | {'sets': [[6, 0], [6, 0]], 'current_set_games': [6, 4], 'sets_won_synthetic': True, 'point_score': ['7', '12']} | b | 1.000 | 0.000 | 0.0 | feed |
| 22:37:56 | 3 | 10 | {'sets': [[6, 0], [6, 0]], 'current_set_games': [6, 4], 'sets_won_synthetic': True, 'point_score': ['7', '12']} | b | 1.000 | 0.000 | 0.0 | feed |