Here's my first attempt. Data taken of course from PCS, the GOAT of cycling stats.
Methodology: take a cycling race and evaluate it as a series of one-to-one matches.
Then calculate ELO of riders with this system. From 1900 - 2025, each year 15 ELO points are reduced from each rider and riders with no races are eliminated from next year's list. When two riders are compared, their relative ELO difference plays a huge role in how ELO is redistributed. Read link below for more info.
I experimented a lot. The first idea was to calculate all possible matchups in a race and adjust ELO rating of all pairs of riders. ELO is
standard formula used for example in chess.
Instead of calculating all N*(N-1)/2 pairs, I decided to just compare top 10 or top 20 (for one-day/gc result tables) to all others. makes sense, since in most rases places below 10/20 are not really contested and cannot be treated as "matches" between two riders. Since ELO is exchange (rider A gains X ELO and rider B loses same X amount), the calculation is stable in any pairwise situation. I have taken a list of races (GT's + all GT stages , WC races, monuments, major week races (gc only), classics), 116 races in all (past and present) and ran the calc with many different parameters. Things depend on them, of course, but one thing remains stable in all scenarios: Tadej Pogačar has the highest ELO of all time.
If you find this approach interesting, I can post more about it when I find the time.