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
Players Championship Feb. 20, 2024, 1:08 p.m. 2023 Gary Wilson 6 4 Hossein Vafaei
Players Championship Feb. 20, 2024, 1:08 p.m. 2023 Mark Williams 3 6 Mark Allen
Players Championship Feb. 20, 2024, 7:01 p.m. 2023 Ronnie O'Sullivan 6 2 Zhou Yuelong
Players Championship Feb. 20, 2024, 7:01 p.m. 2023 Tom Ford 2 6 Ali Carter
Players Championship Feb. 21, 2024, 12:52 p.m. 2023 Barry Hawkins 3 6 Mark Selby
Players Championship Feb. 21, 2024, 12:52 p.m. 2023 Zhang Anda 6 5 Noppon Saengkham
Players Championship Feb. 21, 2024, 7:08 p.m. 2023 Judd Trump 4 6 Ali Carter
Players Championship Feb. 22, 2024, 12:49 p.m. 2023 Mark Allen 6 4 Gary Wilson
Players Championship Feb. 22, 2024, 7:14 p.m. 2023 Mark Selby 6 0 Ronnie O'Sullivan
Players Championship Feb. 23, 2024, 1:04 p.m. 2023 Zhang Anda 6 4 John Higgins

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 1672.33
2 Ronnie O'Sullivan 1662.11
3 John Higgins 1592.29
4 Mark Allen 1588.55
5 Mark Selby 1583.29
6 Ali Carter 1552.66
7 Mark Williams 1519.55
8 Barry Hawkins 1513.26
9 Ding Junhui 1510.48
10 Luca Brecel 1492.07
11 Neil Robertson 1489.35
12 Kyren Wilson 1488.26
13 Zhang Anda 1483.68
14 Shaun Murphy 1483.19
15 Gary Wilson 1478.48
16 Hossein Vafaei 1475.59
17 Jack Lisowski 1465.42
18 Tom Ford 1460.75
19 Si Jiahui 1459.40
20 Zhou Yuelong 1458.66
21 Anthony McGill 1456.55
22 Matthew Selt 1451.22
23 Chris Wakelin 1444.71
24 Stuart Bingham 1444.69
25 Ricky Walden 1443.61
26 Sam Craigie 1437.70
27 Lyu Haotian 1433.86
28 Cao Yupeng 1431.29
29 Robbie Williams 1428.46
30 Martin O'Donnell 1425.55
31 David Gilbert 1425.04
32 Thepchaiya Un-Nooh 1423.99
33 Stephen Maguire 1422.01
34 Yuan Sijun 1421.65
35 Robert Milkins 1418.77
36 Pang Junxu 1417.98
37 Graeme Dott 1411.96
38 Noppon Saengkham 1410.63
39 Daniel Wells 1405.13
40 Xiao Guodong 1403.60
41 Ryan Day 1399.94
42 Fan Zhengyi 1398.14
43 Ben Woollaston 1393.44
44 Jimmy Robertson 1393.34
45 Jak Jones 1388.81
46 Marco Fu 1386.54
47 Elliot Slessor 1381.38
48 Dominic Dale 1379.95
49 Jordan Brown 1379.50
50 Jamie Jones 1379.49
51 Mark Davis 1374.46
52 Michael White 1372.75
53 Scott Donaldson 1366.45
54 Joe O'Connor 1361.63
55 Martin Gould 1360.71
56 Tian Pengfei 1356.75
57 Joe Perry 1350.91
58 Matthew Stevens 1347.66
59 Xu Si 1346.38
60 Oliver Lines 1343.30
61 Anthony Hamilton 1342.57
62 Jamie Clarke 1341.78
63 Wu Yize 1328.69
64 Liu Hongyu 1324.92
65 Jackson Page 1320.47
66 Aaron Hill 1317.20
67 He Guoqiang 1314.17
68 Mark King 1311.39
69 David Lilley 1309.59
70 Julien Leclercq 1300.51
71 Dylan Emery 1297.99
72 Andrew Higginson 1295.74
73 Ashley Carty 1295.27
74 David Grace 1293.92
75 Liam Highfield 1293.38
76 Stuart Carrington 1285.49
77 Ashley Hugill 1278.21
78 Ian Burns 1276.10
79 Ben Mertens 1274.93
80 Mark Joyce 1274.50
81 Lukas Kleckers 1271.62
82 Alexander Ursenbacher 1268.06
83 Ishpreet Chadha 1267.94
84 Long Zehuang 1261.88
85 Zak Surety 1260.13
86 Asjad Iqbal 1256.21
87 Sanderson Lam 1253.99
88 Louis Heathcote 1250.11
89 James Cahill 1248.62
90 Xing Zihao 1247.46
91 Stan Moody 1247.39
92 Ken Doherty 1246.69
93 Liam Pullen 1246.69
94 Andy Hicks 1243.09
95 Hammad Miah 1242.19
96 Ross Muir 1239.27
97 Fergal O'Brien 1234.51
98 John Astley 1233.29
99 Jiang Jun 1232.44
100 Ma Hailong 1230.11
101 Allan Taylor 1227.38
102 Alfie Burden 1222.78
103 Oliver Brown 1219.78
104 Mostafa Dorgham 1210.96
105 Peng Yisong 1209.42
106 Jimmy White 1208.49
107 Rod Lawler 1189.64
108 Manasawin Phetmalaikul 1189.31
109 Stephen Hendry 1181.65
110 Muhammad Asif 1179.24
111 Mohamed Ibrahim 1179.08
112 Adam Duffy 1178.27
113 Dean Young 1173.92
114 Andres Petrov 1171.71
115 Ahmed Elsayed 1170.67
116 Baipat Siripaporn 1170.30
117 Jenson Kendrick 1164.68
118 Liam Graham 1158.85
119 Andrew Pagett 1156.91
120 Andy Lee 1155.47
121 Anton Kazakov 1146.02
122 Himanshu Jain 1144.73
123 Victor Sarkis 1141.89
124 Ryan Thomerson 1138.46
125 Rory Thor 1127.34
126 Sean O'Sullivan 1124.76
127 Rebecca Kenna 1115.25
128 Mink Nutcharut 1110.47
129 Reanne Evans 1088.61

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.