Sail Scoring

Features

Everything the job needs.

Sail Scoring covers the whole of a scorer’s season — setting up, scoring, publishing, and everything after. The full tour, from the everyday to the deep end.


Running a series

Set up the season, not just a spreadsheet.

A series holds everything about a trophy, league, or championship — its entries, fleets, starts, and race calendar — and the whole club's worth of them stays organised.

A home for every series

The workspace home groups series under your own categories, in your own order, with recent activity shown under each — so a club running five leagues and a regatta a season still finds everything at a glance.

A series in under a minute

Name it, say where and when, and start entering competitors. Everything else — fleets, scoring systems, discards, publishing — can be decided when it matters, not up front.

Finished seasons, kept safe

Archiving makes a finished series read-only, filed by year at the foot of the list — a safeguard against a stray edit months later. Deleting takes two deliberate steps and even then is soft: a trashed series stays recoverable for thirty days.

An entry list that fits your racing

Every entry needs just a sail number and a name. Everything else is optional and per series: boat, class, owner, helm, crew, club, nationality, bow numbers, and prize-giving divisions. Enable only the fields your racing uses and the forms stay small. A boat can hold two clubs, so the Club and Other Club columns on an Irish entry list both survive the import — and both appear on the results.

Boats that change sails mid-event

A replacement sail after damage, a borrowed one, a charter picked up on day two — list the other numbers a boat may show and finish entry recognises all of them. The result lands on the right boat, and the series records which sail it actually raced under, while standings and published pages keep showing the number it entered with.

Sorted the way you read numbers

Sail number 7 belongs at the top of the list, not below 217236 — numbers sort as numbers here, grouped by national letters. Click any column to sort by it instead, and hold shift to stack up to three: nationality, then gender, then sail number, for pulling clubmates or a run of similar boats together.

A long list, a shorter entry

Import the whole class register or last season's fleet, then tick Excluded on the boats that haven't entered. They stay on the list but are not entrants: scored nowhere, on no published page, and left out of the count that DNC points come from — exactly as Sailwave's Exclude works, and imported with it. When one of them turns up on the water, the finish sheet offers to include it as you type its number. Or let the series do it: rank only boats that took part, and any boat with no result yet is out until it sails.

Boats with more than one name

Co-owned boats, offshore co-helms, and full keelboat crews are first-class: any person field can hold as many names as the boat carries, and exports keep the classic Helm / Crew line for the simple case.

Optional feature — switched on per workspace under Workspace settings.

Tidy the whole list in one pass

Filter, select, and set a field on thirty entries at once — with suggestions from values already in use, so near-misses like HYC versus Howth YC are easy to unify. Find duplicates groups suspect entries, including sail-number changes, for review and one-click merge.

Fleets, scored independently

Group competitors into fleets — each with its own scoring system, its own standings, and its own penalty-point base. The same boat can sail in more than one: a cruiser scored under IRC and ECHO from a single finish time is the normal case, not a workaround.

Describe the start line once

Tell it how your classes start — who goes first, who shares a gun, how long between signals — and every new race resolves all its start times from the first warning. Three classes at five-minute intervals is one dialog, once a season.

Only the fleets that raced

A race's recorded starts say which fleets sailed it, so finish entry, check-in, and automatic DNCs cover only the boats actually racing — no wading through the whole entry list, no clearing phantom DNCs for a class that stayed ashore.

A season of races in one go

Add races one at a time, or generate a whole weekly or fortnightly run from a single dialog — pick the first date, say how many, and check the previewed dates before anything is created. Postpone, rename, or slot in a re-sail later without disturbing the scoring.

The race, on the record

Record what a race was sailed in — wind range and direction, the course, the tide — and who ran it, using World Sailing's race-management roles. Officials' names are never published unless you explicitly say so.

Optional feature — switched on per workspace under Workspace settings.

One entry list, many series

A season often scores as several series over the same boats — a Winter and a Spring block, Tuesdays and Saturdays, an overall table alongside. Sub-series keep the whole season in one place: each block gets its own standings, discards, and published pages, and progressive handicaps can chain from one block into the next.

Optional feature — switched on per workspace under Workspace settings.

