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 Championship Qualifiers | April 15, 2025, 10:02 a.m. | 2024 | Zhou Yuelong | 10 | 5 | Yuan Sijun |
World Championship Qualifiers | April 15, 2025, 10:02 a.m. | 2024 | Gary Wilson | 9 | 10 | Daniel Wells |
World Championship Qualifiers | April 16, 2025, 9:58 a.m. | 2024 | He Guoqiang | 5 | 10 | Ali Carter |
World Championship Qualifiers | April 16, 2025, 9:58 a.m. | 2024 | Matthew Selt | 10 | 9 | Jimmy Robertson |
World Championship Qualifiers | April 16, 2025, 9:58 a.m. | 2024 | Gao Yang | 9 | 10 | Lei Peifan |
World Championship Qualifiers | April 16, 2025, 9:58 a.m. | 2024 | Matthew Stevens | 9 | 10 | Wu Yize |
World Championship Qualifiers | April 16, 2025, 9:58 a.m. | 2024 | Jamie Jones | 6 | 10 | Pang Junxu |
World Championship Qualifiers | April 16, 2025, 9:58 a.m. | 2024 | Joe O'Connor | 10 | 7 | Jackson Page |
World Championship Qualifiers | April 16, 2025, 9:58 a.m. | 2024 | Michael Holt | 4 | 10 | Fan Zhengyi |
World Championship Qualifiers | April 16, 2025, 9:58 a.m. | 2024 | Wang Yuchen | 4 | 10 | Hossein Vafaei |
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 | 1673.87 |
2 | Kyren Wilson | 1625.32 |
3 | John Higgins | 1595.34 |
4 | Mark Selby | 1573.98 |
5 | Mark Allen | 1553.80 |
6 | Neil Robertson | 1530.46 |
7 | Barry Hawkins | 1526.59 |
8 | Xiao Guodong | 1525.44 |
9 | Ronnie O'Sullivan | 1521.77 |
10 | Shaun Murphy | 1519.30 |
11 | Ding Junhui | 1508.81 |
12 | Hossein Vafaei | 1497.52 |
13 | Luca Brecel | 1493.21 |
14 | Joe O'Connor | 1489.09 |
15 | Mark Williams | 1488.88 |
16 | Ali Carter | 1484.92 |
17 | Wu Yize | 1464.35 |
18 | Pang Junxu | 1461.28 |
19 | Si Jiahui | 1458.50 |
20 | Jak Jones | 1453.47 |
21 | Ricky Walden | 1445.32 |
22 | Jack Lisowski | 1443.72 |
23 | David Gilbert | 1442.96 |
24 | Matthew Selt | 1441.19 |
25 | Chris Wakelin | 1438.95 |
26 | Stephen Maguire | 1437.65 |
27 | Zhang Anda | 1436.35 |
28 | Yuan Sijun | 1428.37 |
29 | Stuart Bingham | 1421.88 |
30 | Cao Yupeng | 1420.40 |
31 | Zhou Yuelong | 1419.95 |
32 | Elliot Slessor | 1419.55 |
33 | Ryan Day | 1415.90 |
34 | Anthony McGill | 1409.93 |
35 | Ben Woollaston | 1402.40 |
36 | Lyu Haotian | 1401.04 |
37 | Thepchaiya Un-Nooh | 1397.99 |
38 | Tom Ford | 1396.70 |
39 | Jackson Page | 1395.79 |
40 | Graeme Dott | 1394.86 |
41 | Fan Zhengyi | 1390.36 |
42 | Noppon Saengkham | 1387.87 |
43 | Martin O'Donnell | 1387.18 |
44 | Xu Si | 1386.21 |
45 | Daniel Wells | 1385.79 |
46 | Sam Craigie | 1383.42 |
47 | Lei Peifan | 1376.43 |
48 | Jimmy Robertson | 1372.37 |
49 | Robbie Williams | 1363.00 |
50 | Mark Davis | 1362.32 |
51 | Gary Wilson | 1361.92 |
52 | Jamie Jones | 1360.12 |
53 | Matthew Stevens | 1359.40 |
54 | Scott Donaldson | 1359.15 |
55 | Sunny Akani | 1357.99 |
56 | He Guoqiang | 1357.87 |
57 | Marco Fu | 1356.15 |
58 | Robert Milkins | 1355.57 |
59 | Martin Gould | 1353.30 |
60 | Michael White | 1350.98 |
61 | Stan Moody | 1350.14 |
62 | Zak Surety | 1349.78 |
63 | Michael Holt | 1348.91 |
64 | Aaron Hill | 1347.37 |
65 | Oliver Lines | 1341.44 |
66 | David Lilley | 1333.90 |
67 | Jimmy White | 1324.56 |
68 | Long Zehuang | 1323.24 |
69 | Liu Hongyu | 1320.44 |
70 | Ishpreet Chadha | 1318.48 |
71 | Dominic Dale | 1315.06 |
72 | Jordan Brown | 1310.36 |
73 | Tian Pengfei | 1304.92 |
74 | Andrew Higginson | 1299.63 |
75 | Alexander Ursenbacher | 1296.93 |
76 | Antoni Kowalski | 1295.04 |
77 | Jiang Jun | 1293.43 |
78 | Louis Heathcote | 1293.16 |
79 | Anthony Hamilton | 1290.76 |
80 | Ma Hailong | 1289.99 |
81 | Jamie Clarke | 1287.46 |
82 | Joe Perry | 1287.30 |
83 | Ben Mertens | 1280.61 |
84 | Ashley Carty | 1276.45 |
85 | Liam Davies | 1276.13 |
86 | Gong Chenzhi | 1276.05 |
87 | Ross Muir | 1275.65 |
88 | Duane Jones | 1274.28 |
89 | Julien Leclercq | 1270.68 |
90 | David Grace | 1267.80 |
91 | Ian Burns | 1267.74 |
92 | Stuart Carrington | 1266.32 |
93 | Sanderson Lam | 1266.25 |
94 | Allan Taylor | 1264.31 |
95 | Xing Zihao | 1262.54 |
96 | Artemijs Zizins | 1257.36 |
97 | Bulcsu Revesz | 1255.45 |
98 | Lim Kok Leong | 1252.45 |
99 | Cheung Ka Wai | 1250.32 |
100 | Alfie Burden | 1249.36 |
101 | Wang Yuchen | 1242.73 |
102 | Hammad Miah | 1233.24 |
103 | Haris Tahir | 1227.38 |
104 | Amir Sarkhosh | 1224.14 |
105 | Liam Graham | 1218.54 |
106 | Mitchell Mann | 1216.89 |
107 | Liam Pullen | 1215.70 |
108 | Mohammed Shehab | 1212.52 |
109 | Rory Thor | 1211.36 |
110 | Huang Jiahao | 1210.95 |
111 | Bai Yulu | 1209.52 |
112 | Kreishh Gurbaxani | 1204.29 |
113 | Haydon Pinhey | 1204.17 |
114 | Jonas Luz | 1199.26 |
115 | Chris Totten | 1194.65 |
116 | Andrew Pagett | 1181.82 |
117 | Dean Young | 1177.26 |
118 | Mostafa Dorgham | 1174.43 |
119 | Robbie McGuigan | 1168.95 |
120 | Farakh Ajaib | 1159.98 |
121 | Manasawin Phetmalaikul | 1144.17 |
122 | Baipat Siripaporn | 1098.62 |
123 | Ahmed Elsayed | 1096.02 |
124 | Reanne Evans | 1068.48 |
125 | Mink Nutcharut | 1062.63 |
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.