Database

ORI RankingsBeta

Ranked by ORI Score โ€” an Elo-style rating computed from every graded gravel race in the database, weighted by how much that race counts. Athletes must have 5 race results in the period to be scored. Full methodology below. Amateur rankings coming soon!

Current ยท Last 12 Months2026 YTD202520242023202220212019
Elite Men
1๐Ÿ‡บ๐Ÿ‡ธ Keegan Swenson1099 ORI Score
8 races
2๐Ÿ‡บ๐Ÿ‡ธ Bradyn Lange1092 ORI Score
9 races
3๐Ÿ‡ฉ๐Ÿ‡ฐ Mads Wรผrtz Schmidt1092 ORI Score
6 races
4๐Ÿ‡ฟ๐Ÿ‡ฆ Matthew Beers1084 ORI Score
7 races
5๐Ÿ‡บ๐Ÿ‡ธ Cobe Freeburn1065 ORI Score
9 races
6๐Ÿ‡บ๐Ÿ‡ธ Alexey Vermeulen1058 ORI Score
9 races
7๐Ÿ‡ฆ๐Ÿ‡บ Brendan Johnston1056 ORI Score
5 races
8๐Ÿ‡ณ๐Ÿ‡ฟ Matthew Wilson1053 ORI Score
9 races
9๐Ÿ‡ฉ๐Ÿ‡ฐ Magnus Bak Klaris1051 ORI Score
5 races
10๐Ÿ‡ซ๐Ÿ‡ท Hugo Drechou1050 ORI Score
6 races
11๐Ÿ‡บ๐Ÿ‡ธ Cameron Jones1046 ORI Score
9 races
12๐Ÿ‡บ๐Ÿ‡ธ Cole Paton1040 ORI Score
6 races
13๐Ÿ‡บ๐Ÿ‡ธ Daxton Mock1038 ORI Score
11 races
14๐Ÿ‡จ๐Ÿ‡ฆ Adam Roberge1038 ORI Score
7 races
15๐Ÿ‡ณ๐Ÿ‡ฑ Adne Koster1037 ORI Score
8 races
16๐Ÿ‡จ๐Ÿ‡ฆ Benjamin Perry1037 ORI Score
9 races
17๐Ÿ‡จ๐Ÿ‡ฆ Andrew Lโ€™esperance1036 ORI Score
9 races
18๐Ÿ‡จ๐Ÿ‡ฟ Petr Vakoc1036 ORI Score
6 races
19๐Ÿ‡บ๐Ÿ‡ธ Henry Nelson1031 ORI Score
9 races
20๐Ÿ‡จ๐Ÿ‡ฆ Julien Gagne1029 ORI Score
6 races
21๐Ÿ‡บ๐Ÿ‡ธ Brennan Wertz1025 ORI Score
6 races
22๐Ÿ‡บ๐Ÿ‡ธ Lance Haidet1023 ORI Score
7 races
23๐Ÿ‡บ๐Ÿ‡ธ Peter Stetina1023 ORI Score
7 races
24๐Ÿ‡ง๐Ÿ‡ช Julian Siemons1022 ORI Score
6 races
25๐Ÿ‡จ๐Ÿ‡ญ Simon Pellaud1022 ORI Score
8 races
Show all 88 (63 more)26๐Ÿ‡ฉ๐Ÿ‡ฐ Tobias Mรธrch Kongstad1022 ORI Score
6 races
27๐Ÿ‡บ๐Ÿ‡ธ Hayden Christian1019 ORI Score
12 races
28๐Ÿ‡บ๐Ÿ‡ธ Chase Wark1018 ORI Score
9 races
29๐Ÿ‡ณ๐Ÿ‡ฑ Piotr Havik1017 ORI Score
8 races
30๐Ÿ‡บ๐Ÿ‡ธ Skyler Taylor1014 ORI Score
9 races
31๐Ÿ‡บ๐Ÿ‡ธ Toby Hassett1014 ORI Score
7 races
32๐Ÿ‡บ๐Ÿ‡ธ Griffin Easter1014 ORI Score
7 races
33๐Ÿ‡ณ๐Ÿ‡ด Anton Stensby1014 ORI Score
7 races
34๐Ÿ‡บ๐Ÿ‡ธ Payson Mcelveen1011 ORI Score
7 races
35๐Ÿ‡บ๐Ÿ‡ธ Alex Marr1011 ORI Score
5 races
36๐Ÿ‡ง๐Ÿ‡ช Jordy Bouts1011 ORI Score
7 races
37๐Ÿ‡ง๐Ÿ‡ช Arno Van Den Broeck1010 ORI Score
7 races
38๐Ÿ‡ฎ๐Ÿ‡น Mattia De Marchi1009 ORI Score
6 races
39๐Ÿ‡บ๐Ÿ‡ธ Brayden Johnson1008 ORI Score
5 races
40๐Ÿ‡บ๐Ÿ‡ธ Taylor Lideen1008 ORI Score
5 races
41๐Ÿ‡บ๐Ÿ‡ธ Kash Steele1008 ORI Score
8 races
42๐Ÿ‡บ๐Ÿ‡ธ Jerry Dufour1008 ORI Score
5 races
43๐Ÿ‡บ๐Ÿ‡ธ Cassius Anderson1008 ORI Score
7 races
44๐Ÿ‡บ๐Ÿ‡ธ Justin Peck1007 ORI Score
6 races
45๐Ÿ‡บ๐Ÿ‡ธ Russell Finsterwald1006 ORI Score
7 races
46๐Ÿ‡บ๐Ÿ‡ธ Stefano Barberi1006 ORI Score
8 races
47๐Ÿ‡ง๐Ÿ‡ช Floris De Tier1005 ORI Score
5 races
48๐Ÿ‡ง๐Ÿ‡ช Aaron Van Der Beken1004 ORI Score
7 races
49๐Ÿ‡บ๐Ÿ‡ธ Robert Oehler1003 ORI Score
5 races
50๐Ÿ‡บ๐Ÿ‡ธ Thomas Fuller1001 ORI Score
6 races
51๐Ÿ‡บ๐Ÿ‡ธ Jason Freihofner996 ORI Score
9 races
52๐Ÿ‡บ๐Ÿ‡ธ Miles Baker995 ORI Score
5 races
53๐Ÿ‡บ๐Ÿ‡ธ Josiah Wildman993 ORI Score
5 races
54๐Ÿ‡บ๐Ÿ‡ธ Michael Garrison993 ORI Score
5 races
55๐Ÿ‡บ๐Ÿ‡ธ Ryker Brand993 ORI Score
7 races
56๐Ÿ‡บ๐Ÿ‡ธ Jake Johansen993 ORI Score
7 races
57๐Ÿ‡บ๐Ÿ‡ธ Blane Maddox992 ORI Score
5 races
58๐Ÿ‡บ๐Ÿ‡ธ Caleb Swartz990 ORI Score
6 races
59๐Ÿ‡ฑ๐Ÿ‡ป Martins Blums989 ORI Score
5 races
60๐Ÿ‡บ๐Ÿ‡ธ Chad Haga989 ORI Score
8 races
61๐Ÿ‡บ๐Ÿ‡ธ Andrew Dillman988 ORI Score
6 races
62๐Ÿ‡บ๐Ÿ‡ธ Elliot Thornblade985 ORI Score
7 races
63๐Ÿ‡บ๐Ÿ‡ธ Wiley Close983 ORI Score
6 races
64๐Ÿ‡ณ๐Ÿ‡ฟ Caleb Bottcher982 ORI Score
6 races
65๐Ÿ‡ฉ๐Ÿ‡ช Andreas Seewald979 ORI Score
5 races
66๐Ÿ‡ณ๐Ÿ‡ด Simen Nordahl Svendsen979 ORI Score
5 races
67๐Ÿ‡ณ๐Ÿ‡ฑ Diederik Deelen978 ORI Score
6 races
68๐Ÿ‡จ๐Ÿ‡ฆ Oskar Stack-Michasiw978 ORI Score
6 races
69๐Ÿ‡บ๐Ÿ‡ธ Tim Savre977 ORI Score
8 races
70๐Ÿ‡บ๐Ÿ‡ธ Isaac Allred977 ORI Score
6 races
71๐Ÿ‡บ๐Ÿ‡ธ Griffin Hoppin970 ORI Score
5 races
72๐Ÿ‡ต๐Ÿ‡ท Georwill Perez Roman970 ORI Score
6 races
73๐Ÿ‡ซ๐Ÿ‡ท Eddy Le Huitouze970 ORI Score
6 races
74๐Ÿ‡บ๐Ÿ‡ธ Jack Spang969 ORI Score
6 races
75๐Ÿ‡บ๐Ÿ‡ธ Jonas Woodruff969 ORI Score
6 races
76๐Ÿ‡บ๐Ÿ‡ธ Luke Mosteller968 ORI Score
5 races
77๐Ÿ‡บ๐Ÿ‡ธ Braeden Sellinger968 ORI Score
6 races
78๐Ÿ‡ง๐Ÿ‡ช Lawrence Naesen965 ORI Score
6 races
79๐Ÿ‡บ๐Ÿ‡ธ Keaton Verswijver964 ORI Score
5 races
80๐Ÿ‡บ๐Ÿ‡ธ Seth Kjerengtroen959 ORI Score
5 races
81๐Ÿ‡จ๐Ÿ‡ฆ Michael Woods955 ORI Score
5 races
82๐Ÿ‡บ๐Ÿ‡ธ Dylan Johnson954 ORI Score
5 races
83๐Ÿ‡ณ๐Ÿ‡ฑ Lars Loohuis951 ORI Score
5 races
84๐Ÿ‡บ๐Ÿ‡ธ Kyan Olshove950 ORI Score
5 races
85๐Ÿ‡บ๐Ÿ‡ธ Andrew Lydic947 ORI Score
5 races
86๐Ÿ‡ฎ๐Ÿ‡น Tommaso Daniel944 ORI Score
5 races
87๐Ÿ‡ฎ๐Ÿ‡น Simone Pederiva941 ORI Score
5 races
88๐Ÿ‡บ๐Ÿ‡ธ Lief Yergensen923 ORI Score
5 races
Elite Women
1๐Ÿ‡ฆ๐Ÿ‡ท Sofia Gomez Villafane1120 ORI Score
9 races
2๐Ÿ‡บ๐Ÿ‡ธ Cecily Decker1096 ORI Score
8 races
3๐Ÿ‡บ๐Ÿ‡ธ Lauren Stephens1091 ORI Score
12 races
4๐Ÿ‡ณ๐Ÿ‡ฑ Geerike Schreurs1084 ORI Score
9 races
5๐Ÿ‡ต๐Ÿ‡ฑ Karolina Migon1073 ORI Score
9 races
6๐Ÿ‡บ๐Ÿ‡ธ Paige Onweller1071 ORI Score
9 races
7๐Ÿ‡บ๐Ÿ‡ธ Sarah Lange1065 ORI Score
10 races
8๐Ÿ‡ฟ๐Ÿ‡ฆ Hayley Preen1063 ORI Score
5 races
9๐Ÿ‡ณ๐Ÿ‡ฑ Larissa Hartog1058 ORI Score
5 races
10๐Ÿ‡บ๐Ÿ‡ธ Lauren De Crescenzo1052 ORI Score
12 races
11๐Ÿ‡ช๐Ÿ‡ธ Morgan Aguirre1047 ORI Score
10 races
12๐Ÿ‡ช๐Ÿ‡ธ Sophie Wright1040 ORI Score
5 races
13๐Ÿ‡ซ๐Ÿ‡ท Axelle Dubau-Prevot1039 ORI Score
5 races
14๐Ÿ‡บ๐Ÿ‡ธ Cecile Lejeune1036 ORI Score
14 races
15๐Ÿ‡บ๐Ÿ‡ธ Alexis Skarda1034 ORI Score
9 races
16๐Ÿ‡ณ๐Ÿ‡ฟ Samara Sheppard1032 ORI Score
8 races
17๐Ÿ‡ง๐Ÿ‡ช Hanne Van Loock1030 ORI Score
5 races
18๐Ÿ‡บ๐Ÿ‡ธ Emma Langley1028 ORI Score
9 races
19๐Ÿ‡บ๐Ÿ‡ธ Emily Newsom1027 ORI Score
9 races
20๐Ÿ‡ฌ๐Ÿ‡ง Danni Shrosbree1026 ORI Score
8 races
21๐Ÿ‡บ๐Ÿ‡ธ Samanth Johnson1023 ORI Score
7 races
22๐Ÿ‡บ๐Ÿ‡ธ Deanna Mayles1020 ORI Score
6 races
23๐Ÿ‡บ๐Ÿ‡ธ Hannah Shell1020 ORI Score
10 races
24๐Ÿ‡บ๐Ÿ‡ธ Stella Hobbs1017 ORI Score
8 races
25๐Ÿ‡บ๐Ÿ‡ธ Hannah Otto1017 ORI Score
6 races
Show all 59 (34 more)26๐Ÿ‡บ๐Ÿ‡ธ Crystal Anthony1016 ORI Score
8 races
27๐Ÿ‡ฆ๐Ÿ‡บ Courtney Sherwell1015 ORI Score
9 races
28๐Ÿ‡บ๐Ÿ‡ธ Kylee Hanel1015 ORI Score
6 races
29๐Ÿ‡บ๐Ÿ‡ธ Flavia Oliveira Parks1011 ORI Score
6 races
30๐Ÿ‡จ๐Ÿ‡ฆ Haley Smith1011 ORI Score
5 races
31๐Ÿ‡บ๐Ÿ‡ธ Erin Osborne1009 ORI Score
5 races
32๐Ÿ‡บ๐Ÿ‡ธ Ruby Ryan1007 ORI Score
6 races
33๐Ÿ‡บ๐Ÿ‡ธ Sydney Nielson1006 ORI Score
5 races
34๐Ÿ‡บ๐Ÿ‡ธ Rachel Frey1005 ORI Score
5 races
35๐Ÿ‡บ๐Ÿ‡ธ Siena Hermon1004 ORI Score
8 races
36๐Ÿ‡บ๐Ÿ‡ธ Starla Teddergreen1004 ORI Score
6 races
37๐Ÿ‡บ๐Ÿ‡ธ Lauren Zimmer1004 ORI Score
6 races
38๐Ÿ‡บ๐Ÿ‡ธ Jenna Rinehart1004 ORI Score
7 races
39๐Ÿ‡จ๐Ÿ‡ฆ Lucy Hempstead1002 ORI Score
5 races
40๐Ÿ‡บ๐Ÿ‡ธ Lindsey Lavender1002 ORI Score
5 races
41๐Ÿ‡บ๐Ÿ‡ธ Ellory Clason1001 ORI Score
6 races
42๐Ÿ‡ฆ๐Ÿ‡น Theresa Rindler-Bachl1001 ORI Score
6 races
43๐Ÿ‡บ๐Ÿ‡ธ Clara Koppenburg999 ORI Score
5 races
44๐Ÿ‡บ๐Ÿ‡ธ Lacie Munns999 ORI Score
7 races
45๐Ÿ‡บ๐Ÿ‡ธ Alyssa Larish999 ORI Score
6 races
46๐Ÿ‡ณ๐Ÿ‡ฟ Charlotte Clarke998 ORI Score
7 races
47๐Ÿ‡บ๐Ÿ‡ธ Alia Shafi995 ORI Score
5 races
48๐Ÿ‡บ๐Ÿ‡ธ Mj Lopez Aguirre993 ORI Score
6 races
49๐Ÿ‡บ๐Ÿ‡ธ Leah Van Der Linden992 ORI Score
6 races
50๐Ÿ‡ณ๐Ÿ‡ฑ Minke Bakker991 ORI Score
5 races
51๐Ÿ‡บ๐Ÿ‡ธ Laurel Quinones979 ORI Score
6 races
52๐Ÿ‡ฉ๐Ÿ‡ช Jade Treffeisen977 ORI Score
5 races
53๐Ÿ‡จ๐Ÿ‡ฆ Anna Gabrielle Traxler974 ORI Score
6 races
54๐Ÿ‡บ๐Ÿ‡ธ Samantha Campbell974 ORI Score
6 races
55๐Ÿ‡ง๐Ÿ‡ฒ Gabriella Arnold973 ORI Score
5 races
56๐Ÿ‡ฉ๐Ÿ‡ช Sarah Diekmeyer968 ORI Score
5 races
57๐Ÿ‡บ๐Ÿ‡ธ Lindsey Herman964 ORI Score
5 races
58๐Ÿ‡บ๐Ÿ‡ธ Emily Stapleton961 ORI Score
5 races
59๐Ÿ‡บ๐Ÿ‡ธ Ellen Campbell960 ORI Score
5 races
Methodology

