How the Next Handicap is Calculated.

← Back

Necessary Definitions

  • AHC: – the “Allocated Handicap” e. the handicap Allocated to a boat for a particular race.
  • Elapsed Time: – Finish Time – Start Time[1].
  • Corrected Time: – Elapsed Time * AHC.
  • BCH: – the “Back Calculated Handicap” for each This is the handicap the boat needed for this race to end up with the same handicap corrected time as that of the reference boat. This can only be calculated after the race – hence the terminology “Back” calculated. If each boat had started the race with their BCH as their AHC then all boats would have a virtually identical handicap-corrected times.
  • CBCH: – the “Clamped” Back Calculated Handicap. The BCH is passed through a clamping algorithm that applies some ‘sanity checks’ to the BCH. These checks endeavour to cull out BCHs which are not truly representative of that boat’s The set points used in the sanity checks as supplied in TopYacht Standard handicapping maths are empirically derived, but have withstood the test of time. See Appendix 1. This indicates how the clamps manipulate the BCH before the being used to compute the CHC.
  • CHC: – the “Computed Handicap” for each boat. This is the projected handicap to be allocated to each boat for the next race.
  • TCF: – or “Time Correction Factor”, being a number that the elapsed time is multiplied by to compute the corrected time. Also known as an AHC
  • Mark (or Reference) Boat – is the boat chosen that is about mid-fleet within the finishing Group.

Handicap Types

There are 4 main handicap types, selected as follows:

  • Time on Time: – where the handicap value is expressed as a Time Correction Factor, usually whose value is around 1.0 +/- 0.5
  • Time on Distance: – Usually expressed in minutes (or seconds) per mile
  • Time (Pursuit): – a per-boat time offset which is added to the reference start time of a pursuit race to compute the start time of each boat.
  • Time: – Expressed in minutes, it is a per race time penalty, regardless of the elapsed time of the race, or the winning margin.


So How to Derive the Next-Race Handicap for Each Boat

This is essentially a five step process. The following discussion assumes that the previous race has been completed, and the race results have been computed. The CHC is calculated as part of the computing process.

Step 1

Determine the Mark Boat.

  • The boats in the handicap group are ranked in corrected time order.
  • Parameter 1 in the handicap recipe is user selectable. Typically it is 45%[2]. The boat selected is this percentage from the top of the list. The Corrected Time is ear-marked. See Appendix 4.

Those towards the top of the fleet are considered to have sailed above their handicap and those towards the bottom of the fleet are considered to have sailed below their handicap.

Step 2

Calculate the BCH.

  • For each boat, the BCH is calculated by dividing the Corrected Time of the Mark Boat by the Elapsed Time of each boat in the Group. Note that the BCH and the AHC for the Mark Boat are equal in value

Step 3

Clamp the BCH.

  • For each boat, some sanity checks are applied to the BCH to calculate the CBCH. See Appendix 1.

The set-points used in the algorithm have heed derived empirically, and withstood the test of time. They are designed to moderate (or reject) BCH values that are extreme (The competitor was in the right place at the right time when the breeze changed, or in the wrong place at the wrong time!)

Step 4

Calculate the CHC.

While various parameters all significantly impact on the generation of the next race handicap, probably the key element is the amount of CBCH used in calculating the next race handicap.

There are three primary ways the CHC is calculated:

  • Weighted Average of the last N CBCH’s.

In essence this averages the last (say) 4 race’s CBCHs.

So after Race No. 4, Race No. 5’s CHC is (CBCH1 + CBCH2 + CBCH3 +CBCH4)/4.

After Race 5, Race 6’s CHC is (CBCH2 + CBCH3 + CBCH4 +CBCH5)/4

At each new race the oldest CBCH is dropped and the last race CBCH added into the averaging process. This can have some apparently weird outcomes where a boat can win a race (or be in the top place getters) and have the next race handicap go down. Likewise a boat towards the bottom of the fleet can actually have their handicap go up after the race.

When there are less than N races, the start-up works like:

R1 CHC = 3/N AHC1 + 1/N CBCH1;

R2 CHC = 2/N AHC1 + 1/N CBCH1 + 1/N CBCH2

etc until there are N CBCHs.

  • Exponential Average with a ‘Gain’ of

