For race directors
Heats
Split a sub-event into heats. Works for track meets (pace-grouped heats with a shared sub-event start time) and for staggered start waves (each heat with its own gun time). Configure per sub-event; toggle off when you don't need it.
Open the page
From your event's director dashboard, click Heats in the sidebar. You see every sub-event with a status pill: Heats off, Heats on · no heats yet, or the count of configured heats.
Turning heats on for a sub-event
Click 'Configure' on the sub-event
Expands the editor inline.Flip 'Enable heats for this sub-event' on
Required before any heat data participates in registration. Heat data IS preserved when the toggle is off, so you can turn it off temporarily without losing setup.Decide: registrant chooses, or you assign?
The Registrants choose their heat toggle records your intent — but the sign-up-time heat picker isn't live yet, so today every registration lands unassigned and you place athletes into heats yourself (see below).Add heats
Click Add heat. Each heat gets a name (auto: “Heat 1”, “Heat 2”), with optional start time, capacity, notes, and a private code.Drag to reorder
The order matters for displays + for the Bib assignments “Stratified by heat” rule.Save heats
Click Save heats. Done.
What each heat field does
- Heat name
- Auto-named "Heat 1", "Heat 2", etc. Change to anything: "Elite", "Boys' 800 Heat 1", "6:00 pace".
- Start time (optional)
- Per-heat gun time. Leave blank to inherit the sub-event's start time — common for track meets where every heat starts at the same wall-clock minute on different tracks.
- Capacity (optional)
- Max athletes in this heat. Useful for a real wave-start where lane count or course density caps a heat. Blank = no limit.
- Private code (optional)
- Gates the heat behind a code once self-selection is live — athletes will have to enter the code to pick that heat. Meant for invite-only elite heats inside an otherwise-public sub-event.
- Notes for athletes (optional)
- Free text saved with the heat for context like "Goal pace: 6:00–7:00 / mile" or "Open lanes 4–6".
The two real-world models
Track meet
Pace-grouped heats with a shared sub-event start time. Common for high-school invitationals, all-comers track meets, and masters meets.
- Sub-event start time = the wall-clock minute of the event
- Per-heat start time stays blank
- You might let registrants self-select pace (“I'm targeting 6:00”) OR have them answer a PR / goal question and seed heats yourself later
- Private codes on elite heats so only invited runners can self-select them
Staggered start waves
Per-heat start times. Common for big-field road races doing wave starts to manage chute density.
- Each heat has its own gun time (e.g. 7:00, 7:15, 7:30)
- Capacity per heat caps wave size
- Usually director assigns rather than registrant chooses — you batch athletes into waves the night before
Deleting a heat
Click the trash icon next to a heat. Deleting a heat does not move anyone — registrations assigned to it simply lose their heat and show as unassigned. If people are already placed in a heat, reassign them from the Registrations roster first, then delete.
Assigning athletes to heats
Heat assignment happens from the Registrations roster: open a registration, click Manage registration, and use Change heat (the option only appears for sub-events that have heats configured). Assigned heats then show up on the start line, in race results, and in the roster.
Planned: a drag-to-assign roster
Heats and bib assignments
On the Bib assignments page, the Stratified by heat rule groups by heat order (your drag-to-reorder above), then assigns bibs sequentially within. So Heat 1 athletes get the lowest bibs, Heat 2 next, etc. Useful when bib order signals start-line position.
When heats are off

