Here, I am going to make an alternative world ranking system for snooker. Currently, the world snooker rankings are based on a two-year rolling sum of prize money won by players in ranking tournaments. However, this may be a bit distorted for example because:
To create this ranking system I am going to use match, event and player data sourced from the excellent snooker.org via their API. I have obtained historical data back to the beginning of the 2013 season and have implemented a script to add the latest matches once per day from the Snooker.org API. As an example of the match data the table below has the last ten matches included in the ranking system.
Event | Datetime | Season | Player1 Name | Player1 Score | Player2 Score | Player2 Name |
Wuhan Open | Aug. 27, 2025, 11:31 a.m. | 2025 | Thepchaiya Un-Nooh | 1 | 5 | Mark Allen |
Wuhan Open | Aug. 27, 2025, 11:31 a.m. | 2025 | Tom Ford | 1 | 5 | John Higgins |
Wuhan Open | Aug. 27, 2025, 11:31 a.m. | 2025 | Judd Trump | 4 | 5 | Gary Wilson |
Wuhan Open | Aug. 28, 2025, 6:01 a.m. | 2025 | Mark Williams | 5 | 1 | Zhang Anda |
Wuhan Open | Aug. 28, 2025, 6:01 a.m. | 2025 | Xiao Guodong | 5 | 2 | Stan Moody |
Wuhan Open | Aug. 28, 2025, 11:33 a.m. | 2025 | Mark Allen | 5 | 4 | Si Jiahui |
Wuhan Open | Aug. 28, 2025, 11:33 a.m. | 2025 | Gary Wilson | 5 | 3 | John Higgins |
Wuhan Open | Aug. 29, 2025, 5:36 a.m. | 2025 | Xiao Guodong | 6 | 3 | Mark Williams |
Wuhan Open | Aug. 29, 2025, 11:24 a.m. | 2025 | Gary Wilson | 6 | 2 | Mark Allen |
Wuhan Open | Aug. 30, 2025, 5:57 a.m. | 2025 | Xiao Guodong | 10 | 9 | Gary Wilson |
Using the full database of snooker matches I can calculate an alternative player rating system. This rating system works by initialising all players ratings at a chosen level before their first match and then adjusting the ratings after each match based on each of the players ratings before the match and the outcome of the match. The current ratings are given in the table below:
Ranking | Player | Rating |
1 | Judd Trump | 1649.95 |
2 | Kyren Wilson | 1619.35 |
3 | John Higgins | 1572.75 |
4 | Xiao Guodong | 1559.60 |
5 | Neil Robertson | 1558.98 |
6 | Mark Selby | 1555.40 |
7 | Ronnie O'Sullivan | 1552.23 |
8 | Mark Allen | 1549.55 |
9 | Mark Williams | 1525.88 |
10 | Zhao Xintong | 1525.77 |
11 | Joe O'Connor | 1516.54 |
12 | Barry Hawkins | 1513.53 |
13 | Luca Brecel | 1502.84 |
14 | Ding Junhui | 1496.44 |
15 | Ali Carter | 1493.16 |
16 | Hossein Vafaei | 1491.62 |
17 | Stephen Maguire | 1475.17 |
18 | Shaun Murphy | 1474.52 |
19 | Si Jiahui | 1474.39 |
20 | Matthew Selt | 1458.21 |
21 | Chris Wakelin | 1453.93 |
22 | Yuan Sijun | 1446.05 |
23 | Elliot Slessor | 1445.56 |
24 | Wu Yize | 1445.32 |
25 | Ricky Walden | 1443.84 |
26 | Jak Jones | 1440.91 |
27 | Zhang Anda | 1440.87 |
28 | Jack Lisowski | 1439.66 |
29 | Pang Junxu | 1437.07 |
30 | David Gilbert | 1428.93 |
31 | Gary Wilson | 1421.71 |
32 | Cao Yupeng | 1420.40 |
33 | Stuart Bingham | 1417.99 |
34 | Ben Woollaston | 1416.70 |
35 | Anthony McGill | 1411.84 |
36 | Thepchaiya Un-Nooh | 1407.78 |
37 | Tom Ford | 1400.69 |
38 | Ryan Day | 1396.80 |
39 | Jackson Page | 1396.14 |
40 | Zhou Yuelong | 1392.82 |
41 | Martin O'Donnell | 1392.59 |
42 | Stan Moody | 1392.04 |
43 | Sam Craigie | 1391.89 |
44 | Graeme Dott | 1388.42 |
45 | Xu Si | 1387.62 |
46 | Noppon Saengkham | 1384.87 |
47 | Lei Peifan | 1378.53 |
48 | Aaron Hill | 1375.40 |
49 | Oliver Lines | 1371.83 |
50 | Matthew Stevens | 1371.51 |
51 | Lyu Haotian | 1370.87 |
52 | Daniel Wells | 1369.84 |
53 | Scott Donaldson | 1359.14 |
54 | Jamie Jones | 1354.16 |
55 | Marco Fu | 1352.69 |
56 | Mark Davis | 1352.69 |
57 | Fan Zhengyi | 1351.70 |
58 | Sunny Akani | 1349.64 |
59 | Robbie Williams | 1349.49 |
60 | Jimmy Robertson | 1348.18 |
61 | Zak Surety | 1346.16 |
62 | Chang Bingyu | 1344.60 |
63 | He Guoqiang | 1343.40 |
64 | Liu Hongyu | 1343.21 |
65 | Long Zehuang | 1342.35 |
66 | Robert Milkins | 1340.85 |
67 | Michael Holt | 1339.35 |
68 | David Lilley | 1336.67 |
69 | Liam Davies | 1317.64 |
70 | Louis Heathcote | 1313.72 |
71 | Ben Mertens | 1312.27 |
72 | Ishpreet Chadha | 1305.57 |
73 | Antoni Kowalski | 1301.66 |
74 | Steven Hallworth | 1301.59 |
75 | Jimmy White | 1300.42 |
76 | Dylan Emery | 1294.65 |
77 | Liam Highfield | 1294.30 |
78 | Jordan Brown | 1291.60 |
79 | Jiang Jun | 1282.14 |
80 | Duane Jones | 1279.21 |
81 | David Grace | 1277.97 |
82 | Gong Chenzhi | 1276.95 |
83 | Artemijs Zizins | 1275.91 |
84 | Allan Taylor | 1275.33 |
85 | Alexander Ursenbacher | 1274.88 |
86 | Gao Yang | 1274.43 |
87 | Julien Leclercq | 1273.85 |
88 | Ken Doherty | 1271.27 |
89 | Ross Muir | 1267.32 |
90 | Ian Burns | 1263.81 |
91 | Bulcsu Revesz | 1263.19 |
92 | Sanderson Lam | 1258.98 |
93 | Lan Yuhao | 1256.61 |
94 | Chatchapong Nasa | 1253.07 |
95 | Lim Kok Leong | 1252.45 |
96 | Yao Pengcheng | 1250.96 |
97 | Cheung Ka Wai | 1244.24 |
98 | Florian Nüßle | 1240.57 |
99 | Amir Sarkhosh | 1240.44 |
100 | Wang Yuchen | 1239.35 |
101 | Iulian Boiko | 1239.19 |
102 | Zhao Hanyang | 1238.59 |
103 | Liu Wenwei | 1238.17 |
104 | Connor Benzey | 1235.68 |
105 | Michał Szubarczyk | 1233.27 |
106 | Sahil Nayyar | 1228.22 |
107 | Haris Tahir | 1227.88 |
108 | Xu Yichen | 1227.47 |
109 | Leone Crowley | 1226.07 |
110 | Oliver Brown | 1223.82 |
111 | Mateusz Baranowski | 1215.41 |
112 | Bai Yulu | 1214.59 |
113 | Mohammed Shehab | 1214.27 |
114 | Liam Pullen | 1209.29 |
115 | Liam Graham | 1207.71 |
116 | Mitchell Mann | 1205.25 |
117 | Huang Jiahao | 1204.35 |
118 | Haydon Pinhey | 1200.34 |
119 | Farakh Ajaib | 1197.22 |
120 | Fergal Quinn | 1193.52 |
121 | Robbie McGuigan | 1188.16 |
122 | Jonas Luz | 1178.27 |
123 | Chris Totten | 1174.02 |
124 | Kreishh Gurbaxani | 1170.63 |
125 | Hatem Yassin | 1147.67 |
126 | Ng On Yee | 1144.09 |
127 | Reanne Evans | 1100.43 |
128 | Mink Nutcharut | 1047.65 |
At the moment the rating system is quite simple and not optimised but I intend to do some work to calibrate the rating system to maximise some chosen evaluation metric when time allows.