Roll into the next series

When Spring Series 1 ends and Series 2 begins, create the follow-on in one step: same settings, fleets, and competitors, with each boat's handicap carried forward from where the last series left it.

Optional feature — switched on per workspace under Workspace settings.

Qualifying fleets, finals, medal races

Big one-design championships split the entry into qualifying fleets re-dealt from the standings each morning, then Gold and Silver finals — the format behind ILCA and Optimist majors. A guided tab runs the whole event: seeded initial assignment, daily re-deals, combined interleaved finish sheets, catch-up races, the final split, and a medal race — and it reads your configuration back as sailing-instruction prose so you can check it against the SIs you were given.

Available on request — get in touch and we'll set it up.

World Sailing Sailor IDs

Record each sailor's World Sailing ID — the only identifier that survives chartered boats — carry an organising authority's seed ranking on the entry list that decides the first day's qualifying fleets, and verify every ID against World Sailing's own datafeed, where a mismatch is what catches two transposed digits on an entry form.

Optional feature — switched on per workspace under Workspace settings.


Entering results

From finish sheet to scored race, fast.

Result entry is built around how finishes actually arrive: a handwritten sheet, a busy finish line, and a scorer who wants to be done before the bar closes.

The finish sheet, typed as it comes

Row order is crossing order, a sail number commits the moment it's unambiguous, and timed fleets prompt for a finish time as you go. A whole fleet's finish goes in as fast as you can read the sheet.

Every result code, scored correctly

DNS, DNF, OCS, NSC, RET, DNC, DSQ, DNE, UFD, BFD — the full Racing Rules code set, grouped by how each arises, with boats that never came out collected automatically. Each code scores its correct penalty base, and a non-excludable DNE is never discarded.

Unknown boat? Keep writing

A sail number that isn't on the entry list doesn't stop the sheet: record it as unknown in its crossing position and resolve it to the right boat later, once someone remembers whose spinnaker that was.

Ties, per the rules

Two boats crossing together share averaged points with one tick, and series ties break automatically per RRS A8 — best scores first, then the last race. Nobody re-derives a tie-break at the prize-giving.

ZFP, SCP, and DPI penalties

A boat penalised after a hearing keeps her finish and takes the points: ZFP, SCP, and discretionary DPI penalties are applied from the finisher's row and scored per RRS 44.3(c) and A6.2 — the percentage, the rounding, the DNF cap — with the penalised score shown in amber wherever it appears.

Redress, by the book

When the protest committee grants redress, score it the way RRS Appendix A9 says: average of all other races, races before the incident, or stated points — with control over which races count, and per-fleet values for a boat scored under more than one handicap system.

Who came to the start

Tick boats present in the starting area as they arrive — by tap, or by typing sail numbers as fast as you can read them. It's the record behind DNF-versus-DNC defaults and starting-area penalty scoring, captured while it's easy instead of reconstructed later.

Or off a stopwatch

Not every finish boat works off the ship's clock. Plenty start a stopwatch on the gun and write down how long each boat took — so set the race to elapsed times and the column takes durations exactly as they're written. Handicap correction and the protest time limit come out the same either way; the app does the arithmetic you'd otherwise be doing on the back of the sheet.

Import the whole sheet

When finishes are captured in a spreadsheet on the water, import the race in one go — sail numbers, finish or elapsed times, result codes, row order as crossing order — with a preview of exactly what will land before anything is replaced.

Optional feature — switched on per workspace under Workspace settings.

Straight off the committee boat

If your race committee runs Vakaros RaceSense, the day's racing comes back as one workbook and goes in as one upload. Every sheet is matched to its race and marked new, unchanged, or differing — so a whole day lands in a click, races you already entered confirm themselves, and a correction you made by hand is never quietly overwritten. Boats over the line keep their OCS, which the finish list on its own would have lost. Each boat comes in on the elapsed time the tracker actually measured, and if the timestamp beside it disagrees the import says so by name rather than taking it on trust. The rest of the tracker's story comes along too: distance sailed, average and max speed, and each boat's distance to the line at the gun can publish as sortable columns on the per-race results — your call, off by default.

Available on request — get in touch and we'll set it up.

