Program for Radio Yachting Events
Right-click on the links and select 'Save Link As' to save file on your computer
Program File currently Version 2.4 - Check your version!
This program has
been written as it was seen by some participants in handicap events that it was
too difficult for an individual PRO or handicapper to keep a handle on a dozen
or more yachts and make adjustments to their handicaps manually.
Trevor Jeffree did an initial concept design in Microsoft excel which
seemed to work simply by recording the differences between the finishing times
of the yachts in a race. Ben Morris
then agreed to simplify the mechanics of the process making it easier to use and
be able to be run by one (preferable two) persons.
considerable development and has been used successfully for SARYA Interclub and club
The program was
initially designed for handicap races between clubs as a team event and still
retains that option though it works equally well within a club for their
It is designed to run on standard Microsoft Excel software on a PC.
It is written in version of office 2003 so should work fine in all
subsequent versions. There may be some issues trying to run it on the
later Apple version of office on an Apple computer.
The main reason
behind the production of the program was to allow sailors/yachts of unequal
ability to compete together and allow all yachts to have an equal chance of
The races use a
staggered start so slowest yachts start first and faster yachts begin later.
This is achieved using a ‘count-up’ timer.
In this way all
yachts get the opportunity to actually make it to the finishing line first
something the slower yachts never experience in a standard scratch race.
times (handicap starts) are generated by an excel program after each race and
relayed to the competitors. All
times are rounded off to the nearest 5 seconds.
The number of
races is currently limited to 12 (but could be expanded I suppose) and the
number of competitors to 25 which is more than enough radio yachts to be on the
water in a race at the once.
file is best placed in a separate folder with an
appropriate name such as ‘Handicap Results’ etc.
The ‘Master’ file is opened and data entered into it as described on the
first sheet in the program and includes listing the names of the sailors, their
sail number (as a number!) and either a club or class of yacht in the third
column (Click on heading to change it from club <> class. A name for the event and
the date of the event are required to be typed at the top of the sheet and the
‘Save/Save as’ button pressed. This
saves the file with a new name and preserves the ‘Master’ program in its empty
state for the next race.
It is critical
that your excel program is set to ‘Allow all content’ or ‘Allows Macros’ as most
of the processing that occurs in the file is done in VBA (visual basic for
It is also
critical to remember in excel that if you change the content of a cell e.g. the
one for the event name or the one for the date or one for the sailors or sail
Nos or later for times etc then the information IS NOT committed or saved to the
spreadsheet until you leave the cell and move to another cell so get into the
habit of either clicking in another cell or pressing the ‘Tab’ key or pressing
the ‘Enter’ key to move from the current cell.
Moving with the mouse to an action button directly from an edited cell
and clicking on the action button WILL NOT WORK!
Excel is waiting for the edited cell to be accepted by moving to another
names of the competitors in a standard way will make the display on screen and
in the printed results look better.
I write the surname first in block capitals and a given name of preferred
name in lower case eg MORRIS Ben or JEFFREE Trevor.
Whatever you use keep it consistent. One of the options is to order by names.
The result will depend how you have written the names as it arranges them in
alphabetical order so the first name written is the one it will sort by.
It is also
critical that sail numbers are NOT ALTERED once the process starts as the
program will falter as it tries to find information that is no longer there so
GET IT RIGHT from the start!
Names of sailors are not so critical so they can be altered at any time
and not interfere with the program.
the next race are based on the differences between the finishing times of the
yachts. The handicap is averaged
over the last two races.
The first two
races are used to generate a handicap (or vary an Initial Handicap) for subsequent races though they are both
still counted in the results. The
first race is a scratch race where as expected the faster
yachts finish first and the slower ones later.
The finishing times are recorded on the timing sheet by pressing (single
click) on the button corresponding to the sail number of the finishing yacht as
it crosses the line. Finishing
times will be recorded to 1/10th sec accuracy and then rounded to the
nearest 5 sec. The sail number on
the yacht button will change to red.
Meanwhile the counter on the screen will have started.
Once all yachts have crossed the line and their button clicked, the
counter will stop and the handicaps for the next race are calculated by pressing
the ‘Set/Reset Handicaps for next Race’ button.
The list will be displayed and the times for the starts need to be
relayed to the skippers. I use a
paper sheet listing all yachts in Sail number order to write the times down which is
then available for perusal. This is
probably easier than trying to have skippers huddling around a computer screen
or calling out the times. See what
works for you.
for the second race are deliberately set to double what might be expected from
the time differences in the first race.
This allows for the slower yachts to finish first and the faster ones to
come in last so balancing the results from the first race.
The ‘real’ handicap times for the first race and a reworked set of times
from the second race found by subtracting the starting times are averaged for
race 3. These values should be
roughly ½ the values found from the first race.
Why use two races and not just the first as a starting point?
Well skippers tend to work the system and try to outguess the
handicapper. This process goes some
way to eliminating that effect.
Even if a fast boat tanks in the first race and so does better in the second
than might be expected, their handicap for the third will reflect this and so
compensate! There are no drops
built into the scoring of the final results so they have to carry the results
for those next few races where their handicap will put them further back in the
field. In addition there is an
algorithm built in to generate a maximum time for a race which precludes a very
late finisher from getting too large a handicap change by limiting its finishing
time in the calculations to this maximum time.
The use of an Initial Handicap even if only close to
expected final value reduces the variations in handicaps derived from first two
races but ends up with the same result.
From race 3
onward, the handicaps will stabilise and move a little up or down depending on
how the yacht went in the preceding races as they are then averaged over the
preceding two races with emphasis on the preceding race in the ratio 2:1.
This has the mathematical effect of averaging the handicaps for the last
It’s not quite
as simple as that as there is some attempt to keep the handicap start times at a
reasonable figure so movements of handicaps are biased towards the average
handicap. Even so the relationship
between yachts is maintained. In
addition, if the starting times for the slowest yacht gets too small a correction
is made to ALL yachts moving them all up say 30 secs and conversely if starting
time for the slowest yacht gets too large then all handicap times are reduced by
a number of seconds to bring the first yacht start to about 30 sec.
There is a warning given when this happens and it’s recorded on the
timing sheet as an adjustment.
Letting the skippers know this has happened is a good idea!
Relationships between yachts are not affected.
As soon as all
yachts have finished and new handicaps calculated, clicking on the next race
from the list on the timing screen will set up the next race.
It’s a good idea
to save the file after each race!
At any time you
can view the results of the racing by clicking the ‘Show Results’ button and
certainly at the end of racing this can be done.
There is even a button on the results sheet to display the results in a
separate tidy spreadsheet in a separate file which is in an effective format for
adding to a web page or club newsletter.
If the wrong
yacht number button is clicked going over the line or the button is clicked too
early then simply make a note of
when later it actually does finish ie look at the timer on the timer screen and
simply replace the finish time with the correct time.
As all times are rounded to the nearest 5 secs there is no need to record
to more accuracy then the nearest second.
The list will automatically readjust itself to put the finishing yachts
in the correct order.
Both the list of yacht Nos and Times for
finishing on the timing sheet can be manually corrected - just be careful!!
If there are two people recording finishes it's a good idea to have one calling
and perhaps writing down the finishing order while the other operates excel.
That way if a mistake is made then the times/Yachts can be fixed. When
doing this alone, I record a sound track on my smart phone of me saying when the
yachts are approaching the finish and when they cross. It is then possible
to replay that and verify the excel values.
No matter how
quickly you press the buttons two successive finishers will always be at least
1/10th sec apart. Simply
manually adjust the time of the second of the two yachts who draw to make it
exactly the same as the first of the two yachts.
This will make them equal in placing, leaving subsequent yachts correct.
Will it handle a three way tie??
No idea! - just tried it and
yes it does handle it correctly!
DNS, DNF or DSQ etc results where a skipper does not finish or doesn’t start?
If a yacht
doesn’t start or finish then once all other yachts are clicked and a time
recorded then either of the two steps below is performed
the DNS or DNF
yacht is clicked and a time recorded for it.
The time recorded is replaced by the typing over the time the characters
‘DNS’ or ‘DNF’.
the yacht number
of the yacht is typed into the yacht No column under the last recorded yacht and
‘DNS’ or ‘DNF’ typed into the time column.
This is repeated
until all yachts have some record in the timing section and all yacht numbers on
their button has changed too red and the timer stopped.
You may see a ‘*’ symbol appear in the column headed ‘Base HCap for next
race’. As well the yacht position
will changed to the No of yachts plus one.
handicaps are processed for either, the yacht will get an average handicap for
that race. This has the
effect of simply retaining the handicap the yacht had in the previous race.
If a yacht is
interfered with and severely disadvantaged by another yacht and
both are in agreement about blame etc then the easiest way to deal with this is
to manually adjust the finishing time for the yacht to give them it an average
finish time for the race. The
average time is displayed at the bottom of the finishing time column and can be
manually added in their time (replacing a DNF etc).
This will give them an average finishing position, rearrange the list and
move those below that finishing time down one place.
This will maintain their previous handicap for the next race – or very
close to it. Doing other changes is
of course possible but be careful as the whole idea of this program is to remove
any personal bias or suggestion of favouring particular sailors.
about late comers?
You have started
and recorded one/two races and a late comer arrives and wants to sail.
After berating the late comer for their tardiness and reminding them that
they will be getting max points plus one for any missed race and they still want
in then OK go back to the skipper list by pressing the ‘Yacht Selection Sheet’
area and add them. Press the ‘Sort
and Transfer Yachts to Timing Sheet’ button and they will appear as an
unprocessed yacht number button.
You need to return to race 1 on the timing sheet and manually type the yacht
number and a ‘DNS’ into the two columns then process the handicap again for race
1. Repeat for race two etc up to
the last race you have processed. A
bit cumbersome but it works.
if someone withdraws before the end of the event
number button will still be there so it needs processing. When all other yachts
have finished each race, manually give them a ‘DNS’ (Or DNC) result for
This is fairly
self explanatory as pressing the ‘Process Results’ button will do everything for
you working out the finishing score for all yachts arranging them in finishing
order including sorting those with the same points based on the normal rules
about the number of each finishing position etc.
For viewing, the list can be reordered using the options listed.
Remember the program was initially designed for a handicap teams race so
it will do this anyway based on the best 4 yachts in each team (club) This
is now based on one less than the minimum number from each team with a minimum
of 4 yachts.
This can simply be ignored if your race is an individual yacht event.
Clicking the ‘Export’ and ‘Open Export’ options allows a view of a
formatted spreadsheet of the results for display in your club’s newsletter or
There is a sheet generated which displays the variations of
the handicaps over the series of races and is useful to show what happens to
handicaps over the series. These values can be used as an initial handicap
in subsequent series.
Action Buttons don’t seem to work
Most likely you
have entered a value into the spreadsheet and forgotten to press the ‘Enter Key
or Tab Key or move to another cell.
Only then will the action buttons become active!