Everything a committee does, mapped to what actually happens across a year
Seven phases, from the date being sanctioned to the return that closes the year out. Each one below is a real, working part of the platform — not a roadmap item.
The months before a syllabus can exist: the date confirmed with the governing body, and the panel that will judge it.
Sanction status tracked with the governing body, with correspondence kept
Adjudicator and musician invitations, acceptances and the chase list
Availability by session, registration currency, travel and expense claims
Rotation register, so the same three names are not booked every single year
A catalogue generated from a discipline’s own axes, not typed out competition by competition.
The full competition cross-product generated from a discipline pack
Entry fees, waitlists, family caps and early/late pricing
Bulk entry for a teacher entering thirty dancers as one order
Duplicate detection before a record is created, not after it is billed
Every dancer gets one number, stable under late entries, with the paperwork it drives.
One competitor number per dancer, never per entry
School-adjacency avoided in the running order where it can be
No existing number moves when a late entry arrives
Number cards, adjudicator sheets, running orders and line-up sheets, printed as one job
A dancer in two places at once is named on both sides, before it becomes a Saturday problem.
A schedule generated across stages and sessions
Clash detection: dancers, adjudicators, musicians, and panel size
Automatic repair that moves as little as possible, and says what moved and why
A published version stays exactly as printed; a repair is always a new draft
Judging, tabulation, the backstage procedure, and the end of it — all running the same production logic on paper or a tablet.
Offline judging: a local op log, idempotent sync, nothing lost if the app is killed
Championship tabulation with tie-break chains, recalls and audited overrides
Marshal, green room, stage desk and hall board, with a running-late estimate
MC script cards, an announcement queue, prizegiving order and certificates
The committee’s other job: the budget, the volunteers, and the obligations that let the day happen at all.
A budget that derives the entry fee, with the working shown, not just the number
Cash reconciliation by denomination, and a P&L that ties back to Stripe
Volunteer rosters with gap detection, and safeguarding clearances tracked by status and expiry only
Sponsorship fulfilment reported against what was actually delivered, not what was promised
The loop closes: the body gets its return, records are retained on schedule, and next year starts from this year’s data.
A results return validated before it is sent, with no date of birth anywhere in it
Retention by policy, so a record is anonymised on schedule rather than kept indefinitely
A subject access export on request, with every section named even when it is empty
Cloning next year’s event, seeded with this year’s competitions, awards, and a budget built from actual costs
Irish dance today. The procedure underneath is not Irish-dance-specific.
Registration, numbering, marshalling, the stage and the green room are the same regardless of what is being judged — only the scoring model differs, and that is declared as data by a discipline pack, never hard-coded. Two disciplines already run on the identical codebase to prove it.