Christopher O'Connell

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

beaten by Taylor Harry Fritz 0–2
18/08/26 · ATP 1000 2026 · Fourth round · detail
−3.21608.0 → 1604.8
16/08/26 · ATP 1000 2026 · Third round · walkover · detail
±0.01608.0 → 1608.0
beat Casper Ruud 1–1
15/08/26 · ATP 1000 2026 · Second round · retirement · detail
±0.01608.0 → 1608.0
beat Kamil Majchrzak 2–0
13/08/26 · ATP 1000 2026 · First round · detail
+15.81592.2 → 1608.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
beaten by James Duckworth 0–2
04/08/26 · ATP 1000 2026 · First round · detail
−13.31580.8 → 1567.5
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
beaten by Mariano Navone 0–2
30/03/26 · ATP 250 2026 · First round · detail
−13.51624.7 → 1611.2
beaten by Marton Fucsovics 0–2
18/03/26 · ATP 1000 2026 · First round · detail
−8.21633.0 → 1624.7
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
beaten by Marton Fucsovics 0–2
04/03/26 · ATP 1000 2026 · First round · detail
−8.61626.6 → 1617.9
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
beat Valentin Royer 2–1
09/02/26 · ATP 500 2026 · First round · detail
+11.51587.7 → 1599.2
beaten by Ugo Humbert 0–2
09/02/26 · ATP 500 2026 · Quarterfinals · detail
−6.01593.7 → 1587.7
beat Cameron Norrie 2–0
09/02/26 · ATP 500 2026 · Second round · detail
+17.91575.8 → 1593.7
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
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 Alex Michelsen 1–2
30/12/25 · ATP 250 2025 · First round · detail
−10.11617.4 → 1607.3
beaten by Denis Shapovalov 0–2
02/10/25 · ATP 1000 2025 · Second round · detail
−7.81625.2 → 1617.4
beat Damir Džumhur 2–0
01/10/25 · ATP 1000 2025 · First round · detail
+10.31614.9 → 1625.2
beaten by Botic van de Zandschulp 0–2
22/09/25 · ATP 500 2025 · Qualifying — First round · detail
−10.21625.1 → 1614.9
beat Zhou Yi 2–0
15/09/25 · ATP 250 2025 · Second round · detail
+7.01618.0 → 1625.1
beat Quentin Halys 2–1
15/09/25 · ATP 250 2025 · First round · detail
+12.71605.4 → 1618.0
beaten by Alejandro Tabilo 1–2
15/09/25 · ATP 250 2025 · Quarterfinals · detail
−10.31615.7 → 1605.4
beaten by Alex de Minaur 0–3
25/08/25 · ATP Grand Slam 2025 · First round · detail
−3.71619.3 → 1615.7
beat Roman Safiullin 2–0
18/08/25 · ATP 250 2025 · First round · detail
+12.81606.6 → 1619.3
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
29/07/25 · ATP 1000 2025 · Second round · detail
+19.81586.8 → 1606.6
beat Chun-hsin Tseng 2–0
28/07/25 · ATP 1000 2025 · First round · detail
+9.31577.5 → 1586.8
beaten by Ethan Quinn 0–2
21/07/25 · ATP 500 2025 · First round · detail
−11.71589.2 → 1577.5
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
beaten by Alex Bolt 1–2
16/06/25 · ATP 500 2025 · Qualifying — Qualifying competition · detail
−12.31622.0 → 1609.7
beaten by Holger Rune 0–2
16/06/25 · ATP 500 2025 · First round · detail
−3.51625.5 → 1622.0
beaten by Adrian Mannarino 0–2
09/06/25 · ATP 250 2025 · First round · detail
−16.11641.6 → 1625.5
beaten by Ugo Humbert 0–3
26/05/25 · ATP Grand Slam 2025 · First round · detail
−7.21648.9 → 1641.6

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.