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 |
Masters | Jan. 16, 2025, 1:04 p.m. | 2024 | Neil Robertson | 2 | 6 | Shaun Murphy |
Masters | Jan. 16, 2025, 7:01 p.m. | 2024 | Mark Allen | 6 | 2 | Mark Selby |
Masters | Jan. 17, 2025, 1:11 p.m. | 2024 | Judd Trump | 6 | 3 | Ding Junhui |
Masters | Jan. 17, 2025, 6:49 p.m. | 2024 | Luca Brecel | 4 | 6 | Kyren Wilson |
Masters | Jan. 18, 2025, 1:07 p.m. | 2024 | Shaun Murphy | 6 | 3 | Mark Allen |
Masters | Jan. 18, 2025, 7:03 p.m. | 2024 | Judd Trump | 3 | 6 | Kyren Wilson |
Masters | Jan. 19, 2025, 1:03 p.m. | 2024 | Shaun Murphy | 10 | 7 | Kyren Wilson |
Championship League - Group 5 | Jan. 20, 2025, 10:58 a.m. | 2024 | Neil Robertson | 3 | 2 | Matthew Selt |
Championship League - Group 5 | Jan. 20, 2025, 10:58 a.m. | 2024 | Judd Trump | 3 | 1 | Tom Ford |
Championship League - Group 5 | Jan. 20, 2025, 12:19 p.m. | 2024 | Judd Trump | 3 | 1 | Stuart Bingham |
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 | 1705.40 |
2 | Kyren Wilson | 1614.77 |
3 | Mark Allen | 1599.40 |
4 | Mark Selby | 1554.96 |
5 | John Higgins | 1549.18 |
6 | Barry Hawkins | 1538.99 |
7 | Mark Williams | 1534.63 |
8 | Ronnie O'Sullivan | 1534.25 |
9 | Shaun Murphy | 1534.19 |
10 | Neil Robertson | 1526.60 |
11 | Ding Junhui | 1523.10 |
12 | Si Jiahui | 1513.47 |
13 | Xiao Guodong | 1511.66 |
14 | Hossein Vafaei | 1482.07 |
15 | Luca Brecel | 1481.27 |
16 | Jack Lisowski | 1477.18 |
17 | David Gilbert | 1467.05 |
18 | Wu Yize | 1464.51 |
19 | Stuart Bingham | 1460.71 |
20 | Zhang Anda | 1453.77 |
21 | Chris Wakelin | 1453.67 |
22 | Jak Jones | 1453.23 |
23 | Ali Carter | 1452.06 |
24 | Pang Junxu | 1448.42 |
25 | Lyu Haotian | 1429.13 |
26 | Noppon Saengkham | 1424.39 |
27 | Cao Yupeng | 1420.40 |
28 | Thepchaiya Un-Nooh | 1418.91 |
29 | Ryan Day | 1418.62 |
30 | Elliot Slessor | 1417.98 |
31 | Joe O'Connor | 1416.75 |
32 | Anthony McGill | 1415.49 |
33 | Yuan Sijun | 1409.86 |
34 | Martin O'Donnell | 1407.74 |
35 | Stephen Maguire | 1406.64 |
36 | Matthew Selt | 1404.96 |
37 | Zhou Yuelong | 1404.29 |
38 | Ben Woollaston | 1402.93 |
39 | Graeme Dott | 1401.50 |
40 | Tom Ford | 1401.40 |
41 | Jackson Page | 1397.98 |
42 | Gary Wilson | 1390.66 |
43 | Ricky Walden | 1388.10 |
44 | Xu Si | 1386.69 |
45 | Sam Craigie | 1383.42 |
46 | Fan Zhengyi | 1381.92 |
47 | Daniel Wells | 1375.11 |
48 | Lei Peifan | 1373.47 |
49 | Robert Milkins | 1371.60 |
50 | Jimmy Robertson | 1367.79 |
51 | Scott Donaldson | 1366.33 |
52 | Robbie Williams | 1365.33 |
53 | He Guoqiang | 1363.44 |
54 | Marco Fu | 1359.90 |
55 | Martin Gould | 1359.24 |
56 | Mark Davis | 1355.18 |
57 | Sunny Akani | 1353.44 |
58 | Michael White | 1350.98 |
59 | Oliver Lines | 1347.42 |
60 | Matthew Stevens | 1339.88 |
61 | Long Zehuang | 1338.28 |
62 | Michael Holt | 1335.42 |
63 | Jamie Jones | 1333.94 |
64 | Stan Moody | 1333.17 |
65 | Tian Pengfei | 1328.54 |
66 | Liu Hongyu | 1328.51 |
67 | Jimmy White | 1325.75 |
68 | Aaron Hill | 1323.21 |
69 | David Lilley | 1321.11 |
70 | Dominic Dale | 1320.30 |
71 | Jordan Brown | 1318.31 |
72 | Antoni Kowalski | 1316.76 |
73 | Ishpreet Chadha | 1311.56 |
74 | Jiang Jun | 1305.67 |
75 | Louis Heathcote | 1304.18 |
76 | Zak Surety | 1294.37 |
77 | Jamie Clarke | 1292.31 |
78 | Anthony Hamilton | 1288.29 |
79 | Alfie Burden | 1286.30 |
80 | Alexander Ursenbacher | 1281.61 |
81 | Julien Leclercq | 1281.23 |
82 | David Grace | 1280.70 |
83 | Ashley Carty | 1278.78 |
84 | Ma Hailong | 1277.30 |
85 | Joe Perry | 1277.04 |
86 | Andrew Higginson | 1276.34 |
87 | Stuart Carrington | 1269.71 |
88 | Ben Mertens | 1268.89 |
89 | Xing Zihao | 1268.52 |
90 | Artemijs Zizins | 1267.69 |
91 | Liam Davies | 1265.38 |
92 | Gong Chenzhi | 1263.56 |
93 | Duane Jones | 1263.55 |
94 | Cheung Ka Wai | 1263.53 |
95 | Bulcsu Revesz | 1263.16 |
96 | Ian Burns | 1260.23 |
97 | Ross Muir | 1257.90 |
98 | Allan Taylor | 1257.10 |
99 | Lim Kok Leong | 1252.45 |
100 | Sanderson Lam | 1242.65 |
101 | Haris Tahir | 1232.80 |
102 | Amir Sarkhosh | 1231.58 |
103 | Hammad Miah | 1221.09 |
104 | Liam Pullen | 1219.90 |
105 | Liam Graham | 1217.46 |
106 | Mohammed Shehab | 1217.40 |
107 | Kreishh Gurbaxani | 1216.41 |
108 | Bai Yulu | 1215.53 |
109 | Wang Yuchen | 1211.00 |
110 | Jonas Luz | 1210.86 |
111 | Huang Jiahao | 1207.65 |
112 | Chris Totten | 1207.03 |
113 | Rory Thor | 1203.43 |
114 | Mitchell Mann | 1200.75 |
115 | Haydon Pinhey | 1192.10 |
116 | Andrew Pagett | 1188.07 |
117 | Mostafa Dorgham | 1187.42 |
118 | Dean Young | 1179.21 |
119 | Robbie McGuigan | 1170.06 |
120 | Farakh Ajaib | 1163.53 |
121 | Manasawin Phetmalaikul | 1145.80 |
122 | Baipat Siripaporn | 1108.54 |
123 | Ahmed Elsayed | 1102.90 |
124 | Mink Nutcharut | 1071.40 |
125 | Reanne Evans | 1061.57 |
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.