Fast hands welcome

Every page-level action has a keyboard shortcut and ? opens the reference, so a practised scorer runs a race day without touching the mouse.


Scoring correctness

RRS Appendix A, faithfully.

Scoring software earns trust through correctness. Low Point scoring, discards, tie-breaking, and the odd corners of Appendix A are the engine's job — and every edit recomputes everything, instantly.

Low Point, recomputed instantly

Series score to RRS Appendix A Low Point, and every edit — a late protest decision, a corrected finish time, a reinstated boat — recomputes standings, discards, ties, and progressive handicaps the moment it lands. There is no recalculate button because there is nothing stale to recalculate.

Discards as the SIs state them

Write the discard schedule the way the sailing instructions do — with five races sailed, exclude one; with nine, exclude two — and the standings apply it automatically as the series grows. Rules that look wrong are flagged but never forbidden: sometimes the unusual profile is exactly what the SI says.

Discards as a proportion

Long-series SIs often say it differently — one discard for every three races sailed. State it as exactly that, and the card reads back where the allowance steps up, which is the check you actually make against the sailing instruction.

Optional feature — switched on per workspace under Workspace settings.

Penalties sized to the turnout

Clubs with variable attendance score DNF and OCS on the boats that came to the start, not the season's whole entry — RRS A5.3, one checkbox, including the variant that scores DNC that way too.

When one race counts differently

The trophy race that counts double, the centrepiece that can never be discarded, the practice race that drops out first — set weighting and discard behaviour per race, and the standings carry the marks and a legend so nobody has to ask why R4 says ×2.

Optional feature — switched on per workspace under Workspace settings.


Rating and handicap systems

The systems clubs actually race under.

Scratch, IRC, ECHO, Portsmouth Yardstick, RYA NHC — with ratings pulled from the published lists instead of typed from them, and progressive handicaps you can verify with a calculator.

Scratch, for one-designs

First across the line wins. Position-based scoring for one-design fleets and anyone racing on equal terms — clean race tables with no corrected-time noise.

IRC, from the worldwide list

Pull TCCs straight from the IRC rating list — matched by sail number, spinnaker or non-spinnaker per fleet, dual certificates handled — always as a previewed set of current → new changes you approve boat by boat, never a blind overwrite.

ECHO, from Irish Sailing

The Irish progressive handicap comes from its authority: pull each boat's ECHO straight from the national Irish Sailing list, previewed the same way. Portsmouth Yardstick numbers come per class from the bundled RYA list, with guide-only numbers flagged.

Progressive handicaps, shown working

NHC and ECHO adjust every boat's rating after every race — and Sail Scoring shows the work. Published pages always carry each boat's next rating, and one checkbox reveals the full calculation columns, so a rating officer can verify every adjustment line by line.

Carried forward, season to season

When a new series starts, carry every boat's handicap forward from the last one — end-of-series values for progressive systems, current ratings for static ones — with a full preview, and a proper answer to the mid-series certificate change: keep already-scored races on the old rating, or re-score everything to correct a mistake.

Your club's own handicap, by its own name

Plenty of club racing is scored on numbers the club sets itself and holds for the series. Score a fleet on a fixed handicap, call it what your club calls it — Howth's is HPH — and that word heads the rating column everywhere, including the published page. Set the numbers from the end of last season's progressive series in one step, and if the committee re-rates a boat mid-league, the races already sailed keep the rating they were sailed under.

ORC, curves and all

Import whole ORC certificates straight from the ORC database and score them any way the certificate allows — the all-purpose single number, time-on-distance over the recorded course, or full performance-curve scoring over a constructed course, with the implied wind, scoring wind, and every allowance published so competitors can check the result from their own certificate. No other club scoring tool does performance curves.

Available on request — get in touch and we'll set it up.

Where the handicap came from

An ORC certificate is a matrix — an allowance in seconds per mile at every wind speed and every angle to the wind — and every way of scoring it is a weighted mix of those cells. A published performance-curve race folds the mix away beside the course: the certificate's own table, laid out exactly as it is printed, with the share of the rating in each cell instead of the allowance. A competitor holding their certificate can see that half their windward/leeward rating was beat VMG and half run VMG, or which corner of the matrix Sunday's course actually drew on. No other scoring tool publishes it, because no other scoring tool scores on curves at all.

