Roman Safiullin

Where the 1679.8 rating comes from

From 190 matches played between 16 October 2017 and 19 October 2026, 188 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.

190 matches, from the most recent to the first

beaten by Sho Shimabukuro 1–2
19/10/26 · ATP 250 2026 · First round · detail
−16.91696.7 → 1679.8
beat Ilya Ivashka 2–1
19/10/26 · ATP 250 2026 · Qualifying — First round · detail
+8.71688.0 → 1696.7
beat Ilia Simakin 2–0
19/10/26 · ATP 250 2026 · Qualifying — Qualifying competition · detail
+6.81681.3 → 1688.0
beaten by Francisco Cerúndolo 0–2
08/10/26 · ATP 1000 2026 · Second round · detail
−8.11689.3 → 1681.3
beat Rinky Hijikata 2–0
07/10/26 · ATP 1000 2026 · First round · detail
+11.51677.8 → 1689.3
06/10/26 · ATP 1000 2026 · Qualifying — Qualifying competition · detail
+7.41670.4 → 1677.8
beat Alexis Galarneau 2–0
05/10/26 · ATP 1000 2026 · Qualifying — First round · detail
+7.51662.9 → 1670.4
beat Flavio Cobolli 2–0
28/09/26 · ATP 500 2026 · First round · detail
+17.21645.6 → 1662.9
beaten by Andrey Rublev 1–2
28/09/26 · ATP 500 2026 · Second round · detail
−8.31654.0 → 1645.6
beat Sun Fajing 2–0
21/09/26 · ATP 250 2026 · First round · detail
+5.41648.6 → 1654.0
beat Quentin Halys 2–1
21/09/26 · ATP 250 2026 · Second round · detail
+14.81633.8 → 1648.6
beaten by Daniil Medvedev 0–2
21/09/26 · ATP 250 2026 · Semifinals · detail
−5.51639.3 → 1633.8
beat Bu Yunchaokete 2–0
21/09/26 · ATP 250 2026 · Quarterfinals · detail
+11.01628.3 → 1639.3
beaten by Carlos Alcaraz 0–3
31/08/26 · ATP Grand Slam 2026 · First round · detail
−0.91629.2 → 1628.3
beaten by Hugo Grenier 1–2
24/08/26 · ATP 250 2026 · First round · detail
−14.81644.0 → 1629.2
beaten by Novak Djokovic 1–3
05/07/26 · ATP Grand Slam 2026 · Fourth round · detail
−2.11646.1 → 1644.0
beat João Fonseca 3–0
03/07/26 · ATP Grand Slam 2026 · Third round · detail
+17.11629.1 → 1646.1
01/07/26 · ATP Grand Slam 2026 · Second round · detail
+14.21614.8 → 1629.1
beat Andrey Rublev 3–2
29/06/26 · ATP Grand Slam 2026 · First round · detail
+18.41596.5 → 1614.8
08/06/26 · ATP 250 2026 · Qualifying — First round · detail
+9.01587.4 → 1596.5
beaten by Alexis Galarneau 1–2
08/06/26 · ATP 250 2026 · Qualifying — Qualifying competition · detail
−14.91602.4 → 1587.4
08/06/26 · ATP 250 2026 · First round · detail
−10.51612.9 → 1602.4
beaten by Casper Ruud 2–3
25/05/26 · ATP Grand Slam 2026 · First round · detail
−4.11617.0 → 1612.9
beaten by Fábián Marozsán 0–2
30/12/25 · ATP 250 2025 · First round · detail
−8.81625.8 → 1617.0
beaten by Félix Auger-Aliassime 0–3
27/08/25 · ATP Grand Slam 2025 · Second round · detail
−7.61633.4 → 1625.8
beat Gaël Monfils 3–2
25/08/25 · ATP Grand Slam 2025 · First round · detail
+17.41616.0 → 1633.4
beaten by Christopher O'Connell 0–2
18/08/25 · ATP 250 2025 · First round · detail
−12.81628.8 → 1616.0
beaten by Holger Rune 0–2
07/08/25 · ATP 1000 2025 · Second round · detail
−4.41633.2 → 1628.8
beat Alejandro Tabilo 2–0
06/08/25 · ATP 1000 2025 · First round · detail
+14.11619.1 → 1633.2
beaten by Casper Ruud 0–2
29/07/25 · ATP 1000 2025 · Second round · detail
−5.01624.1 → 1619.1
beat Ugo Blanchet 2–1
28/07/25 · ATP 1000 2025 · First round · detail
+8.01616.1 → 1624.1
beaten by Luciano Darderi 2–3
30/06/25 · ATP Grand Slam 2025 · First round · detail
−11.41627.5 → 1616.1
beaten by Hamad Medjedovic 1–2
23/06/25 · ATP 250 2025 · Second round · detail
−10.91638.3 → 1627.5
23/06/25 · ATP 250 2025 · First round · detail
+12.71625.7 → 1638.3
beaten by Justin Engel 1–2
16/06/25 · ATP 500 2025 · Qualifying — First round · detail
−14.11639.8 → 1625.7
09/06/25 · ATP 250 2025 · First round · detail
−12.41652.2 → 1639.8
beaten by Frances Tiafoe 0–3
26/05/25 · ATP Grand Slam 2025 · First round · detail
−10.21662.4 → 1652.2
beaten by Alexander Bublik 0–2
07/05/25 · ATP 1000 2025 · First round · detail
−12.01674.4 → 1662.4
beaten by Arthur Rinderknech 0–2
23/04/25 · ATP 1000 2025 · First round · detail
−15.81690.2 → 1674.4
beaten by Jakub Menšík 0–2
21/03/25 · ATP 1000 2025 · Third round · detail
−8.41698.6 → 1690.2
beat Alexei Popyrin 2–1
20/03/25 · ATP 1000 2025 · Second round · detail
+14.01684.6 → 1698.6
beat Jenson Brooksby 2–1
19/03/25 · ATP 1000 2025 · First round · detail
+14.41670.2 → 1684.6
beaten by Lorenzo Musetti 1–2
06/03/25 · ATP 1000 2025 · Second round · detail
−7.61677.8 → 1670.2
beat Reilly Opelka 2–0
05/03/25 · ATP 1000 2025 · First round · detail
+12.91664.9 → 1677.8
beaten by Tallon Griekspoor 1–2
24/02/25 · ATP 500 2025 · First round · detail
−8.11673.0 → 1664.9
beat Otto Virtanen 2–0
24/02/25 · ATP 500 2025 · Qualifying — Qualifying competition · detail
+6.61666.4 → 1673.0
24/02/25 · ATP 500 2025 · Qualifying — First round · detail
+8.51657.9 → 1666.4
beaten by Alex de Minaur 0–2
17/02/25 · ATP 500 2025 · First round · detail
−3.91661.8 → 1657.9
beaten by Thanasi Kokkinakis 1–3
13/01/25 · ATP Grand Slam 2025 · First round · detail
−7.71669.5 → 1661.8
beaten by Manuel Guinard 1–2
06/01/25 · ATP 250 2025 · First round · detail
−18.31687.8 → 1669.5

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.