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 Swenson1104 ORI Score
10 races
2🇺🇸 Alexey Vermeulen1084 ORI Score
6 races
3🇺🇸 Russell Finsterwald1057 ORI Score
10 races
4🇺🇸 Payson Mcelveen1053 ORI Score
5 races
5🇺🇸 Peter Stetina1047 ORI Score
7 races
6🇺🇸 Cole Paton1045 ORI Score
8 races
7🇨🇦 Adam Roberge1040 ORI Score
7 races
8🇺🇸 Howard Grotts1040 ORI Score
7 races
9🇺🇸 Bradyn Lange1038 ORI Score
9 races
10🇺🇸 Stephan Davoust1017 ORI Score
8 races
11🇺🇸 Laurens Ten Dam1017 ORI Score
6 races
12🇺🇸 Innokenty Zavyalov1006 ORI Score
5 races
13🇺🇸 Ryan Standish1005 ORI Score
11 races
14🇺🇸 Lance Haidet1001 ORI Score
6 races
15🇺🇸 Carson Beckett1000 ORI Score
5 races
16🇨🇦 Andrew L’esperance999 ORI Score
6 races
17🇺🇸 Eli Kranefuss996 ORI Score
6 races
18🇺🇸 Robert Britton992 ORI Score
5 races
19🇺🇸 Eddie Anderson992 ORI Score
6 races
20🇺🇸 Alex Howes991 ORI Score
5 races
21🇺🇸 Chase Wark982 ORI Score
6 races
22🇺🇸 Kiel Reijnen976 ORI Score
7 races
23🇺🇸 Cody Cupp974 ORI Score
5 races
24🇺🇸 Taylor Lideen971 ORI Score
5 races
25🇺🇸 Dylan Johnson968 ORI Score
6 races
Show all 29 (4 more)26🇺🇸 Griffin Easter957 ORI Score
5 races
27🇺🇸 Cory Wallace949 ORI Score
5 races
28🇺🇸 Adam Saban937 ORI Score
5 races
29🇺🇸 Ashton Lambie916 ORI Score
5 races
Elite Women
1🇺🇸 Alexis Skarda1070 ORI Score
11 races
2🇺🇸 Rose Grant1069 ORI Score
8 races
3🇺🇸 Paige Onweller1059 ORI Score
5 races
4🇨🇦 Haley Smith1059 ORI Score
7 races
5🇺🇸 Sarah Sturm1055 ORI Score
6 races
6🇦🇷 Sofia Gomez Villafane1054 ORI Score
6 races
7🇺🇸 Savilia Blunk1045 ORI Score
5 races
8🇺🇸 Hannah Otto1039 ORI Score
8 races
9🇺🇸 Ellen Campbell1025 ORI Score
9 races
10🇺🇸 Evelyn Dong1024 ORI Score
8 races
11🇺🇸 Ruth Winder1018 ORI Score
5 races
12🇺🇸 Crystal Anthony1018 ORI Score
9 races
13 Julie Medema1015 ORI Score
6 races
14🇺🇸 Melisa Rollins1007 ORI Score
5 races
15🇺🇸 Erin Osborne1007 ORI Score
6 races
16🇺🇸 Kristen Legan1000 ORI Score
5 races
17🇺🇸 Maude Farrell995 ORI Score
5 races
18 Kate Mclaughlin978 ORI Score
6 races
19🇺🇸 Isabel King975 ORI Score
5 races
20🇺🇸 Helena Gilbert-Snyder974 ORI Score
5 races
21🇺🇸 Hannah Shell968 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!