Available on request — get in touch and we'll set it up.

Courses from the card, not the calculator

Build an ORC constructed course the way the race committee describes it: the club's charted marks come straight from its course card, the line and the laid windward mark go in as coordinates or as a bearing and distance off the line, and a course is a number on the card. Or, when the committee boat hands over legs and no positions — so far, on this bearing, twelve times over — paste that table in and it is a course in its own right, saved once and picked by every start that sails it. A race start picks the course and its legs fill in at the day's wind; every dialog draws the course as you type, so a dropped digit shows before it scores, and the published page carries the drawing. The drawing is on your own water, not a grid: each club's marks come with a chart of the harbour taken from OpenStreetMap and OpenSeaMap, and the course is laid over it wherever it is shown — with the chart inside the published page, so a competitor's phone loads the results and has the picture already. Put the measured wind speed on each leg too and the race can be scored at the wind that actually blew, rather than at one worked back out of the finish times.

Available on request — get in touch and we'll set it up.

NHC and VPRS too

The RYA National Handicap for Cruisers runs on the standard parameters with per-fleet overrides for tuning experiments, and VPRS scoring pulls TCCs from the club's published list — both there when your racing needs them.

Optional feature — switched on per workspace under Workspace settings.


Reading and checking

Trust the table — and be able to prove it.

Standings a sailor can read at the noticeboard, and a record behind them that stands up to a protest committee.

Standings a sailor can read

Total and nett, struck-through discards, podium badges on the series and on every race, and distinct styling for coded, penalised, and redress scores — the answer to who's winning and why, at a glance. Sort by any column — even a single race's scores — and every boat keeps its series rank.

See exactly what goes public

Preview renders the precise published page inside the app before anything goes out — and downloads it as self-contained HTML or a print-tuned PDF for the noticeboard.

Strike a race for one fleet

The heat only one boat sailed, the race abandoned for a single class — strike it from that fleet's scoring straight from the standings column header, while it still counts for everyone else. The menu names the underlying race, so you always know what you're striking.

Every change, on the record

The app saves point-in-time versions as you work — who changed what, and when. Roll back a mistake with one click, pin a named checkpoint before a protest hearing, and know that publishing pins the exact state that went public. It's the audit trail a scoring inquiry actually needs.


Publishing

Results your club can link to forever.

Publishing is one click, and what it produces is not a file to email around — it's a stable public page under your club's own index, kept organised season after season.

One click from standings to public

Publish renders the current standings to a public URL that never changes — re-publishing updates the page in place, and the dialog tells you how many edits have landed since results last went out. Choose which fleets go live, and set each page's URL before it's first published.

Or straight onto the club's own website

Already have a results page on your club's site? Publish to it instead. The same dialog uploads over FTP or FTPS, with a remote path per page — each class, each extra page, the entry list — so results land exactly where your members already look for them, under your own domain, in the file names your site already uses. Tick the pages you want to send; the rest stay as they are.

Available on request — get in touch and we'll set it up.

The page your sailors see

Clean, readable results pages that need no sign-in and load anywhere — the standings up top, every race's full table below, branded with your club and event. Visitors can sort any table by any column — nationality, sail number, a single race — while print and PDF keep the official rank order.

A results site that organises itself

Every published page slots into your club's public index — events grouped by season, each with its results tables linked right on its row, with navigation on every page to move between classes, events, and seasons. It updates itself every time you publish. No webmaster required.

One page for the whole event

Publish several fleets as sections of a single page — an all-fleets Overall page so a multi-class event has one link to hand out, or one class page covering every method it's scored under, optionally replacing the per-fleet pages entirely.

Optional feature — switched on per workspace under Workspace settings.

A league's worth of races, one click away

By the end of a league, a page carrying several fleets in full is a long scroll: every fleet's standings, then every fleet's race tables. Turn on the race grid and the page opens on the standings with a grid above them — a row per fleet, a cell per race. Click a cell for that fleet's result on that day. Nothing is left out: the whole series still prints, and a cell's link can be sent to a class captain and lands on the race.

