Average Lap Time Calculation

Hi all,

Our club uses lap-timed handicap (a.k.a average lap time) format for its club racing.

Sailwave does a great job for the usual case where boats complete the same number of laps or slower boats complete fewer laps but the results where two boats of the same class complete different numbers of laps are not what we would choose.

The calculation that Sailwave completes is a simple average of the lap times. However, if two boats of the same class sail different numbers of laps it is always because one was significantly behind at the end of a lap and were finished early. Under these circumstances we would prefer that the boat(s) which were ahead and sail more laps should not lose out if, for example, the wind then decreases.

In fact, we would like to apply this more generally, something like:

  "A boat will always be scored ahead of any boats which are rated the same or faster but complete fewer laps."

Clearly, there will always be anomalies where faster boats sail more laps in dying breeze but that is a compromise which is acceptable to give more boats the target race duration and can’t reasonably be avoided.

Does such an option exist in Sailwave that we have not managed to find yet?

If not, would it be a reasonable request for Scoring System options?

Thanks in advance,

Ian

Hi Ian,

Have you read the RYA document

which describes how to deal with the situation you wish to address.
Jon is this something that could be implemented in Sailwave?
Kind regards,
Huw

···

http://www.rya.org.uk/SiteCollectionDocuments/technical/Web%20Documents/PY%20Documentation/PY-running%20races.pdf

   On 04/04/2016 14:15, Ian Bullock

[sailwave] wrote:

Hi all,

          Our club uses lap-timed handicap (a.k.a average lap time)

format for its club racing.

          Sailwave does a great job for the usual case where boats

complete the same number of laps or slower boats complete
fewer laps but the results where two boats of the same
class complete different numbers of laps are not what we
would choose.

          The calculation that Sailwave completes is a simple

average of the lap times. However, if two boats of the
same class sail different numbers of laps it is always
because one was significantly behind at the end of a lap
and were finished early. Under these circumstances we
would prefer that the boat(s) which were ahead and sail
more laps should not lose out if, for example, the wind
then decreases.

          In fact, we would like to apply this more generally,

something like:

          "A boat will always be scored ahead of any boats which are

rated the same or faster but complete fewer laps."

          Clearly, there will always be anomalies where faster boats

sail more laps in dying breeze but that is a compromise
which is acceptable to give more boats the target race
duration and can’t reasonably be avoided.

          Does such an option exist in Sailwave that we have not

managed to find yet?

          If not, would it be a reasonable request for Scoring

System options?

          Thanks in advance,

          Ian


Virus-free. www.avast.comian_bullock@me.com

Hi Huw,

I had not seen that so thanks for the reference.

That solution looks good to me but I do think it should be applied to any faster boat which has sailed fewer laps. If anything, that is a more common scenario, especially if you have multiple classes with similar PYs but different preferred conditions.

Implementing the maths manually at results time isn’t really a viable solution for the club office but an option in Sailwave to be fantastic if that were feasible.

Many thanks

Ian

Hi again,

Apologies for bringing up an old thread but I was not sure where this ended up.

Is it something that might be considered for an update in Sailwave?

Many thanks

Ian

···

On 4 Apr 2016, at 16:22, ian_bullock@me.com [sailwave] sailwave@yahoogroups.com wrote:

Hi Huw,

I had not seen that so thanks for the reference.

That solution looks good to me but I do think it should be applied to any faster boat which has sailed fewer laps. If anything, that is a more common scenario, especially if you have multiple classes with similar PYs but different preferred conditions.

Implementing the maths manually at results time isn’t really a viable solution for the club office but an option in Sailwave to be fantastic if that were feasible.

Many thanks

Ian

Hi Ian,

Have you read the RYA documenthttp://www.rya.org.uk/SiteCollectionDocuments/technical/Web%20Documents/PY%20Documentation/PY-running%20races.pdf which describes how to deal with the situation you wish to address.

Jon is this something that could be implemented in Sailwave?

Kind regards,
Huw

On 4 Apr 2016, at 14:15, Ian Bullock ian_bullock@me.com wrote:

Hi all,

Our club uses lap-timed handicap (a.k.a average lap time) format for its club racing.

Sailwave does a great job for the usual case where boats complete the same number of laps or slower boats complete fewer laps but the results where two boats of the same class complete different numbers of laps are not what we would choose.

