An alternative rating system for snooker players

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.