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
Championship League Stage One Group 12 July 4, 2026, 6:56 p.m. 2026 Ali Carter 2 2 Jamie Jones
Shanghai Masters July 29, 2026, 5:51 a.m. 2026 Shaun Murphy 6 5 Zhou Yuelong
Shanghai Masters July 29, 2026, 5:51 a.m. 2026 John Higgins 6 5 Jack Lisowski
Shanghai Masters July 29, 2026, 11:37 a.m. 2026 Wu Yize 6 2 Si Jiahui
Shanghai Masters July 29, 2026, 11:37 a.m. 2026 Zhao Xintong 6 2 Ding Junhui
Shanghai Masters July 30, 2026, 5:52 a.m. 2026 Zhao Xintong 6 0 Neil Robertson
Shanghai Masters July 30, 2026, 5:52 a.m. 2026 Kyren Wilson 6 5 Mark Williams
Shanghai Masters July 30, 2026, 11:31 a.m. 2026 Shaun Murphy 5 6 Wu Yize
Shanghai Masters July 30, 2026, 11:31 a.m. 2026 Judd Trump 6 0 John Higgins
Shanghai Masters July 31, 2026, 6:45 a.m. 2026 Judd Trump 10 6 Wu Yize

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 1650.81
2 Zhao Xintong 1638.14
3 Mark Selby 1592.78
4 Wu Yize 1587.43
5 Kyren Wilson 1581.65
6 Shaun Murphy 1561.48
7 John Higgins 1561.36
8 Mark Allen 1550.71
9 Barry Hawkins 1535.14
10 Mark Williams 1530.33
11 Neil Robertson 1516.93
12 Xiao Guodong 1515.76
13 Ronnie O'Sullivan 1502.38
14 Ali Carter 1493.93
15 Ding Junhui 1490.81
16 Zhou Yuelong 1490.59
17 Zhang Anda 1478.91
18 Hossein Vafaei 1467.34
19 Jak Jones 1459.80
20 Elliot Slessor 1458.82
21 Luca Brecel 1456.03
22 Stuart Bingham 1454.72
23 Pang Junxu 1447.21
24 Si Jiahui 1446.86
25 Chang Bingyu 1446.09
26 Jack Lisowski 1445.88
27 Matthew Selt 1438.52
28 David Gilbert 1437.12
29 Yuan Sijun 1431.84
30 Stephen Maguire 1431.81
31 Chris Wakelin 1430.19
32 Anthony McGill 1429.28
33 Jackson Page 1427.22
34 Stan Moody 1427.03
35 Gary Wilson 1421.85
36 Tom Ford 1420.69
37 Joe O'Connor 1414.79
38 Noppon Saengkham 1411.86
39 Jiang Jun 1408.49
40 Ryan Day 1402.02
41 Ricky Walden 1398.04
42 Sam Craigie 1397.31
43 Fan Zhengyi 1389.53
44 Aaron Hill 1386.44
45 Lei Peifan 1382.82
46 Xu Si 1379.55
47 Thepchaiya Un-Nooh 1378.31
48 Martin O'Donnell 1374.76
49 Daniel Wells 1374.63
50 Robbie Williams 1372.26
51 He Guoqiang 1367.74
52 Liu Hongyu 1363.65
53 Jimmy Robertson 1362.76
54 Zak Surety 1358.22
55 Liam Highfield 1357.19
56 Matthew Stevens 1355.83
57 Ben Woollaston 1354.57
58 Marco Fu 1353.58
59 Scott Donaldson 1350.67
60 Michael Holt 1350.40
61 Lyu Haotian 1350.27
62 Dylan Emery 1342.89
63 Ben Mertens 1339.91
64 Julien Leclercq 1335.85
65 Louis Heathcote 1334.56
66 Oliver Lines 1332.29
67 Long Zehuang 1323.82
68 Jamie Jones 1321.74
69 Gao Yang 1317.89
70 Liam Pullen 1316.95
71 Alfie Burden 1316.41
72 Ishpreet Chadha 1314.99
73 Steven Hallworth 1313.95
74 Yao Pengcheng 1311.99
75 David Lilley 1310.38
76 Liam Davies 1309.55
77 Antoni Kowalski 1304.67
78 Jamie Clarke 1303.62
79 Jordan Brown 1302.49
80 Andrew Higginson 1299.82
81 Artemijs Zizins 1297.70
82 Jimmy White 1294.18
83 David Grace 1289.95
84 Iulian Boiko 1285.96
85 Ian Burns 1283.98
86 Ashley Hugill 1282.78
87 Ashley Carty 1280.69
88 Igor Figueiredo 1273.57
89 Lan Yuhao 1265.38
90 Ross Muir 1263.85
91 Mitchell Mann 1263.20
92 Wang Xinbo 1262.01
93 Alexander Ursenbacher 1261.06
94 Oliver Sykes 1248.53
95 Cheung Ka Wai 1244.22
96 Deng Haohui 1243.59
97 Michał Szubarczyk 1243.19
98 Gong Chenzhi 1241.95
99 Hammad Miah 1241.60
100 Stuart Carrington 1236.97
101 Craig Steadman 1236.26
102 Florian Nüßle 1235.85
103 Michael Larkov 1235.19
104 Luo Zetao 1233.46
105 Liu Yang 1228.26
106 Liu Wenwei 1224.73
107 Zhao Hanyang 1220.11
108 Huang Jiahao 1217.98
109 Phil O'Kane 1216.56
110 Xu Yichen 1216.45
111 Paul Norris 1213.77
112 Oliver Brown 1205.63
113 Mateusz Baranowski 1202.98
114 Liam Graham 1200.93
115 Sahil Nayyar 1194.84
116 Thanawat Tirapongpaiboon 1188.02
117 Connor Benzey 1185.87
118 Chatchapong Nasa 1184.95
119 Mahmoud El Hareedy 1182.52
120 Leone Crowley 1179.97
121 Fergal Quinn 1142.46
122 Sean O'Sullivan 1117.73
123 Anton Kazakov 1115.67

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.