The calculation that Sailwave completes is a simple average of the lap times. However, if two boats of the same class sail different numbers of laps it is always because one was significantly behind at the end of a lap and were finished early. Under these circumstances we would prefer that the boat(s) which were ahead and sail more laps should not lose out if, for example, the wind then decreases.

In fact, we would like to apply this more generally, something like:

"A boat will always be scored ahead of any boats which are rated the same or faster but complete fewer laps."

Clearly, there will always be anomalies where faster boats sail more laps in dying breeze but that is a compromise which is acceptable to give more boats the target race duration and can’t reasonably be avoided.

Does such an option exist in Sailwave that we have not managed to find yet?

If not, would it be a reasonable request for Scoring System options?

Thanks in advance,

Ian

The Document states

If a boat ends with a corrected time greater than a boat which completed less laps but has the same

PN a modifying calculation should be applied as follows:

Modified time = Corrected time x multiplier

Multiplier = (slowest x (fastest laps–1)) / (about to finish time x fastest laps)

Where:

Fastest Laps is Actual Laps completed by the fastest boat in the group. Slowest is the Elapsed Time of

the slowest boat in the group.

NB this is only applied to a group of boats with the same PN where one or more have been effected

by sailing differing number of laps and the corrected times do not reflect a fair outcome.

The big problem here is to implement this, as I see it you would have to enter the lap time for every boat because Sailwave doesn’t know which boats are going to be affected until it has scored the series. This would be a big load on the race team recording all the lap times of all the boats and then the scorer to enter them all and then major changes to Sailwave to handle it.

Ian States:-

“A boat will always be scored ahead of any boats which are rated the same or faster but complete fewer laps.”

So its calculated average lap time is slower but Sailwave has to rank it higher - how much higher?

May be you should take the time of the previous lap for those boats and record them as 1 lap less?

Jon

···

On 21 June 2016 at 09:28, Ian Bullock ian_bullock@me.com [sailwave] sailwave@yahoogroups.com wrote:

Hi again,

Apologies for bringing up an old thread but I was not sure where this ended up.

Is it something that might be considered for an update in Sailwave?

Many thanks

Ian

On 4 Apr 2016, at 16:22, ian_bullock@me.com [sailwave] sailwave@yahoogroups.com wrote:

Hi Huw,

I had not seen that so thanks for the reference.

That solution looks good to me but I do think it should be applied to any faster boat which has sailed fewer laps. If anything, that is a more common scenario, especially if you have multiple classes with similar PYs but different preferred conditions.

Implementing the maths manually at results time isn’t really a viable solution for the club office but an option in Sailwave to be fantastic if that were feasible.

Many thanks

Ian

Hi Ian,

Have you read the RYA documenthttp://www.rya.org.uk/SiteCollectionDocuments/technical/Web%20Documents/PY%20Documentation/PY-running%20races.pdf which describes how to deal with the situation you wish to address.

Jon is this something that could be implemented in Sailwave?

Kind regards,
Huw

On 4 Apr 2016, at 14:15, Ian Bullock ian_bullock@me.com wrote:

Hi all,

Our club uses lap-timed handicap (a.k.a average lap time) format for its club racing.

Sailwave does a great job for the usual case where boats complete the same number of laps or slower boats complete fewer laps but the results where two boats of the same class complete different numbers of laps are not what we would choose.

The calculation that Sailwave completes is a simple average of the lap times. However, if two boats of the same class sail different numbers of laps it is always because one was significantly behind at the end of a lap and were finished early. Under these circumstances we would prefer that the boat(s) which were ahead and sail more laps should not lose out if, for example, the wind then decreases.

In fact, we would like to apply this more generally, something like:

"A boat will always be scored ahead of any boats which are rated the same or faster but complete fewer laps."

Clearly, there will always be anomalies where faster boats sail more laps in dying breeze but that is a compromise which is acceptable to give more boats the target race duration and can’t reasonably be avoided.

Does such an option exist in Sailwave that we have not managed to find yet?

If not, would it be a reasonable request for Scoring System options?

Thanks in advance,

Ian

Jon Eskdale
07530 112233

Skype “eskdale”

From memory, the PY instructions say you should record the times of boats crossing the start/finish on the penultimate lap, so that you can apply the calculation.

In practice our ROs record all lap times, as a situation by occur that for the safety of competitors the race is shortened. I’d sort of assume that it is common to record all laps, as otherwise if you have to shorten then you can’t you’d have to abandon.

