Algorithm Update

Algorithm update based on ties

This one came directly from a driver report, and it's a good one.

AutocrossRank member Kevin submitted a data issue report after noticing something unusual at a recent event. He and fellow competitor Will were tied to the thousandth of a second — identical best times in their class. The live timing site showed Kevin in the lead based on their second-fastest runs (the standard tiebreaker). The printed results had it swapped, which has been confirmed to be in error.

When we looked into how the ranking system handled this, we found a problem that went beyond the results mix-up.

The Glicko-2 algorithm builds head-to-head matchups between every pair of drivers in a class at each event, using their times to determine who "won" each matchup. When two drivers have identical times, their order in the sorted list is essentially arbitrary — determined by whatever order the database happens to return them in. Whichever driver ended up first in that list was assigned a win; the other was assigned a loss. A coin flip, in effect.

Before: Two drivers with identical times ? one gets a win (rating goes up), one gets a loss (rating goes down), based on arbitrary row ordering. The finishing position tiebreaker wasn't consulted. Neither driver could predict or rely on the outcome.

After: Two drivers with identical times ? both receive a draw (0.5 score each). In Glicko-2, a draw between two drivers of equal prior rating produces zero net rating movement from that matchup — which is the mathematically correct answer. If the data can't tell you who was faster, the algorithm shouldn't pretend it can.

In Kevin and Will's case specifically: they were in a class of 28 drivers. The tied matchup between them was just one of 27 head-to-head games each of them played that event. The overall impact on their season ranking from this single coin-flip was small — but it was wrong, and now (after our next ranking run) it isn't.