Optional feature — switched on per workspace under Workspace settings.

Gold, Silver and Bronze, side by side

A class that races as one fleet but awards prizes by division can publish both: the overall standings, and a table per division with each ranked among its own boats. Same racing, same scores — the second page is how the prize-giving reads, and it's the page a class will ask you for.

Optional feature — switched on per workspace under Workspace settings.

The entry list, before race one — and on the committee boat

Publish the entry list as soon as it settles, weeks before there is a result to read. Where a class races under IRC and a club handicap at once, the page tables itself by class and gives each table a rating column per fleet — every boat on one row, its ratings saying which fleets it is in, and a blank where a certificate is still to come. The same page prints as a starters checklist for the race team: one table per start, sail numbers set large enough to read on a moving boat, and a box beside each to tick as it arrives in the starting area. Anyone with the link can print it — no account needed.

Optional feature — switched on per workspace under Workspace settings.

Say the thing the figures can't

Sometimes a results page needs a sentence. The race was abandoned and resailed. The finish order was corrected at 16:40. Tuesday's fleet split was worked out before a retirement was applied, so it doesn't reconcile with today's standings — and that's correct, because the sailors raced to the posted assignment. Write a note on any page, or one that goes on every page of the event, and it prints above the results where a reader will actually see it, links and all.

Optional feature — switched on per workspace under Workspace settings.

Events of every shape

Several series can publish into one event folder — the cruisers and the one-designs of the same regatta, each publishing independently. And a one-race trophy publishes as just the race table, not a one-column standings page pretending to be a series.

Provisional until it's final

Results stay provisional while a protest could still move them. When the event is settled, mark the series final through a checklist built on the protest time limit — computed live from each race's last finisher — and the published pages carry a Final stamp in place of the provisional line.

Optional feature — switched on per workspace under Workspace settings.

Every live page, accounted for

The Published tab lists everything your workspace has made public — each page's URL, when it last went out, and how many edits have landed since. Unpublish takes a page down cleanly, and even a deleted series' orphaned pages stay listed until you decide.

Branding without the file hunt

A shared workspace library of venue, club, class, and sponsor logos — plus a built-in set of official marks — with workspace defaults, so published pages come out branded without anyone hunting for image files. Update a logo once and every page using it follows.


Data in and out

No lock-in, in either direction.

Entry lists arrive as spreadsheets; results should leave as anything you need. Your data is importable, exportable, and never held hostage.

Entry lists straight from the spreadsheet

Import competitors from CSV or Excel with per-column mapping and live samples of what each column holds. Multi-fleet boats are declared in one cell, and a boat that changed sail number between imports is caught instead of duplicated.

Fleets you can change your mind about

The import settles fleets first, before the columns: choose what splits the boats, see the fleets your rating columns imply, then rename them, decide who is in each, or add one the spreadsheet never mentioned — an IRC fleet whose certificates haven't arrived yet. An entry list can't say who holds a certificate, so the import ends where that becomes knowable: it tells you how many boats in that fleet still have no rating, and offers to fetch the rating list on the spot — filling in the ratings it holds, and offering the boats it doesn't rate for removal from the fleet. Take the offer and nothing is left flagged; skip it and the same list is there whenever the certificates are.

Coming from Sailwave? Bring everything

Import a Sailwave .blw file whole — fleets, competitors, ratings, results, prize divisions — previewed before anything is created. Or keep scoring in Sailwave and use Sail Scoring as the publishing front end, refreshing from a new export whenever you like.

Optional feature — switched on per workspace under Workspace settings.

Sailwave stays your safety net

Worried about depending on an app on the day it matters? Export any series to a Sailwave .blw at any moment — fleets and ratings, entries, starts, finishes and codes, the discard profile — open it in Sailwave and score on. Sailwave re-scores from the inputs, and anything it cannot carry is listed before you download.

Optional feature — switched on per workspace under Workspace settings.

A series is a file, when you need one

Save any series as a single .sailscoring file — competitors, races, results, and its full version history — to back it up, email it, or move it between workspaces. Re-importing recognises the series and updates it, warning if the two copies have diverged.