I agree the logic to create a minimal workflow (i.e. only need to input the penultimate lap in the situation where a boat in the same class (or faster?) doing less laps is higher placed ) in Sailwave may be rather complex.

It is a situation that gets discussed often at our club, where we handicap race but with larger fleets of same classes, and often in the afternoon wind dies off.

If there were some way to improve the scoring to at minimum follow the RYA guidelines, it would move Sailwave from being the best race results program to the even bestest ever :slight_smile:

Hi Jon,

Thanks for the reply and for pointing out the flaws in that plan.

Having studied the maths in the RYA document a bit more carefully, it feels like it was written with manual calculation or a spreadsheet in mind. The RYA solution is to fudge the corrected average lap time so that a sort will produce the correct results. For a piece of software like SailWave where the sort can be more sophisticated I would have thought that a better solution would be to leave the corrected average lap times alone and just assign the places differently.

I hope you don’t think this too cheeky but I have enclosed a snippet of C code which I hope achieves the desired result. It contains a std::sort functor which sorts on a combination of average lap time, laps and PN such that boats with differing laps are only sequenced on average lap time if they are the “right" way round (fast class having done more laps than a slower class) otherwise it uses the PN and lap count to determine the order. I have left the code verbose for clarity but I am sure that the logic could be condensed.

This solution would not require any additional workflow or entry of lap times. It would not require any additional UI other than possibly a checkbox to enable (or disable) it.

Apologies for not having thought this through in more detail before asking the question. As Alan said, SailWave is already a fantastic tool and this really is a rare edge case but one that crops up just enough to be a worth mentioning.

Many thanks in advance,

Ian

Many apologies for dredging this up again but I feel that we have not yet reached a completely satisfactory conclusion.

This is especially so as the suggested RYA method for solving the issue is, unfortunately, not currently available in Sailwave or, looked at another way (playing Devil’s advocate), Sailwave does not give the correct results for average lap racing sailed & managed in accordance with the RYA PY Scheme for average lap racing (when the PN modifying calculation needs to be applied).

I think I follow & understand all the key issues outlined in the thread so far except perhaps for one.

When using the suggested RYA PN modifying calculation, you do not need to have recorded every lap time for every boat. Hence, if you don’t need the data to do the calculation manually, I do not see why you would need to have such data for a computed solution.

Jon, I follow that “Sailwave doesn’t know which boats are going to be affected until it has scored the series”, but once it has done that calculation, Sailwave would be in a position to calculate/know that such a scenario (where a modifying calculation is required) existed & it also has all the data it needs to implement such “modifying calculations” when/if required. At that point and if required, before presenting the new race and series results, Sailwave could highlight the situation to the operator and offer a choice (eg implement the RYA modifying calculation or not) before proceeding.

Am I right?

If so, then logic would suggest it should be possible to implement such a solution, it is just a question of how.

Unfortunately (?) I am not a computer expert and therefore I can’t follow in detail what Ian has suggested in his “snippet of C code” nor do I have any real idea of how such a modification to Sailwave could/would have to be undertaken (nor how much work/effort it would entail).

Does Ian’s proposal “do the trick”?

Any more recent thoughts?

I agree Sailwave is a fantastic tool and we use it all the time at our club. It is just a shame that on Thursday evening in the summer with a dying breeze, this rare case does “crop up just enough” to require a rather painful manual intervention to check &, when needed, recalculate some of the race results then manually enter the race positions or “fudging” the data with some manually entered “RDG” positions (& consequently losing valuable race data) to calculate the series results.

Apologies again…

RF

That RYA modifying calculation always feels extremely rocky to me. I’d hate to try and justify it mathematically. If - or rather when, because it almost always does - the wind shuts off every boat is affected to a greater or lesser extent, but what we are doing is arbitarily picking just a few boats to ‘correct’.

I do rather like what Jon says: time every boat on the penultimate lap, I would have it in the SIs that if the wind drops every boat is scored on the time for one lap less - ie what they would have got if the team had got the S flag out when they would like to have done with hindsight. That does seem fairest.

Otherwise its really in race management - short enough laps that average lapping works properly, and shortening course before the wind drops. I keep thinking I should record the wind drop time every evening during the summer so that we can see if we can advise the race teams - “the wind’s most likely to drop 40 minutes before sunset” but somehow have never got round to it…

Jim C