How the ORI Score works

Every race is a chance to prove how you stack up โ€” not just against whoever else showed up that day, but against the entire sport. A rider who wins their age group at a small local race and a rider who wins their age group at Unbound accomplished very different things. Counting wins or podiums canโ€™t tell them apart. The ORI Score can, because it accounts for exactly who you raced and how much that race counts for.

An Elo rating, built race by race

Chess players have used Elo since 1960 to rate players who never all play each other, using only the games that actually happened. We apply the same math to racing. Every rider starts a ranking period at a baseline of 1000. Then, in chronological order, we replay that periodโ€™s races. For each finisher, we compare them โ€” one at a time โ€” against everyone else in their comparison field:

expected(you vs. rival) = 1 / (1 + 10^((rivalโ€™s score โˆ’ your score) / 400))

Thatโ€™s the probability, given current scores, that youโ€™d beat that specific rival. Average it across the whole field and you get your expected result for that race โ€” essentially, what your rating predicted youโ€™d finish. Then we look at what actually happened:

actual(you) = e^(โˆ’k ร— (your place โˆ’ 1))

1st place always scores a perfect 1.00. After that, every place is worth a consistent percentage less than the one before it โ€” not equal steps, a curve: 2nd is worth about 95% of a win, 3rd about 90%, 10th about 63%. Thatโ€™s deliberate โ€” a simpler โ€œpercentileโ€ formula barely told winning apart from a strong-but-not-quite result in a big field. Under this one, winning is worth meaningfully more than almost winning, at any field size. Your rating then moves by:

change = K ร— field-weight ร— race weight ร— (actual โˆ’ expected)

Beat your prediction and your score climbs; underperform it โ€” even finishing near the front of a field your rating predicted youโ€™d win โ€” and it drops. K is a flat 32 for every race. The race weight is the ORI Grade below.

field-weight = min(1, (finishers โˆ’ 1) / D)ย ย ย D = 70 (men) or 37 (women)

The field-weight discounts small fields โ€” a 2-person race canโ€™t move your score as much as a real championship field can โ€” capping out at full weight once a field is deep enough. โ€œDeep enoughโ€ is different for menโ€™s and womenโ€™s fields, since womenโ€™s fields are consistently smaller across the sport: a menโ€™s field reaches full weight around 70 finishers, a womenโ€™s field around 37.

Race weight: not every race counts the same

Every graded race carries an ORI Grade โ€” HC, 1, 2, 3, or 4 โ€” reflecting its depth of field and standing in the sport. A strong result at an HC race moves your score more than the identical result at a Grade 4 race would.

HC ร—2.0ย ย ย Grade 1 ร—1.25ย ย ย Grade 2 ร—0.75ย ย ย Grade 3 ร—0.5ย ย ย Grade 4 ร—0.25

Three kinds of ranking period

Current is a rolling window covering your last twelve months of racing โ€” it updates continuously and always reflects recent form. YTD covers the calendar year in progress, from January 1st through today โ€” unlike Current it resets every New Yearโ€™s rather than rolling forward day by day. Calendar Year rankings lock in once a year is fully over, as a permanent record of how that season played out. Every rider starts every kind of period at the 1000 baseline โ€” nothing here is a continuation of the year before.