This form of handicapping has been shown to provide a very similar outcome to weighted-average handicapping over the duration of a Series. To achieve this similarity the various parameters need to be appropriately set.

For ‘Gain’ Numbers less than 10

As an example, let’s use a ‘gain[3]’ of 3, (the default value used in TopYacht as downloaded) the next race CHC = 1/3 of the CBCH plus 2/3 of the AHC.

For ‘Gain’ Numbers greater than 10

The mathematics changes. TopYacht treats the value as a percentage.

Instead of the case where increasing numbers make the system more sluggish, for values increasing in value increases the percentage of the BCH used in computation of the AHC

CHC = (gain / 100) x BCH 10  + ((100-gain) / 100 * AHC)

This system does not suffer from the issue of winner’s handicaps having the potential to actually drop or loser’s handicaps actually going up!

It is also very easy to understand; and if a boat performs well, their handicap goes up and conversely.

It also enables the club handicapper to quickly address boats that were given an inappropriate initial handicap as altering the AHC for a race has a significant impact on the next race handicap whereas under weighted average, the handicap is only affected by the running sum of the BCHs and can take quite a number of races to attain a sensible handicap for a boat. See Appendix 2

  • Place Based Handicapping.

This technique is a recipe-driven system where the handicap adjustments are made based on some rules the user enters into the handicap recipe. The size of each adjustment is based on the boat’s place in each race. For details, see Appendix 5 and Appendix 6

  • Place Biased Exponential Handicapping.

Unlike Exponential Averaging this technique applies a progressive scale factor to boats with the biggest impact on the winner, next biggest on the second place getter and continues right down the mid place getter. The same progressive scale factor applies to the loser, second last etc. In all cases the scale factor varies the percentage of BCH that is used in calculating the new AHC. The winner might have a new AHC = 80% of BCH plus 20% of AHC; second might get 75% of BCH plus 25% AHC etc. This approach alters the new handicap by a sliding scale factor AND (importantly) by the BCH (which is a direct measure of how much the boat performed above or below their AHC). In using this maths you would actually use the ‘clamped’ BCH not the raw BCH so any extreme BCHs are limited in their impact on the next race AHC.

  • Trend Biased Average

This uses a formula to try to calculate where the AHC will be for the next race. For a normal boat whose BCHs are simply oscillating up and down it provides a very similar outcome to the Running Average. For a boat that is improving or not it attempts to predict a sensible CHC for the next race.

  • Boat Performance Ratio

Unlike all other system that determines a boat’s handicap results by comparing them to all the other boats, this system compares the boat to its average previous performances. If you wish to experiment with this system you will need to chat to Rod about how to implement this method. It is not just a ‘turn on and it goes’ system as it needs preparation and must follow some rules.

Step 5

Veto. (Optional)

The handicapping process is purely mathematical. While the clamping algorithm automatically suppresses some outlandish outcomes, it cannot cater for some real-life events.

For example, if the wind drops out after the first few boats have finished but before the mark boat finishes, those early finishers will get a BCH that could push through the upper clamp and create a major disturbance in the CHC. The Club’s handicapper has the right to specifically exclude that race’s BCH calculations in the prediction.

Appendix 1

Clamping Algorithm



  • What if a boat ran aground and took 10 minutes to get free. Should you use this BCH?
  • What is a boat was lucky enough to be in just the right spot when an unexpected wind change occurred? Should you use this BCH?

Let’s us consider the case of the boat running aground and, and recording a very poor performance [low BCH]. There are several options available.

The choice is yours.

  • Use this BCH.
  • Ignore it.
  • Use a modified value for this BCH.

If the competitor’s allocated handicap was 0.800 and the BCH was 0.720. This BCH is 10% below the allocated handicap. You may choose to “clamp” the lowest acceptable BCH to say 5% of the allocated handicap below the allocated handicap. Instead of using .720 as a BCH, 0.760 would be substituted. Since historical observations strongly suggest that competitors perform within +/- 4% of their allocated handicap for the vast majority of their races, clamps of +/- 4% makes sense, and have stood the test of time


Further, for the competitor who ran aground you may decide to totally ignore the BCH from that race. This can be achieved by setting a “Lower Limit” of (say) 6%. Then BCH that falling below this figure will be ignored when calculating the new handicap. The current allocated handicap value is substituted.

