About

How rankings work

Questions or comments: support@foilstats.com

September 27, 2025 to September 27, 2026. This page is generated from the same scoring rules used in the rankings.

Core rules

Rankings use a rolling 12-month window ending on the day the site is generated.

Each rider keeps their best 4 results in that window.

Only the top half of a field scores points.

The last scoring place always gets at least 1 point, even in `Local` races.

Scoring curve

Each race first gets a scoring zone equal to the top half of the field. If a race has 40 contestants, places 1 through 20 score and 21 through 40 do not.

Inside that scoring zone, points follow a steep cubic curve: 1st gets 100 base points, the last scoring place gets 1, and the drop is much steeper near the top than near the cutoff.

That base score is then multiplied by the race tier.

scoring_places = ceil(field_size / 2)

progress = (place - 1) / (scoring_places - 1)

base_points = round(1 + 99 * (1 - progress)^3)

final_points = max(1, round(base_points * tier_multiplier)) for scoring places. Everyone outside the scoring half gets 0.

Place In 40-Person Field Base Points Local Regional International World Champs
1 100 50 100 200 400
2 85 42 85 170 340
3 72 36 72 144 288
4 60 30 60 120 240
5 50 25 50 100 200
6 41 20 41 82 164
7 33 16 33 66 132
8 26 13 26 52 104
9 20 10 20 40 80
10 15 8 15 30 60
11 12 6 12 24 48
12 8 4 8 16 32
13 6 3 6 12 24
14 4 2 4 8 16
15 3 2 3 6 12
16 2 1 2 4 8
17 1 1 1 2 4
18 1 1 1 2 4
19 1 1 1 2 4
20 1 1 1 2 4

Tier multipliers

Tier Multiplier
Local 0.5x
Regional 1x
International 2x
World Champs 4x

Field sizes

Points use contestant counts, not just classified finishers. When we know DNFs or extra starters, those larger field sizes are used for scoring.