Only your best 5 results count โ€” but you need at least 5

You need at least 5 results in a division within a period to be ranked at all โ€” enough races to say something real about where you stand. Once you clear that bar, only your 5 best results (the ones that moved your score up the most) count toward your final score for that period; the race count shown next to your score is your full qualifying total, not just those 5.

Elite and Amateur: same math, different comparison basis

For an Elite result, youโ€™re scored on your place within the Elite/Pro field itself. For an Amateur or Open result, youโ€™re scored on your place across the entire gender field for that race โ€” Elite, Amateur, and Open riders combined โ€” since thatโ€™s the truest measure of who you actually beat. A race with no Elite/Pro category at all counts as Open, and Open results count toward both an Elite and an Amateur ranking: a rider with a mix of Elite, Amateur, and Open results in a period can hold both rankings simultaneously. Within Amateur, youโ€™re shown against your own age bracket โ€” assigned once per period, based on your age as of that period, not race by race.

Why this handles field quality automatically

A โ€œfield strengthโ€ number never needs to be computed separately โ€” itโ€™s built into the rating of everyone else on the start line. Beat a field of previously-unrated riders and your score barely moves. Beat a field that includes riders whoโ€™ve already proven themselves against Elite fields elsewhere, and it moves a lot. This is also how an amateur racing in an Open category at a small race that happens to include a pro or two gets full credit for it โ€” the proโ€™s rating (built from their Elite results elsewhere) raises that specific fieldโ€™s difficulty, which raises what the amateur earns for finishing near them.

Why we show a race count next to every score

Elites race the same small pool of people repeatedly across a period, so their ratings converge quickly and reliably. Amateurs in the same age bracket might only cross paths once or twice a year โ€” a score built on 5 races is a lot less certain than one built on 20. Read a fast-rising score with a low race count as promising, not proven.

Amateur rankings coming soon!