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 April 28, 2024, 9:05 a.m. 2023 Ryan Day 7 13 Ronnie O'Sullivan
World Championship April 30, 2024, 5:40 p.m. 2023 Judd Trump 9 13 Jak Jones
World Championship April 30, 2024, 5:40 p.m. 2023 David Gilbert 13 8 Stephen Maguire
World Championship April 30, 2024, 5:41 p.m. 2023 Stuart Bingham 13 10 Ronnie O'Sullivan
World Championship April 30, 2024, 5:41 p.m. 2023 Kyren Wilson 13 8 John Higgins
World Championship May 2, 2024, 12:02 p.m. 2023 David Gilbert 11 17 Kyren Wilson
World Championship May 2, 2024, 12:02 p.m. 2023 David Gilbert 11 17 Kyren Wilson
World Championship May 2, 2024, 5:57 p.m. 2023 Jak Jones 17 12 Stuart Bingham
World Championship May 2, 2024, 5:57 p.m. 2023 Jak Jones 17 12 Stuart Bingham
World Championship May 5, 2024, 12:14 p.m. 2023 Kyren Wilson 18 14 Jak Jones

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 1667.27
2 Ronnie O'Sullivan 1649.85
3 Mark Allen 1587.65
4 John Higgins 1575.50
5 Kyren Wilson 1547.70
6 Mark Williams 1539.99
7 Mark Selby 1539.24
8 Ali Carter 1528.99
9 Ding Junhui 1524.67
10 Barry Hawkins 1507.16
11 Hossein Vafaei 1496.56
12 Luca Brecel 1492.49
13 Neil Robertson 1487.77
14 Shaun Murphy 1486.81
15 Stuart Bingham 1482.09
16 Jack Lisowski 1476.20
17 Gary Wilson 1474.80
18 Jak Jones 1468.32
19 Zhang Anda 1464.98
20 Si Jiahui 1458.92
21 David Gilbert 1455.28
22 Stephen Maguire 1455.26
23 Joe O'Connor 1454.21
24 Tom Ford 1450.12
25 Anthony McGill 1446.28
26 Zhou Yuelong 1444.23
27 Robbie Williams 1439.76
28 Matthew Selt 1437.11
29 Lyu Haotian 1432.58
30 Chris Wakelin 1432.23
31 Pang Junxu 1423.15
32 Yuan Sijun 1422.98
33 Cao Yupeng 1420.40
34 Thepchaiya Un-Nooh 1415.50
35 Ricky Walden 1415.02
36 Martin O'Donnell 1414.32
37 Robert Milkins 1413.58
38 Daniel Wells 1410.93
39 Ryan Day 1409.84
40 Xiao Guodong 1401.63
41 Graeme Dott 1401.04
42 Noppon Saengkham 1399.43
43 Jimmy Robertson 1389.85
44 Marco Fu 1388.96
45 Ben Woollaston 1384.58
46 Jamie Jones 1383.55
47 Dominic Dale 1383.55
48 Sam Craigie 1383.42
49 Elliot Slessor 1381.02
50 Mark Davis 1379.68
51 Jackson Page 1373.35
52 Fan Zhengyi 1373.13
53 Scott Donaldson 1370.88
54 Michael White 1369.91
55 Martin Gould 1360.71
56 Jordan Brown 1355.57
57 Matthew Stevens 1352.80
58 Tian Pengfei 1348.96
59 Anthony Hamilton 1342.86
60 Joe Perry 1342.41
61 Jamie Clarke 1340.18
62 Wu Yize 1334.15
63 Oliver Lines 1333.95
64 Xu Si 1331.75
65 He Guoqiang 1325.20
66 David Lilley 1323.49
67 Liu Hongyu 1321.66
68 Aaron Hill 1312.65
69 Mark King 1311.39
70 Julien Leclercq 1300.48
71 Andrew Higginson 1295.40
72 Ashley Carty 1291.05
73 David Grace 1289.15
74 Dylan Emery 1288.88
75 Stuart Carrington 1286.64
76 Ashley Hugill 1286.42
77 Liam Highfield 1285.66
78 Ian Burns 1283.82
79 Ben Mertens 1276.65
80 Louis Heathcote 1270.73
81 Lukas Kleckers 1268.94
82 Alexander Ursenbacher 1268.24
83 Mark Joyce 1267.15
84 Long Zehuang 1266.81
85 Sanderson Lam 1262.54
86 Zak Surety 1261.58
87 Jiang Jun 1257.70
88 Asjad Iqbal 1256.21
89 Ishpreet Chadha 1255.78
90 James Cahill 1252.14
91 Xing Zihao 1252.00
92 Andy Hicks 1246.86
93 Liam Pullen 1244.74
94 Ma Hailong 1243.00
95 Ken Doherty 1242.12
96 Ross Muir 1241.45
97 Stan Moody 1239.71
98 John Astley 1237.75
99 Alfie Burden 1233.17
100 Hammad Miah 1233.10
101 Oliver Brown 1227.55
102 Fergal O'Brien 1226.50
103 Allan Taylor 1226.09
104 Mostafa Dorgham 1215.15
105 Peng Yisong 1211.19
106 Jimmy White 1203.34
107 Rod Lawler 1192.25
108 Jenson Kendrick 1192.03
109 Stephen Hendry 1181.65
110 Manasawin Phetmalaikul 1180.20
111 Muhammad Asif 1179.24
112 Adam Duffy 1178.95
113 Andres Petrov 1174.96
114 Mohamed Ibrahim 1172.30
115 Dean Young 1168.57
116 Baipat Siripaporn 1166.95
117 Ahmed Elsayed 1163.19
118 Andrew Pagett 1160.99
119 Liam Graham 1154.15
120 Andy Lee 1148.00
121 Anton Kazakov 1140.63
122 Himanshu Jain 1139.98
123 Victor Sarkis 1136.25
124 Ryan Thomerson 1133.53
125 Rory Thor 1132.36
126 Sean O'Sullivan 1116.34
127 Rebecca Kenna 1110.00
128 Mink Nutcharut 1104.41
129 Reanne Evans 1083.77

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.