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 |
World Open Qualifiers | Dec. 20, 2024, 10:01 a.m. | 2024 | Long Zehuang | 5 | 2 | Mitchell Mann |
Snooker Championship | Dec. 20, 2024, 2:12 p.m. | 2024 | Mark Williams | 2 | 4 | Luca Brecel |
World Open Qualifiers | Dec. 20, 2024, 2:33 p.m. | 2024 | Gary Wilson | 5 | 1 | Gong Chenzhi |
World Open Qualifiers | Dec. 20, 2024, 2:33 p.m. | 2024 | Tom Ford | 5 | 1 | Ahmed Elsayed |
World Open Qualifiers | Dec. 20, 2024, 2:33 p.m. | 2024 | Jordan Brown | 5 | 1 | Liam Graham |
World Open Qualifiers | Dec. 20, 2024, 2:33 p.m. | 2024 | Joe Perry | 5 | 0 | Kreishh Gurbaxani |
World Open Qualifiers | Dec. 20, 2024, 2:33 p.m. | 2024 | Hossein Vafaei | 5 | 3 | Ben Mertens |
World Open Qualifiers | Dec. 20, 2024, 2:33 p.m. | 2024 | Joe O'Connor | 5 | 3 | Alexander Ursenbacher |
World Open Qualifiers | Dec. 20, 2024, 2:33 p.m. | 2024 | Stephen Maguire | 4 | 5 | Alfie Burden |
Snooker Championship | Dec. 20, 2024, 4:51 p.m. | 2024 | Ronnie O'Sullivan | 2 | 4 | Mark Allen |
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 | 1701.30 |
2 | Mark Allen | 1589.71 |
3 | Kyren Wilson | 1579.60 |
4 | Ronnie O'Sullivan | 1564.17 |
5 | John Higgins | 1555.63 |
6 | Mark Williams | 1554.23 |
7 | Barry Hawkins | 1543.29 |
8 | Neil Robertson | 1521.12 |
9 | Ding Junhui | 1519.04 |
10 | Mark Selby | 1515.27 |
11 | Xiao Guodong | 1508.32 |
12 | Shaun Murphy | 1499.70 |
13 | Chris Wakelin | 1491.03 |
14 | Luca Brecel | 1481.81 |
15 | Si Jiahui | 1481.10 |
16 | David Gilbert | 1479.31 |
17 | Ali Carter | 1478.38 |
18 | Jack Lisowski | 1473.39 |
19 | Wu Yize | 1464.51 |
20 | Zhang Anda | 1458.27 |
21 | Stuart Bingham | 1456.71 |
22 | Pang Junxu | 1455.82 |
23 | Hossein Vafaei | 1455.38 |
24 | Jak Jones | 1449.89 |
25 | Elliot Slessor | 1424.81 |
26 | Lyu Haotian | 1423.11 |
27 | Gary Wilson | 1421.48 |
28 | Noppon Saengkham | 1421.36 |
29 | Cao Yupeng | 1420.40 |
30 | Jackson Page | 1418.99 |
31 | Thepchaiya Un-Nooh | 1418.91 |
32 | Matthew Selt | 1417.30 |
33 | Ryan Day | 1413.80 |
34 | Anthony McGill | 1413.73 |
35 | Yuan Sijun | 1409.86 |
36 | Stephen Maguire | 1406.64 |
37 | Joe O'Connor | 1403.77 |
38 | Tom Ford | 1403.71 |
39 | Martin O'Donnell | 1403.02 |
40 | Zhou Yuelong | 1399.22 |
41 | Ben Woollaston | 1399.11 |
42 | Graeme Dott | 1395.35 |
43 | Fan Zhengyi | 1392.27 |
44 | Xu Si | 1386.69 |
45 | Jimmy Robertson | 1385.99 |
46 | Ricky Walden | 1384.78 |
47 | Sam Craigie | 1383.42 |
48 | Daniel Wells | 1369.84 |
49 | Lei Peifan | 1367.53 |
50 | Marco Fu | 1366.39 |
51 | Scott Donaldson | 1366.33 |
52 | Robbie Williams | 1359.82 |
53 | Martin Gould | 1359.24 |
54 | He Guoqiang | 1358.93 |
55 | Oliver Lines | 1353.43 |
56 | Robert Milkins | 1352.53 |
57 | Michael White | 1350.98 |
58 | Mark Davis | 1349.34 |
59 | Sunny Akani | 1341.85 |
60 | Long Zehuang | 1338.28 |
61 | Michael Holt | 1335.42 |
62 | Matthew Stevens | 1333.37 |
63 | Stan Moody | 1333.17 |
64 | Jimmy White | 1331.89 |
65 | Jamie Jones | 1328.61 |
66 | Dominic Dale | 1328.34 |
67 | Liu Hongyu | 1325.11 |
68 | Aaron Hill | 1323.21 |
69 | Tian Pengfei | 1323.19 |
70 | David Lilley | 1321.11 |
71 | Jordan Brown | 1318.31 |
72 | Antoni Kowalski | 1310.49 |
73 | Jiang Jun | 1305.67 |
74 | Ishpreet Chadha | 1303.53 |
75 | Jamie Clarke | 1299.88 |
76 | Louis Heathcote | 1296.61 |
77 | Zak Surety | 1294.37 |
78 | Anthony Hamilton | 1294.23 |
79 | David Grace | 1287.21 |
80 | Alfie Burden | 1286.30 |
81 | Julien Leclercq | 1285.02 |
82 | Ashley Carty | 1283.49 |
83 | Ma Hailong | 1282.37 |
84 | Alexander Ursenbacher | 1281.61 |
85 | Joe Perry | 1277.04 |
86 | Andrew Higginson | 1276.34 |
87 | Liam Davies | 1271.22 |
88 | Artemijs Zizins | 1270.63 |
89 | Stuart Carrington | 1269.71 |
90 | Ben Mertens | 1268.89 |
91 | Xing Zihao | 1268.52 |
92 | Bulcsu Revesz | 1267.88 |
93 | Ian Burns | 1265.75 |
94 | Gong Chenzhi | 1263.56 |
95 | Cheung Ka Wai | 1263.53 |
96 | Ross Muir | 1263.17 |
97 | Allan Taylor | 1260.88 |
98 | Duane Jones | 1253.20 |
99 | Lim Kok Leong | 1252.45 |
100 | Sanderson Lam | 1242.65 |
101 | Haris Tahir | 1237.27 |
102 | Liam Pullen | 1225.23 |
103 | Hammad Miah | 1221.09 |
104 | Bai Yulu | 1220.88 |
105 | Amir Sarkhosh | 1219.33 |
106 | Liam Graham | 1217.46 |
107 | Mohammed Shehab | 1217.40 |
108 | Kreishh Gurbaxani | 1216.41 |
109 | Jonas Luz | 1214.30 |
110 | Wang Yuchen | 1212.83 |
111 | Huang Jiahao | 1212.16 |
112 | Rory Thor | 1204.86 |
113 | Mitchell Mann | 1200.75 |
114 | Chris Totten | 1194.75 |
115 | Haydon Pinhey | 1192.10 |
116 | Mostafa Dorgham | 1189.58 |
117 | Andrew Pagett | 1188.07 |
118 | Dean Young | 1182.24 |
119 | Robbie McGuigan | 1170.06 |
120 | Farakh Ajaib | 1167.37 |
121 | Manasawin Phetmalaikul | 1133.25 |
122 | Baipat Siripaporn | 1111.94 |
123 | Ahmed Elsayed | 1102.90 |
124 | Mink Nutcharut | 1071.40 |
125 | Reanne Evans | 1063.34 |
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.