This diagram describes the clamping / limiting of the BCH.

It is from a Microsoft Excel Spreadsheet, where the Clamp / Limit algorithm has been built from the actual TopYacht code.


Users can be downloaded from here and manipulate the parameters to observe the impact the manipulation will have.

Appendix 2


This demonstrates the Exponential filtering.

The Time Constant (‘gain’) value determines the sluggishness of the response.

The initial value is 0.700

The terminal value is 0.800

The ‘gain’ is 3.

By definition:

  • After one time constant (3 races) the boat would be about 67% of its target value
  • The terminal value is ‘reached’ after about 5 time constants. So for a gain (time constant) of 3, it takes 3 x 5 = 15 races to reach its terminal value.


This spread-sheet can be downloaded from here and manipulated by interested parties.



Appendix 3

TopYacht’s Handicap Recipe

Appendix 4

TopYacht’s Typical handicap Results output.

The mark boat can be identified in the list. The AHC is the same as the BCH, and highlighted by the green ribbon.

In this list it is “SPARKLE’.  The location of the boat in the finishing list is 45% the way down. Note that mathematical rounding occurs, and the boat closest to 45% is selected.

Appendix 5

Place Based Handicap where Time Correction Factor s(TCF) e. g. 0.851, are adjusted based on a place.

Users can set-up their own recipe by following these steps.

Step 1:

Open the handicap screen. Admin | Maintain | For Master List | Define / Edit Handicaps

Step 2:

Select ‘Time on Time’ option.

Step 3:

Click on the Drop-Down box arrow.

Select Place Based HC.

The recipe will appear in Item 8 as below.

In this example:

  • First Place has 0.01 added to the ACH to calculate the CHC for the next race
  • Second Place has 0.005 added to the ACH to calculate the CHC for the next race
  • Third Place AHC remains unaltered.
  • The remainder of the fleet have 0.002 deducted from their individual AHC to calculate the CHC for the next race.
  • Boats that Retired or did not complete the course have 0.002 deducted from their individual AHC to calculate the CHC for the next race.

Adjustments may also be entered as a percent… (Make sure the % symbol is used or interesting outcomes will occur!!!)

The user is free to add, alter or delete rules as required by the Club’s sailing instructions.

Appendix 6

Place Based Handicap handicaps for a pure time-based handicap system (e.g. a handicap of 5 minutes for achieving a first place) are in the form of a time penalty adjustments based on a place.

Users can set-up their own recipe by following these steps.

Step 1:

Open the handicap screen. Admin | Maintain | For Master List | Define / Edit Handicaps

Step 2:

Select ‘Time’ option.

Step 3:

Click on the Drop-Down box arrow.

Select Place Based HC.

The recipe will appear in Item 8 as below.

In this example:

  • First Place has a time adjustment of 3 minutes added to the ACH to calculate the CHC for the next race.
  • Second Place has a time adjustment of 2 minutes added to the ACH to calculate the CHC for the next race.
  • Third Place has a time adjustment of 1 minute added to the ACH to calculate the CHC for the next race.
  • The remainder of the fleet remain unaltered.
  • For the next race, the CHC list is searched for the lowest time offset. This number is then added to every boat such that the boat with the lowest number starts with a zero time offset (being the ‘scratch’ boat).


  • The unit of measure for the adjustment is ‘minutes’.
  • For technical reasons, the time offset must be entered as a negative number.

Document Revision

28-10-2019, 06-08-2019, 03-08-2019, 24-07-2019, 09-01-2019

[1] TopYacht strongly recommends the use of Time of Day in 24-hour format for the Start and Finish time. “I finished at about 3:25 (15:25)” is much more meaningful to a competitor instead of “105 minutes after the start (assuming a 13:30 start time)


[2] The 45% boat has been shown through time to provide most stable handicap adjustments over a season.]

[3] ‘Exponential’ is an abbreviation of Exponentially Weighted Moving Average (EWMA)’ The term ‘Gain” while widely used, is incorrect and counter intuitive. It is actually a ‘time constant’, and determines the response of the mathematics. Increasing the value makes it less responsive (more sluggish)