Are you fast?

Rankings|How scoring works|Contribute

About Our Elo Ranking System

We use the Elo rating system to rank racers based on their performance in races, similar to the system used in chess.

General Approach

In a race, each finishing position is treated as a series of individual victories and defeats.

  • 1st place "beats" all other participants.
  • 2nd place "beats" all except 1st place, and so on.

Elo Adjustment

Each participant starts with their current Elo rating. The race is treated as a series of pairwise comparisons. For example, with 10 racers, there are 45 pairwise comparisons((102)=45)(\binom{10}{2} = 45)((210​)=45).

The expected score for Racer A against Racer B is:

EA,B=11+10(RB−RA)/400E_{A,B} = \frac{1}{1 + 10^{(R_B - R_A) / 400}}EA,B​=1+10(RB​−RA​)/4001​

If Racer A finishes ahead of Racer B, assign a score of 1 for Racer A and 0 for Racer B.

Update each participant’s Elo rating based on their performance relative to others:

ΔRA=K×1n−1∑i=1n−1(SA,i−EA,i)\Delta R_A = K \times \frac{1}{n-1} \sum_{i=1}^{n-1} (S_{A,i} - E_{A,i})ΔRA​=K×n−11​∑i=1n−1​(SA,i​−EA,i​)

Where:

  • KKK is the adjustment factor (our adjustment factor is 32)
  • nnn is the total number of participants
  • SA,iS_{A,i}SA,i​ is the actual score for Racer A against Racer iii
  • EA,iE_{A,i}EA,i​ is the expected score between Racer A and Racer iii

Example

Three racers with initial Elo ratings:

  • Racer A: 1000
  • Racer B: 1500
  • Racer C: 1200

Finishing order: A, B, C.

Pairwise comparisons:

  • A "beats" B and C (2 wins)
  • B "beats" C (1 win)
  • C comes in last (0 wins)

Calculate expected scores and update Elo ratings based on the differences between expected and actual outcomes:

Expected scores:

  • EA,B=11+10(1500−1000)/400=0.05E_{A,B} = \frac{1}{1 + 10^{(1500 - 1000) / 400}} = 0.05EA,B​=1+10(1500−1000)/4001​=0.05
  • EA,C=11+10(1200−1000)/400=0.24E_{A,C} = \frac{1}{1 + 10^{(1200 - 1000) / 400}} = 0.24EA,C​=1+10(1200−1000)/4001​=0.24
  • EB,C=11+10(1200−1500)/400=0.76E_{B,C} = \frac{1}{1 + 10^{(1200 - 1500) / 400}} = 0.76EB,C​=1+10(1200−1500)/4001​=0.76

New Elo ratings:

  • RA=1000+30×(1−0.05)+30×(1−0.24)=1451R_A = 1000 + 30 \times (1 - 0.05) + 30 \times (1 - 0.24) = 1451RA​=1000+30×(1−0.05)+30×(1−0.24)=1451
  • RB=1500+30×(0−0.95)+30×(1−0.76)=1462R_B = 1500 + 30 \times (0 - 0.95) + 30 \times (1 - 0.76) = 1462RB​=1500+30×(0−0.95)+30×(1−0.76)=1462
  • RC=1200+30×(0−0.76)+30×(0−0.24)=1140R_C = 1200 + 30 \times (0 - 0.76) + 30 \times (0 - 0.24) = 1140RC​=1200+30×(0−0.76)+30×(0−0.24)=1140

New Elo ratings after the race:

  • Racer A: 1451
  • Racer B: 1462
  • Racer C: 1140