Predicted Times Algorithm for Tortoise & Hare (2012-2018)

by Felix Wong

This algorithm was used from October 2012 through October 2018. It was a revision of Paul Patterson’s algorithm used from late-January through September 2012. For the latest algorithm, see the Tortoise & Hare page.

The algorithm for predicting the finish time for a T&H race is a two step process:

  1. For each previous race, using the previous race distance and finish time, a finish time is predicted for the new race distance using the formula below.
  2. Using all the predicted finish times based on the previous races (from above), calculate an overall predicted finish time.


The formula used to predict a finish time for a new race based on one previous race is

(new finish time) = (previous finish time) * (new distance) / (previous distance) * (adj factor)

where the adjustment factor is

adj factor = 1.05 ^ ((log [new distance] – log [old distance])/log 2)

Determining Overall Predicted Finish Time

The overall prediction is based on the races from last season and/or this season. A point of clarification: a season is seven races, so the 2011 season is October 2011 through April 2012.

Separate predictions are made using last season’s races and this season’s races, and then these predictions are combined. Before discussing how the predictions are made for each season, let’s first discuss how they are combined.

Case A: No results for the runner from this season and last season

In the runner did not do a T&H race during the last two seasons, the runner will have to predict a time for himself and then submit it to us using this script.

Case B: No results for the runner from this season, but has results from last season

If the runner did a T&H race last season only, then his/her overall predicted time is the predicted finish time based on last season’s races. (This is the situation for all racers at the first race of the season.)

Case C: One result for the runner from this season

If there is only one previous race from this season, then there are two sub-cases:

  1. There are no races from last season; then use the predicted time based on the one previous race from this season.
  2. There are races from last season; then the overall prediction is the average of the predicted time based on the one previous race from this season and the predicted time based on the races from last season. That is:

(1/2) * [(predicted time based on this season’s one race) + (predicted time based on last seasons’ races)]

What this does is weight the one piece of current information from this season more heavily than the old information from last season.

Case D: Runner did two or more races this season

If there are two or more previous races from this season, then the overall predicted time is prediction based on this season’s previous races; that is, ignore the information from last season.

Calculating a predicted time based on a season’s races (applies to Cases B, C, & D)

If there is one race for the season, use the predicted time based on that race.

If there are two races for the season, use the average of the two predicted times.

If there are three or more races for the season, then use the minimum of the following two numbers:

  1. The average of the predicted times.
  2. Fastest predicted time + 1/3 * [Slowest predicted time – Fastest predicted time]

Item 2 above handles the situation where a runner has a large difference between the fastest predicted time and the slowest predicted time and most of the predicted times are clustered around the slowest predicted time.


Join & become a member today!