For race directors
Race results
Upload your timing company's CSV, one distance (and heat) at a time, choose how each distance is ranked, then publish. Athletes get a clean, sortable results page and a shareable finisher card for every runner.
Open the page
From your event's director dashboard, click Race results in the sidebar. Pick the Distance (and Heat, if that distance has heats) you're working on. Everything below (uploading, the live table, scoring) applies to the distance/heat you have selected.
Uploads only affect the distance you've selected
Uploading a timer CSV
No timing company? Self-timed races can record finishes with the Run This stopwatch instead. Those times feed the same results system.
Select the distance (and heat)
The upload is stamped onto whatever you have selected. If a distance runs heats, pick the heat too so the results land in the right wave.Click 'Upload results' and drop your CSV
Any timing company's export works. We auto-detect the columns. UTF-16 and tab/semicolon-separated files are handled.Map the columns
We guess the mapping and you confirm it. Map bib, name, gender, age group, times, and, for manually-ranked distances, the Result value column (laps, points, etc.).Review and import
Check the preview, choose Replace results (for this distance) or Add to existing, then import. Bibs are matched against your registrations automatically.Publish
Results stay private (director-only) until you publish them. Click Publish, check the distances runners should see, and confirm. You can publish one distance now and another later.
Publishing one distance at a time
The Publish popup lists every distance with its number of results. Checked distances go public. Unchecked ones stay private, even if someone has a direct link. Once something is public, the button reads Edit publishing: open it again to publish another distance, hide one, or uncheck everything to unpublish. The Race results page shows Partly published while only some distances are public, and a Public or Not public tag next to the distance you're viewing.
- A checked distance with no results yet shows new results as soon as they're added (handy for live results from your timer).
- Results that aren't tied to a distance stay private until you give them one (see Re-ranking and editing).
- The event page's results card and each runner's finisher card only ever show public distances.
Runner notifications are off unless you turn them on
How a distance is ranked
Most races rank by finish time (fastest wins). But some events place runners by something else, a backyard ultra scores by laps completed, a 6-hour race by distance covered, an adventure race by points. Each distance picks its own method under How are finishers ranked? on the Race results page.
- By finish time
- The default. Lowest time wins. Map a chip/gun/finish-time column on import and we rank everyone.
- By laps / distance / points
- A manual metric where the HIGHEST value wins. Map your laps/distance/points column to 'Result value' on import, or type it into each finisher's edit popup.
- Custom metric
- Same as above, but you choose the column label (e.g. 'Reps', 'Checkpoints'). Highest value wins.
- Tiebreak
- For manual metrics, you choose what happens when two people tie: the faster finish time wins (record a time too), they share the place (e.g. two 3rds, next is 5th), or you order tied finishers yourself.
Recording a time alongside a manual metric
Age groups and awards
Every distance has its own Age groups and awards setting, right under How are finishers ranked?. Click Change to pick how runners are grouped. You can change it any time: before the race, during it, or after. Every runner is placed by their age on race day, and the results page, the award winners and each runner's finisher card follow at once.
- Use my timing company's age groups
- The default. Results keep the age group in your timing company's file. If you time the race with the Stopwatch, runners get 5-year groups (like M40-44).
- 10-year age groups
- 19 & under, 20-29, 30-39 and so on up to 80+, from each runner's age.
- 5-year age groups
- 14 & under, 15-19, 20-24 and so on up to 80+. The USATF standard.
- Masters groups
- Open (39 & under), Masters (40-49), Grand Masters (50-59) and Senior Grand Masters (60+).
- Custom age groups
- Your own ranges, for example 54 & under and 55+. Leave the first box blank for the youngest group and the last one blank for the oldest. Give a group a name if you like (it defaults to the ages).
- Separate by gender
- Women, men and non-binary runners get their own age groups and their own overall awards. Turn it off to put everyone together (one 55+ group for everyone).
- Awards
- How many places win overall and in each age group (top 3 by default). Overall winners skip their age group unless you tick Overall winners can also win their age group, so the next runner moves up. Each choice shows how many awards it can hand out.
While you're changing the setting, the award winners below show a preview. Click Save age groups to apply it to the results. Results you upload later, and results your timing company sends, use the same groups. Switching back to Use my timing company's age groups puts their original groups back.
On a team distance, teams are ranked as teams, so age groups don't apply. The section is called Team awards: set how many teams win overall and in each division. Divisions come from your results (like Coed or All Female). If your results don't have them, only the overall awards are given.
Show award winners
Choosing age groups
Every race is different, so pick what fits yours. Most races give awards to the top 3 overall, for women and for men, then to the top 3 in each age group. Overall winners usually don't also win their age group, so the next runner in that group moves up. Every distance starts with those settings. With them, the standard setups hand out:
- 10-year age groups: up to 54 awards.
- 5-year age groups (the USATF standard): up to 96 awards.
- Masters groups: up to 30 awards. In road running, Masters starts at 40.
Those counts are the most you could need, with every group full, for women and for men. A group with fewer than 3 runners gives out fewer. Each choice in the editor shows its count as you change the awards, so you know how many medals to order.
Start from a standard setup, then make it yours
Re-ranking and editing
Importing auto-ranks everyone. If you edit results by hand afterward (or change a distance's scoring), click Re-rank by {metric} on that distance to recompute overall, gender, and age-group places. Editing or deleting a single finisher re-ranks that distance for you.
- Click any row in the results table to edit a finisher, fix a name, time, metric value, or mark them DNF / DNS / DQ. Saving re-ranks that distance for you.
- Change a finisher's Distance in the edit popup to move them to the right distance. Both distances re-rank.
- If some results aren't tied to a distance (for example a stopwatch finish whose bib didn't match a registration), the Distance picker offers Not assigned to a distance. Pick it to see those results, then give each one a name and a distance, or delete it.
- The Tiebreak order field appears in the edit popup only when a distance uses the “I'll order tied finishers myself” tiebreak (lower number = higher place).
- Delete a single result from its edit popup (with a confirm).
Heats
For a distance with heats, pick a Heat next to the distance to see just that heat. How places work depends on the distance's How do heats compete? setting on the Heats page: Heats race together gives one set of places for the whole distance, and Each heat is its own race gives every heat its own places and award winners (pick the heat to see them with Show award winners). Re-ranking follows the same setting.
Past editions (after you renew)
When you renew an event, that year's results are saved to its edition. They're never lost. Once at least one past edition exists, an Edition dropdown appears at the top of the Race results page. Switch to a past year to view it, and you can edit it too (correct a time, re-import, re-rank, publish/unpublish). Changes save to that year's results and never touch your current edition.
Showing results on the event page
Separate from the full results page, your event page can show a compact results card. Toggle Show results on the event page on the Race results page (it appears whenever you have results for the current or a past edition). With it on, the card shows this year's top finishers, or, until you publish this year's, the most recent published past edition (labeled with the year). Pick Recent results or all-time Course records underneath.
Ties show as a shared place
What athletes see
Once published, /event/your-event/results shows a sortable, searchable table for each public distance, with All results / By category / By gender views. A distance or heat with no results doesn't appear. The result column shows the time, or the laps, distance, points, or custom value for manually-ranked distances. Every runner's name links to a shareable finisher card.
If your event uses Circles, each runner's Circle shows under their name, on the results page and on their finisher card page. Searching a Circle's name finds its members, and clicking a Circle lists everyone from it in that distance. A runner whose profile is private doesn't show a Circle. To hide Circles, untick Circle under Show on the results page.

