MUDCRABS Swimming Club

🏍 Weekly Meet Entry Form
Members
0
50m Swims
0
30m Swims
0
Leader
Most Improved
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
Quick: view meet report →
Date Dist Race Lane No. Name Clock Place Pts Actual HC
No. Name Status Contact Actions
🥊 Head-to-Head Comparison
vs
● Blue = Results recorded 🕑 Orange = Scheduled meet ▮ Blue border = Today
📅 Upcoming Meets
💡 Tips
  • 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
🏍 How Weekly Meets Work
1
Races are held simultaneously
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.
2
Up to 7 lanes per race per distance
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.
3
Handicaps are applied at the start
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.
4
Placing is by Clock Time (lowest wins)
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.
5
Results are entered after racing
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 — Step by Step

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.

Swim Estimate = average of all previous Actual Swim Times (rounded to nearest 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:

Your Handicap = Slowest Swim Estimate in the race − Your Swim Estimate
Example — Race 4, 50m
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:

Actual Swim Time = Clock Time − Handicap

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:

Next HC = round( sum of all Actual Swim Times ÷ number of swims )

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.

💡 Tip: Open any swimmer's Profile (click the 📈 button next to their name on the Scoreboard or Members page) to see the full step-by-step HC calculation, including how their handicap has changed after every single swim.
🏆 Points & Placing

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:

🥇 1st place = 4 points
🥈 2nd place = 3 points
🥉 3rd place = 2 points
4th and beyond = 1 point

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?

DNF
Did Not Finish
The swimmer started but did not complete the race (e.g. stopped mid-pool). They receive no placing, no points, and the swim is excluded from their HC calculation.
DQ
Disqualified
The swimmer completed the race but was disqualified for a rules infringement (e.g. false start, illegal stroke). No placing, no points, excluded from HC.
DNS
Did Not Start
The swimmer was entered but did not start the race (e.g. withdrew due to illness). No clock time is recorded. No placing, no points, excluded from HC.
📚 Glossary — Terms A to Z
Actual Swim Time
Your true swimming speed for the race, stripped of any handicap advantage. = Clock Time − Handicap This is the number the system uses to update your Swim Estimate for the following week. A lower Actual Swim Time means you swam faster.
Attendance / Meets
The number of distinct meet dates on which a member has at least one recorded result. Displayed on the Scoreboard and in each member's Profile.
Clock Time
The raw elapsed time recorded by the official timekeeper from the race start signal to the moment you touch the wall. This is the number entered into the Entry Form. Placings are determined purely by Clock Time — lowest wins.
Division
Members are classified as either Senior or Junior. The Scoreboard can be filtered by division. Members whose names end in (J) in the original spreadsheet were automatically seeded as Juniors.
DNF — Did Not Finish
Swimmer started but did not complete the race. No points or placing awarded; the result is excluded from HC calculation.
DNS — Did Not Start
Swimmer was entered but withdrew before the race began. No clock time, placing, points or HC update recorded.
DQ — Disqualified
Swimmer finished but was penalised for a rules breach. No placing or points awarded; excluded from HC calculation.
Handicap (HC)
The number of seconds by which a swimmer's start is delayed relative to the slowest swimmer in the race. A higher handicap means you are expected to be faster. = Slowest Swim Estimate in the race − Your Swim Estimate The slowest swimmer always has HC = 0 (they dive first).
HC Fairness Indicator
A traffic-light label on the Scoreboard showing whether a swimmer appears to be winning significantly more or less often than the statistically expected rate (~1-in-7, given 7 lanes). Over-HC means the swimmer is winning frequently — their handicap may need increasing. Under-HC means they rarely win — they may be improving faster than their average captures. Fair is the target zone. Members with fewer than 5 swims show New.
Lane
The numbered lane (1–7) in the pool assigned to a swimmer for a particular race. Lane assignment does not affect timing or handicaps.
Meet
A single weekly competition event. Each meet consists of multiple races (typically 12) contested at both 50m and 30m simultaneously. All results for a meet share the same date.
Member Number (No.)
A unique numeric ID assigned to each club member. Used to link results to members even if their name is spelled inconsistently. The original 102 members are seeded from the club spreadsheet.
Next HC
The Handicap that will be applied to this swimmer at their next race for a given distance. It is the rounded average of all their Actual Swim Times for that distance. = round( sum of all Actual Swim Times ÷ number of swims ) It updates automatically after every meet is saved.
Personal Best (PB)
The lowest (fastest) Actual Swim Time ever recorded by a member for a given distance across all meets and all seasons. PBs are displayed in the HC table and the swimmer's Profile, with the date they were set. A ⭐ PB badge appears next to any result where a new personal best was recorded at the time of entry.
Placing
The finishing position within a single race, determined by Clock Time (lowest = 1st). Placing determines Points. Placings are per-race — a swimmer can finish 1st in Race 3 and 4th in Race 7 on the same night.
Points
Points awarded for a race placing. Default: 1st = 4 pts, 2nd = 3 pts, 3rd = 2 pts, 4th+ = 1 pt. Points from every race across the entire season accumulate to form the Season Scoreboard ranking. The points scheme is configurable in Settings.
Race
A numbered heat within a meet (Race 1 through Race 12). Each race number runs simultaneously at 50m and 30m. A swimmer competes in a specific race and distance in a specific lane.
Season / Year
Results are grouped by calendar year (the year portion of the meet date). The Scoreboard can be filtered to show only a specific season's points and swims, or "All seasons" combined. HC calculations always use the full all-time history regardless of season filter.
Swim Estimate
The system's prediction of how long you will take to swim the distance in your next race. It equals your Next HC value. Displayed in the Entry Form as each name is typed, and used to calculate Handicaps for the race.
Trend / Improvement
A metric shown on the Scoreboard indicating whether a swimmer is getting faster or slower over time. Calculated by comparing the average Actual Swim Time of the swimmer's first 3 results (50m) against their most recent 3 results. A negative (green ↘) value means recent swims are faster — the swimmer is improving.
💻 Using This App
🏍
Entry Form
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.
🏆
Scoreboard
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.
📊
Results DB
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.
👥
Members
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.
🥊
Compare
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.
📅
Calendar
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.
Settings
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.
💾
Data & Backup
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.