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.