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
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.