| Rank | No. | Name | Div. | Swims 50m | Swims 30m | Pts 50m | Pts 30m | Total Pts | Meets | Trend | HC Status |
|---|
| No. | Name | Div. | 50m Swims | Avg Actual 50m | Next HC 50m | PB 50m | 30m Swims | Next HC 30m | PB 30m |
|---|
| Date | Dist | Race | Lane | No. | Name | Clock | Place | Pts | Actual | HC |
|---|
| No. | Name | Status | Contact | Actions |
|---|
- Click any day to schedule a meet or view results
- Blue dots indicate a past meet with results
- Click a result day to view the full Meet Report
Each week, up to 12 races are run. Every race is contested over both distances at the same time — the 50-metre pool and the 30-metre pool run in parallel. Swimmers in the same race number (e.g. Race 3) all start together, regardless of which distance they are swimming.
Each race has up to 7 lanes. A swimmer occupies one lane. Lanes are assigned before the meet and entered into the Entry Form by the clerk.
Faster swimmers start later than slower ones. The time difference between when the slowest swimmer dives and when you dive is your Handicap. This levels the field so that every swimmer in the race has a genuine chance of winning on clock time.
The Clock Time is the raw elapsed time from the race start signal to when you touch the wall. Because handicaps were already applied at the start, the swimmer who finishes first on the clock wins — no post-race adjustment is needed.
The clerk records each swimmer's Clock Time on the Entry Form. The app instantly calculates Placing, Points and Actual Swim Time for every lane.
The handicap system is the heart of Mudcrabs racing. Its goal is simple: give every swimmer — fast or slow, new or experienced — a fair chance of winning.
What is a Swim Estimate?
Your Swim Estimate (also called Swim Est.) is the system's best prediction of how long you will take to complete the distance. It is calculated as the average of all your past Actual Swim Times for that distance, rounded to the nearest whole second.
New members have no history, so they receive a Swim Estimate of null on their first swim. The system uses their first result to set their initial estimate for the following week.
How is the Race Handicap calculated?
Before the race, the app looks at the Swim Estimates of everyone entered in that race and finds the highest (slowest) estimate. That swimmer gets a Handicap of 0 seconds — they dive in immediately at the start signal. Every other swimmer's handicap is:
| Swimmer | Swim Est. | Handicap | Start delay |
|---|---|---|---|
| Alice (slowest) | 52s | 0s | Dives immediately 💥 |
| Bob | 46s | 6s | Waits 6 seconds |
| Carol | 40s | 12s | Waits 12 seconds |
| Dan (fastest) | 35s | 17s | Waits 17 seconds |
If Dan swims his exact estimate (35s) he touches at 17 + 35 = 52s on the clock — the same time as Alice if she also swims her estimate. In a perfect world, they'd tie. In practice, whoever swims better than their estimate on the day wins!
What is the Actual Swim Time?
The Actual Swim Time is your true, unassisted swimming speed — the time you would have recorded if everyone had dived at the same moment. It is always:
This number is what the system uses to update your Swim Estimate for next week. The lower it is, the faster you actually swam.
How does the handicap update after each meet?
After every race you complete, your Actual Swim Time is added to your history. Your Next HC (Next Handicap) is re-calculated automatically:
Because the average uses all your swims — not just recent ones — a single great swim or bad swim is gradually smoothed out over time. This makes the handicap stable and fair.
How are places assigned?
Within each race, swimmers are ranked by Clock Time — lowest (fastest) to highest (slowest). The swimmer with the lowest clock time finishes 1st, the next lowest is 2nd, and so on. Because handicaps were already applied at the start, no adjustment is needed: clock time is the fair result.
How are points awarded?
Points are awarded per race finish position. The default scheme is:
The points scheme can be customised in Settings → Points System. Points from all 50m and 30m races across all meets accumulate into the Season Scoreboard.
What are DNF, DQ and DNS?
Set the meet date, choose the number of races, then type each swimmer's name into the appropriate lane. The app auto-fills their Swim Estimate and calculates Handicaps for the whole race as soon as names are entered. Type clock times as each race finishes — Places and Points appear instantly. Hit Save Meet Results when done.
Tip: if you mistype a name, a fuzzy-match suggestion dropdown appears. You can also quick-add a brand-new member without leaving the form.
Shows the season standings, filterable by year and division. Click any column header to sort. The HC Calculator tab shows each member's current Next HC and Personal Best for both distances. Click 📈 Profile on any row for that swimmer's full history and charts.
The complete record of every individual lane result. Filter by date, distance or status. Click Edit to correct a clock time, placing, points or status after submission. Click a date button at the top for a printable Meet Report for that day.
Add, edit or delete members. Each member has a Division (Senior/Junior), optional email and phone, and an Active/Inactive flag. Bulk-import members from a CSV file using Bulk Import. Inactive members are hidden from the Entry Form autocomplete.
Pick any two members to see a full Head-to-Head breakdown — overall race win count, season stats side-by-side, and a race-by-race log of every meet where both competed.
Navigate by month. Days with recorded results show a blue dot — click them to open the Meet Report. Click any future day (or the + Schedule Meet button) to add an upcoming event. Upcoming meets are listed in the sidebar.
Toggle Dark Mode, customise the Points System (with quick presets), export/import the full database as JSON, or export results and scoreboard as CSV for use in spreadsheets.
All data is stored in the cloud database and shared across all devices. Use Export Backup (JSON) in Settings to download a local copy to disk. The app works offline once loaded (PWA) using cached data. Admin users can import a JSON backup to restore data. Only the admin can add, edit or delete records.