Where the 1604.8 rating comes from
From 250 matches played between 12 January 2015 and 18 August 2026, 238 of them rated, and from them alone. Every line below was written at computation time: nothing is recomputed to show this page.
How to read this
On the right: the change this match produced, then the value before → after. A line's arrival value is the next line's starting value, down to the starting rating given to every newcomer. A ±0.0 is a counted match that did not move the rating, a walkover for instance.
250 matches, from the most recent to the first
beat Casper Ruud 1–1
15/08/26 · ATP 1000 2026 · Second round · retirement · detail
±0.01608.0 → 1608.0
beat Alexander Shevchenko 2–0
12/08/26 · ATP 1000 2026 · Qualifying — Qualifying competition · detail
+13.21579.0 → 1592.2
beat Dane Sweeny 2–1
10/08/26 · ATP 1000 2026 · Qualifying — First round · detail
+11.51567.5 → 1579.0
beat Jaime Faria 2–1
03/08/26 · ATP 1000 2026 · Qualifying — Qualifying competition · detail
+13.21567.6 → 1580.8
beaten by Andres Martin 1–2
27/07/26 · ATP 500 2026 · Qualifying — First round · detail
−17.81585.4 → 1567.6
beaten by Martín Landaluce 0–2
04/05/26 · ATP 1000 2026 · Qualifying — First round · detail
−15.11600.5 → 1585.4
beaten by Dino Prižmić 1–2
20/04/26 · ATP 1000 2026 · Qualifying — First round · detail
−10.81611.2 → 1600.5
beat Alexander Blockx 2–1
17/03/26 · ATP 1000 2026 · Qualifying — Qualifying competition · detail
+8.81624.2 → 1633.0
beat Nicolás Mejía 2–0
16/03/26 · ATP 1000 2026 · Qualifying — First round · detail
+6.31617.9 → 1624.2
beat Nikoloz Basilashvili 2–0
03/03/26 · ATP 1000 2026 · Qualifying — Qualifying competition · detail
+11.11615.5 → 1626.6
beat Billy Harris 2–0
02/03/26 · ATP 1000 2026 · Qualifying — First round · detail
+8.61606.9 → 1615.5
beaten by Quentin Halys 0–2
23/02/26 · ATP 500 2026 · Qualifying — First round · detail
−10.71617.6 → 1606.9
beat Vitaliy Sachko 2–0
09/02/26 · ATP 500 2026 · Qualifying — First round · detail
+8.51609.1 → 1617.6
beat Hugo Gaston 2–0
09/02/26 · ATP 500 2026 · Qualifying — Qualifying competition · detail
+9.91599.2 → 1609.1
beaten by Roberto Bautista Agut 1–2
02/02/26 · ATP 250 2026 · First round · detail
−9.11584.9 → 1575.8
beaten by Nishesh Basavareddy 2–3
19/01/26 · ATP Grand Slam 2026 · First round · detail
−10.31595.2 → 1584.9
beaten by Jacob Fearnley 0–2
12/01/26 · ATP 250 2026 · Qualifying — First round · detail
−11.11606.4 → 1595.2
beat Nikoloz Basilashvili 2–0
05/01/26 · ATP 250 2026 · Qualifying — First round · detail
+13.31593.1 → 1606.4
beaten by Dane Sweeny 1–2
05/01/26 · ATP 250 2026 · Qualifying — Qualifying competition · detail
−14.21607.3 → 1593.1
beaten by Botic van de Zandschulp 0–2
22/09/25 · ATP 500 2025 · Qualifying — First round · detail
−10.21625.1 → 1614.9
beaten by Alex de Minaur 0–3
25/08/25 · ATP Grand Slam 2025 · First round · detail
−3.71619.3 → 1615.7
beaten by Roberto Bautista Agut 0–1
18/08/25 · ATP 250 2025 · Second round · retirement · detail
±0.01606.6 → 1606.6
beaten by Alex de Minaur
30/07/25 · ATP 1000 2025 · Third round · walkover · detail
±0.01606.6 → 1606.6
beaten by Adrian Mannarino 0–3
30/06/25 · ATP Grand Slam 2025 · First round · detail
−14.61603.8 → 1589.2
beaten by Johannus Monday 1–2
23/06/25 · ATP 250 2025 · Qualifying — First round · detail
−16.51620.3 → 1603.8
beat James Duckworth 2–0
16/06/25 · ATP 500 2025 · Qualifying — First round · detail
+10.61609.7 → 1620.3
Only the matches the source publishes appear; what is missing is listed. The source gives the day, not the hour: two matches on the same day are ordered by a reproducible rule, which is not necessarily the real order.