Everything you need to know to set up and run a regatta on RaceCommittee.app. Skim the table of contents, jump to what you need, or read top-to-bottom for the full picture.
RaceCommittee.app is a web app. There’s nothing to install — open it in any modern browser on a phone, tablet, or laptop. Recording from the committee boat works best on a phone because that’s where the camera lives.
Tap Sign in in the top nav, enter your email, and click the magic-link button. You’ll get an email titled “Your Race Committee App Sign-in Link” — tap the link, and you’re in. No password to remember. The link expires after about an hour; if it does, just request a new one.
From the top nav, tap the red Create new regatta button. You’ll walk through a short wizard that asks for the essentials — scoring style, classes, dates, recording method. The whole thing takes 2–3 minutes. Each regatta gets its own short URL (/e/<code>) that you can share with sailors, scorers, and shore.
From the event page, tap the Share icon (top right) to copy a link. Anyone with the link can view live standings; only the owner and invited scorers can edit. See Permissions.
The /new wizard captures every setting up front so the on-water flow has nothing to ask about later. Each card is one question. You can change everything later from Settings (the gear icon on the event page).
Pick from the preset library (popular one-design classes + PHRF / ORC / IRC fleets) or define a custom class. You can run multiple classes in one regatta — each scores independently. Classes lock after the first race is recorded, because changing them mid-regatta would corrupt scoring.
Drops kick in once a minimum number of races has been sailed. Two editable tiers, e.g.: drop 1 race if 5+ raced, drop 2 if 10+. Leave both blank for no drops. The engine picks the highest tier whose threshold is met.
Pick what the RC will actually use on the boat:
You’re not locked in — any of the methods work at any time; this just sets which one is the “primary” button in the UI.
The wizard’s special-rules card is opt-in. Defaults are sensible. Override when needed:
The fastest path. After each race, photograph the paper finish card. The app uses two parallel AI passes to read sail numbers and positions; agreement is high-confidence, disagreement gets flagged amber for you to confirm. Photos run through Anthropic’s Claude vision API and need an internet connection. About 80–90% accuracy on clean handwritten sails; flagged rows tell you which to double-check.
Open On Water, see your roster as tappable chips, tap each boat in finish order. Works offline (drafts live on the device and sync when canonical results are ready). Best when conditions on the boat make photographing impractical.
Use a paper scratch sheet for the whole day. At the end, photograph the sheet. The scratch-sheet OCR endpoint reads check-in + every race’s finishers in one pass. Available for one-design fleets only — for PHRF events with multiple races, photograph one finish card per race instead (corrected-time math across a grid is too lossy to recover from).
Download an Excel template from Templates, fill it in on a laptop after racing, upload from the Roster tab’s Upload filled-in file button. The hidden schema cell tells the importer which template type it is (registration, check-in, finish card, scratch sheet) and where the rows should land. Deterministic — no AI involved.
The roster identifies the boats / skippers eligible to be matched against finish-card data. The model differs between sail mode (one-off regattas) and series mode (weekly racing).
The roster is keyed by sail number. Each entry has a sail #, fleet, and (for handicap classes) a PHRF rating. Add boats manually on the Roster tab or upload a filled-in check-in sheet (PDF, photo, or Excel template). The roster is global across the whole regatta — you build it once at the start.
The roster is keyed by skipper name (a person, not a boat) because the same sailor might race a different boat each week. Each race night has its own per-night check-in: { skipper, fleet, boatNum, rating? }. Sail-number-to-skipper resolution happens at review time and scopes to the active race night’s lineup.
Tap the Scratch button on a skipper row to mark them as withdrawn for the day. Scratched boats are excluded from scoring + the tap-to-finish list and don’t take a DNF for races they didn’t sail. Tap Restore to bring them back. Different from Remove (the X icon), which deletes the entry from this day’s check-in entirely.
In Settings → Merge skippers, pick two names and re-key all check-ins + race finishers under one. Recovers from typos like C.Cubba / C.Cuba that the app didn’t auto-collapse.
On the On Water tab, tap fleet chips at the top to select which classes this finish card covers. Most events are one class per card, but the app supports multi-class cards too.
Either:
The review screen shows each row with the read sail + matched roster boat (or unknown if no match). You can edit any field. Add DNF / DNS / OCS / DSQ rows for non-finishers. Set course distance (PHRF Time-on-Distance only). Once everything resolves, hit Submit race results.
Turn on Multi-recorder mode in Settings when you want two or three independent recorders capturing the same race for accuracy. Each recorder takes their own card photo (or types their own entries). The app diffs the submissions row-by-row:
Only canonical (agreed-on or resolved) results sync to shore. The full audit trail of every recorder’s reading stays attached to the race row, so disputes after the fact can be reviewed.
Defer for video — if you can’t resolve a disagreement on the boat (close finish, want to check video), tap the defer button to transmit the agreed-on positions and leave the unresolved ones as pending-review for shore to handle later.
1st = 1 point, 2nd = 2, etc. Standard Appendix A. Lower total wins.
Two formulas, picked per class:
Boats start at staggered times based on their rating; finish order = final order. No corrected-time math, but boats still need ratings (to compute their start time).
Configured as tiers in Settings. The engine looks at the total race count and applies the highest tier whose threshold is met. Sub-series can have their own drop config; season-overall has another.
Default: DNF = entries + 1, TLE = finishers + 2. Override in Settings if your sailing instructions specify different.
Series mode. Set a threshold (e.g. 50%); skippers with fewer races than that fraction of the season’s total appear in a separate Provisional table rather than the main standings.
Series mode is for long-running weekly racing (Wednesday-night summer series, frostbite, etc.). It changes:
A series can be split into stages: Spring, Summer, Fall. Each sub-series has start/end dates and its own drop config. Races auto-assign to a sub-series based on race date, but the Scoring tab’s per-race override lets you reassign (or mark a race as standalone, excluded from both sub-series and season totals — useful for makeup or non-points races).
With sub-series defined, the Scoring tab gets a scope picker: Season (all races, season-overall standings) or each individual sub-series. The drops config applies separately to each scope.
Permissions are per-user, per-regatta. Three roles:
| Role | How they get access | What they can do |
|---|---|---|
| Owner | Created the regatta. Listed in events.created_by. | Full read/write/delete. Includes Settings + scorer invites. |
| Scorer | Invited by the owner via Settings → Scorers. Recipient claims at /scorer-invite/<token>. | Can record races, manage roster + check-ins. Cannot touch event settings or delete. |
| Viewer | Anyone with the URL when visibility is public or unlisted. | Read-only. Sees Scoring tab; editing tabs are hidden. |
Four templates cover every job. Each is available as a printable HTML page and as a downloadable .xlsx file. See Templates library.
Multi-race PHRF scratch sheets aren’t supported — recording corrected times across a grid of races is too error-prone. PHRF series should upload one finish card per race instead.
| Tier | Regatta limit | Features | Price |
|---|---|---|---|
| Free | 2 regattas per calendar year | Everything — AI OCR, series, multi-recorder, custom PHRF | $0 |
| Pro | Unlimited | Same as Free | $9.99 / month |
The free-tier cap is keyed on the regatta’s race date (not creation date), so a 2027 series created in December 2026 counts toward 2027. Invited scorers are always free for the invitee — only the owner pays.
You’ve hit the cap. Either pick a date in a different calendar year (the year is taken from the regatta’s race date, not creation date), upgrade to Pro, or wait. During beta, contact us if you hit this unexpectedly — the cap shouldn’t be enforced yet.
You’re viewing as a non-owner / non-scorer. Editing tabs are hidden in view-only mode. Ask the regatta owner to invite you as a scorer (Settings → Scorers → invite by email).
The sail number isn’t on the active roster for this fleet. In sail mode, add it on the Roster tab. In series mode, the boat # might be assigned to a different skipper tonight than the one rolled forward from a previous night — check the current night’s check-in lineup.
| Term | Meaning |
|---|---|
| PHRF | Performance Handicap Racing Fleet — the most common North American handicap rating system. Each boat gets a numeric rating; corrected times use it. |
| ToT | Time-on-Time. Corrected time = elapsed × coefficient. Doesn’t need a course distance. |
| ToD | Time-on-Distance. Corrected time = elapsed − rating × distance. Needs a course distance per race. |
| DNF | Did Not Finish. Standard scoring: position = entries + 1. |
| DNS | Did Not Start. Same scoring as DNF in most SIs. |
| DNC | Did Not Come to the starting area. Series-mode concept. |
| OCS | On Course Side — recalled at the start. |
| DSQ | Disqualified. |
| TLE | Time Limit Expired — boats that didn’t finish within the time limit. |
| Sub-series | A stage within a series — Spring / Summer / Fall splits, each with its own drop config and standings. |
| Throwout (drop) | Worst race(s) excluded from a skipper’s total. Tier-based: e.g. drop 1 if 5+ races sailed, drop 2 if 10+. |
| Scratch | Mark a boat as withdrawn for the day — excluded from scoring + the tap-to-finish grid, no DNF for unsailed races. |
| Series mode | App mode for weekly racing. Skipper-name-keyed identity, per-night check-ins, retroactive entry by race date. |
| Multi-recorder | Two or three independent recorders capturing the same race. App diffs their cards and reconciles disagreements. |
| A8 / Appendix A | The Racing Rules of Sailing appendix that defines low-point scoring + tie-breakers. |