Race Timer
Time a race from one common start: add the runners, press Start race at the gun, then tap each runner's laps and finish as they cross, or type a bib and press Enter. Every time is the recorded start plus the browser's clock difference at the moment of the press, so a background tab loses nothing, and where the browser allows storage a reload carries on from the same start. Fix a mistimed tap, give it to the right runner or type in a missed time, and the race history keeps the original. Equal times share a place, and the results export as CSV, a printed sheet or a project file you can open again.
Loading...
Places appear here as runners finish.
- Finished
- 0 of 0
- First
- None yet
- 1st to 2nd
- None yet
- Ties
- None
With the timer focused, F switches full screen. In the bib box, Enter records a lap and Shift with Enter a finish. A tap is timed from the moment your finger or mouse button goes down, or a key is pressed, whenever the browser reports that moment. Where the browser allows storage, the race is kept in this browser and a reload carries on from the recorded start.
- 5.25 s
- lap 2 took 1:40.65, the second tap minus the first
- Dev ties Ben for 3rd, the next place is 5th, and the history keeps both times
Race and runners
The first word of a line is the bib when it has a digit in it, such as 23 or A-117, and the rest of the line is the name; a space, comma or tab can follow the bib. A line whose first word has no digit is a name alone. Bibs are up to 10 characters and unique, names up to 40 characters, and a race holds up to 500 runners.
Results
Places compare times at the hundredth shown, so equal times share a place and the next place is skipped. Each split is one lap on its own: the tap minus the one before it, and the first lap minus the start.
No runners yet.
The CSV has one row per runner: place, bib, name, status, time, seconds, laps, finish time of day, race start, notes and every split. Save project writes a .json file with the runners and every tap and correction, and Open project reads it back.
Race history
Every start, tap and correction in the order it happened. A correction is added here, and the tap it changed stays as it was recorded.
Nothing recorded yet.
Common questions
- How do I time a race with several runners?
- Add the runners first, one at a time with a bib and a name or as a pasted list with one runner per line. Press Start race at the gun. Each runner then has a Lap and a Finish button, or only Finish when the race is set to Finish only. With many runners it is quicker to type a bib into the Bib box: Enter records a lap and Shift with Enter a finish, and in Finish only Enter records a finish. The standings update with every finish, and every time is measured from the same start.
- How accurate is a manual race timer?
- The timer records each press to the millisecond and shows hundredths of a second, but the press itself is only as good as the person making it: when you see the runner cross and how quickly your finger follows. A tap is timed from the moment the finger or mouse button goes down, from the event's own timestamp whenever the browser reports a usable one, rather than from when the page gets round to handling it. Browsers still round the clock they give pages, to a millisecond or finer in ordinary settings, and some privacy settings round it to tens of milliseconds or more. This is manual timing, not chip timing or a certified result.
- What happens when two runners finish with the same time?
- Places compare times at the hundredth of a second shown, so two finishes that read the same share a place and the next place is skipped: 1, 2, 3, 3, 5. The tied runners are listed in the order of the runner list. The results table and the printed sheet show the shared place as =3, the copied results write it as '=3 so a spreadsheet keeps it as text rather than a formula, and the CSV gives the place as 3 with the status Finished, tied.
- How do I fix a wrong time or a tap on the wrong runner?
- Undo last tap removes the most recent tap. Correct a time opens the corrections: choose any tap, then type the right time from the start, pick a different runner, or change it between lap and finish, and apply. Remove tap takes a tap out of the results, and Add a missed time by hand enters a lap or finish you did not tap, marked as typed in. If Start was pressed late or early, move the start earlier or later and every time moves by the same amount. The places are worked out again from the corrected times, and every correction is added to the race history while the original tap stays there.
- Does the timer keep going if I switch tabs, reload or lock my phone?
- Yes. Nothing is counted: the clock on screen and every tap are the recorded start subtracted from a fresh clock reading, so a background tab that ran no timers loses nothing. Where the browser allows storage, the race is saved in this browser after every tap, and a reload carries on from the recorded start. A phone or laptop that sleeps can pause the page clock; when the page is shown again and the device clock is more than two seconds ahead, the race clock follows the device clock. If the browser blocks storage, the race lasts as long as the tab.
- What is a lap split, and how is it worked out?
- A split is one lap on its own: the lap tap minus the tap before it, the first lap minus the start, and the last split the finish minus the last lap. In the example race, Ana's laps are tapped at 1:38.42 and 3:19.07, so her second lap took 1:40.65. The results show every runner's splits in order, and the CSV gives each one its own column.
- Can I export or print the results?
- Download CSV gives one row per runner with the place, bib, name, status, time, time in seconds, laps, the time of day of the finish, the race start, any correction notes and every split. Print results prints a results sheet, and Copy puts the results on the clipboard as tab-separated text that pastes into a spreadsheet as columns. Save project writes a .json file with the runners and every tap and correction, and Open project reads it back. Nothing is uploaded.
- How many runners can it time?
- Up to 500 runners in one race, with bibs of up to 10 characters, each bib used once, and names of up to 40 characters. A race records up to 20,000 events, counting the start, every tap and every correction; past that, save the project and start a new race.
Each time is the moment you tap, measured from one common start by your browser's clock and shown to the hundredth of a second, so it includes your reaction time and your device's delay; this is manual timing, not chip timing or a certified competition result. Equal times at the hundredth share a place, and a correction keeps the original tap in the history.