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
Shenzhen Open Qualifiers Sept. 29, 2026, 6:06 a.m. 2026 Ding Junhui 4 5 Ricky Walden
Shenzhen Open Qualifiers Sept. 29, 2026, 6:06 a.m. 2026 Mark Selby 5 3 Andrew Higginson
Shenzhen Open Qualifiers Sept. 29, 2026, 6:06 a.m. 2026 Xiao Guodong 4 5 Michael Holt
Shenzhen Open Sept. 29, 2026, 11:29 a.m. 2026 Lei Peifan 1 5 Neil Robertson
Shenzhen Open Sept. 29, 2026, 11:29 a.m. 2026 Ben Mertens 1 5 Jimmy Robertson
Shenzhen Open Sept. 29, 2026, 11:29 a.m. 2026 Scott Donaldson 5 4 Pang Junxu
Shenzhen Open Sept. 29, 2026, 11:29 a.m. 2026 Jiang Jun 3 5 Zak Surety
Shenzhen Open Sept. 30, 2026, 1:34 a.m. 2026 Shaun Murphy 5 1 Hossein Vafaei
Shenzhen Open Sept. 30, 2026, 1:34 a.m. 2026 Stephen Maguire 5 1 David Grace
Shenzhen Open Sept. 30, 2026, 1:34 a.m. 2026 David Gilbert 2 5 Kyren Wilson

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 1649.33
2 Mark Selby 1629.17
3 Zhao Xintong 1607.01
4 Kyren Wilson 1585.14
5 Shaun Murphy 1570.07
6 Wu Yize 1561.15
7 Mark Allen 1550.71
8 John Higgins 1543.79
9 Mark Williams 1527.58
10 Barry Hawkins 1526.36
11 Neil Robertson 1521.21
12 Zhou Yuelong 1514.90
13 Jak Jones 1506.48
14 Ali Carter 1505.85
15 Ronnie O'Sullivan 1503.35
16 Xiao Guodong 1490.51
17 Zhang Anda 1489.39
18 Chang Bingyu 1476.25
19 Ding Junhui 1472.20
20 Stuart Bingham 1471.23
21 Luca Brecel 1459.84
22 Si Jiahui 1444.35
23 Pang Junxu 1443.29
24 Hossein Vafaei 1442.38
25 Chris Wakelin 1441.44
26 Stephen Maguire 1439.00
27 Elliot Slessor 1438.07
28 David Gilbert 1437.40
29 Jack Lisowski 1436.42
30 Noppon Saengkham 1434.59
31 Stan Moody 1432.78
32 Matthew Selt 1432.69
33 Anthony McGill 1432.15
34 Yuan Sijun 1429.31
35 Joe O'Connor 1422.10
36 Ryan Day 1410.20
37 Gary Wilson 1406.38
38 Aaron Hill 1404.60
39 Tom Ford 1401.50
40 Jackson Page 1401.01
41 Fan Zhengyi 1400.64
42 Ricky Walden 1399.34
43 Sam Craigie 1397.81
44 Xu Si 1395.88
45 Jiang Jun 1395.71
46 Daniel Wells 1393.49
47 Liam Highfield 1389.77
48 Robbie Williams 1389.76
49 Liam Davies 1377.03
50 Scott Donaldson 1376.49
51 Martin O'Donnell 1375.31
52 Thepchaiya Un-Nooh 1372.44
53 Lei Peifan 1371.62
54 Dylan Emery 1359.65
55 Liu Hongyu 1357.36
56 Lyu Haotian 1357.05
57 Ben Woollaston 1355.03
58 Matthew Stevens 1352.72
59 Gao Yang 1351.74
60 He Guoqiang 1347.79
61 Marco Fu 1347.72
62 Jimmy Robertson 1342.89
63 Yao Pengcheng 1340.67
64 Michael Holt 1339.31
65 Oliver Lines 1335.79
66 Louis Heathcote 1335.69
67 Julien Leclercq 1334.35
68 Liam Pullen 1333.44
69 Zak Surety 1327.02
70 Long Zehuang 1321.64
71 Ben Mertens 1320.08
72 Alfie Burden 1313.05
73 Jamie Clarke 1311.45
74 Ishpreet Chadha 1310.82
75 David Lilley 1309.01
76 David Grace 1308.24
77 Iulian Boiko 1307.52
78 Jamie Jones 1300.59
79 Jimmy White 1299.93
80 Ian Burns 1299.72
81 Antoni Kowalski 1299.57
82 Wang Xinbo 1298.47
83 Steven Hallworth 1297.73
84 Artemijs Zizins 1297.10
85 Jordan Brown 1296.23
86 Ashley Carty 1290.59
87 Andrew Higginson 1284.72
88 Ashley Hugill 1281.82
89 Ross Muir 1277.67
90 Igor Figueiredo 1273.57
91 Mitchell Mann 1271.75
92 Oliver Sykes 1261.43
93 Lan Yuhao 1252.87
94 Alexander Ursenbacher 1251.92
95 Cheung Ka Wai 1250.61
96 Gong Chenzhi 1249.30
97 Michał Szubarczyk 1241.33
98 Zhao Hanyang 1236.48
99 Huang Jiahao 1235.70
100 Stuart Carrington 1233.91
101 Hammad Miah 1230.70
102 Michael Larkov 1225.07
103 Luo Zetao 1224.93
104 Craig Steadman 1222.68
105 Mateusz Baranowski 1222.40
106 Liu Wenwei 1221.10
107 Deng Haohui 1221.05
108 Florian Nüßle 1217.68
109 Liu Yang 1215.12
110 Thanawat Tirapongpaiboon 1215.00
111 Chatchapong Nasa 1203.95
112 Xu Yichen 1202.30
113 Oliver Brown 1199.65
114 Paul Norris 1197.31
115 Phil O'Kane 1195.43
116 Liam Graham 1192.70
117 Sahil Nayyar 1181.96
118 Leone Crowley 1179.01
119 Connor Benzey 1177.08
120 Mahmoud El Hareedy 1163.04
121 Fergal Quinn 1132.20
122 Anton Kazakov 1118.67
123 Sean O'Sullivan 1105.26

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.