Anyone can open your results and see how they were scored

Every published page carries a link that opens the whole event in Sail Scoring — no account, nothing to install. Readers get the entry list, the racing down to each race's finish times, the standings, and the scoring setup behind them, read-only. A competitor who wants to try a different rating or a what-if finish time saves a copy to their own workspace and plays there, without touching yours. No other scoring package will show you this much.

The data behind every page, as a file

Publishing puts the results data itself beside the pages as a documented .sailscoring.json file — every boat, race, finish and rating that produced the standings, linked from every footer and free for anyone to fetch. Club sites, class statisticians, and anyone with an idea can build on it, and it carries only what you published.

One entry list, shared with the jury

Push the competitor list to a racingrulesofsailing.org event for protests and hearing schedules — with contact details relayed from your spreadsheet and never stored.

Optional feature — switched on per workspace under Workspace settings.


Across series and seasons

Beyond the single series.

For classes and clubs with history: the layer that connects seasons of results into careers, ladders, and archives. These run on infrastructure we enable per workspace — ask us.

Every sailor's career, connected

Entries across seasons resolve into recurring competitors, each with a public timeline of every series sailed — third of 48 at the Nationals, year by year — and a searchable index of everyone who has raced, so "who sailed 1605?" has an answer.

Available on request — get in touch and we'll set it up.

Season ladders across events

Best-N rankings computed over the series you choose — a championship plus the best two regionals, participation floors, nationality and fleet filters, committee adjustments with footnotes — published as a public ladder that updates as results land.

Available on request — get in touch and we'll set it up.

Decades of results, preserved

A club's historical results can be brought in exactly as they were originally published — display-only, never re-scored — so the archive lives alongside the current season under the same index, and a sailor's timeline reaches back through it.

Available on request — get in touch and we'll set it up.


Collaboration and accounts

A scoring panel working as one.

Sign in from any browser, share a workspace with the panel, and keep the interface exactly as small as your club's racing.

No password to lose

Sign in with an emailed link — nothing to remember, nothing to reset in the club office at five to race time. Your series follow your account to any device.

A workspace for the panel

Request a shared club workspace from your account page and it arrives with you as owner, ready to invite the rest of the panel by email — with owner, admin, and view-only roles so a class captain can watch without the risk of a stray edit.

Several scorers, one series

The whole panel sees edits in close to real time, typically split by fleet. Nothing locks; instead every change is attributed, and if two scorers touch the same finish at the same moment, the second sees a conflict prompt naming the first — never a silent overwrite.

Who did what, across the workspace

One Activity tab shows the whole workspace's log, newest first — every series' changes, and the things that happen to the workspace itself — each attributed to a scorer and linked to its series. It is the record a panel keeps each other honest with, and the one to point at if a result is ever questioned.

Only the features you use

Optional features switch on and off per workspace, so a dinghy club never sees IRC machinery and a keelboat panel never sees youth-regatta tooling. Several arrive with a worked example seeded into your series list, ready to explore and delete.

Help without losing your place

Look something up and the guidance opens in a panel beside the screen you're on — already showing the section that covers it — so the advice and the thing it describes are in front of you together. Slide it out of the way and back, and it returns to the same paragraph.

A direct line to the builder

Send a bug report or a suggestion from inside the app, with the page and browser context attached automatically — and shown to you before it goes.


For the technical

Open, underneath.

For clubs with a developer on the committee — and for anyone who wants to know their results outlive any one tool.

A real API

A keyed public REST API covers series, competitors, races, results, and publishing — the same surface the app itself uses, so anything the app can do, a script can do.

Scriptable from the terminal

The sailscoring command-line tool drives the API for bulk import, publishing, and reads — season automation without anyone touching a database.

MIT-licensed, developed in the open

The application is open source under the MIT licence. No vendor to disappear, no ransom for your own scoring system — if it matters to your club, you can read exactly how every score is computed.

Your data, always yours

Export any series as a documented file at any time, and every published page embeds its results as data. Leaving is a download, not a negotiation — which is precisely why you won't need to.


Screenshots from the real app, sample data shown. Click any screenshot to enlarge.

See it with your own series.

Open the app →