by Felix Wong
This algorithm was used from mid-October 2018 onward. It was a revision of the algorithm used from October 2012 to mid-October 2018. I.e., it was implemented starting with the second race of the 2018-2019 T&H season.
The algorithm for predicting the finish time for a T&H race is a two-step process:
- For each previous race, using the previous race distance and finish time, a finish time is predicted for the new race distance.
- 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
where the adjustment factor is
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:
- There are no races from last season; then use the predicted time based on the one previous race from this season.
- 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 weighted 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:
- The weighted average of the predicted times.
- 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.
Calculating weighted averages (new!)
- n = last race. E.g., if the last race was in December—the third race of the season—then n = 3
- Wr = weight of race
- PTr = predicted time based on result from race
Race #1 (the first race of the season) will have a weight of 1, Race #2 (the second race of the season) will have a weight of 2, and so forth.
I.e., W1 = 1, W2 = 2 … W7 = 7
Example: Jane ran Race #1, #3, and #7 in a season. Her predicted time for the next T&H race would be the weighted average of the predicted times derived from the actual results from those three races. I.e.,
Therefore, in calculating this average, later races (i.e., your most recent results) are given more weight in predicting the finish time for your next race.