| Lap # | Lap Time | Total Time | Copy |
|---|---|---|---|
| {{ laps.length - idx }} | {{ formatDuration(lap.lapMs) }} | {{ formatDuration(lap.totalMs) }} |
A stopwatch measures elapsed time from one starting point and becomes more useful when you can also see where each segment landed inside the total. That matters in running repeats, breathing drills, classroom exercises, and informal event timing because the overall session can look steady while individual laps drift.
This page keeps a continuous clock, lets you mark laps as you go, and turns each lap into both a Lap Time and a cumulative Total Time. It also keeps a running count of laps, highlights the fastest and slowest split, and adds a target-based coaching view so you can compare what just happened with the pace you meant to hold.
That makes it practical for things like four 400 m repeats on a 90 second goal, one minute focus sprints during study blocks, or a sequence of rest intervals where you want a clear record afterward. Because the timer resumes from the saved elapsed total after a pause, you can interrupt a session without losing the overall clock.
Core timing, lap storage, CSV export, JSON export, and DOCX export all happen in the browser. The tool does not ship a server helper, which is good for privacy, but it also means the stopwatch depends on your device clock, your own button presses, and normal browser timer scheduling.
Use it as a practical timing tool for workouts, drills, and personal tracking rather than as an official competition timer. The display is precise enough for comparison work, but certified race timing follows stricter procedures than a manual browser stopwatch.
The simplest way to use this stopwatch is to ignore the coaching layer at first. Press Start, record laps with Lap, and use Pause or Reset only when you want to stop or clear the session. The elapsed display and lap table work even if the target lap setting never changes from its default.
If pace matters, set Target lap (seconds) before the first rep and keep it fixed for the whole block. The coaching messages are easiest to trust when every lap is being compared against the same reference split instead of a moving target.
Audit consistency as a real session judgment. Before that point, the coach only tells you how many more laps are needed.Latest lap against Best lap. One very fast opener can make the session look better than it currently is.Lap Time when you care about the segment itself, and use Total Time when you need to know where that segment happened in the overall run.Copy CSV, Download CSV, or Export DOCX for a human-readable log. Choose Copy JSON or Download JSON when another tool or workflow needs structured data.The main misread to avoid is equating one fast lap with stable pacing. The safer trust check is to hold one target, record several comparable laps, and then read the latest lap beside the spread message before you export or compare sessions.
The stopwatch keeps one accumulated elapsed total in milliseconds and updates the visible clock from that total. When you pause, the saved elapsed value stays in memory. When you resume, the app backdates the new start anchor by that saved value, so the next running segment continues the same total instead of starting from zero again.
Each lap stores two numbers: the interval since the previous lap and the total elapsed time at the moment the button was pressed. New laps are inserted at the top of the session log, which is why the newest row appears first while the displayed lap number still counts upward through the session.
The Split Coach view is rule-based rather than predictive. It clamps Target lap (seconds) to an integer from 5 to 3600, compares the target with both the fastest lap and the newest lap, and adds a consistency read only after four or more laps exist. That consistency rule is specific to this tool: a session is marked controlled when lap spread stays at or below 12% of the chosen target.
The main calculations are straightforward elapsed-time arithmetic. The timer measures the current total, derives each new lap from the difference between cumulative checkpoints, and then computes spread and standard deviation across the recorded lap intervals.
| Quantity | What it means here | Unit or type | Source |
|---|---|---|---|
E |
Current elapsed session time shown in the headline display | milliseconds, displayed as HH:MM:SS.hh | Derived |
Tn |
Cumulative total stored at lap n |
milliseconds | Derived |
Ln |
Interval between lap n and the prior checkpoint |
milliseconds | Derived |
Target |
Reference lap duration used only by Split Coach |
whole seconds, 5 to 3600 | Input |
Spread |
Gap between the fastest and slowest recorded lap | milliseconds | Derived |
Displayed times are truncated to hundredths of a second even though the internal clock is stored in integer milliseconds. The page refreshes the running display every 10 milliseconds. In background tabs, browsers may throttle timer callbacks, so the visible clock can update less smoothly until the tab is active again.
| Surface | What it shows | Why it matters |
|---|---|---|
| Summary box | elapsedLabel, running state, lap count, fastest lap, and slowest lap |
Fast headline view before opening any detailed panel. |
Laps tab |
Lap number, Lap Time, and Total Time for every checkpoint |
Best place to inspect exact splits and cumulative timing. |
Split Coach tab |
Target reminder, best-versus-latest comparison, and consistency audit | Turns raw lap data into pacing feedback. |
JSON tab |
tool, generated_at, elapsed_ms, target_lap_seconds, and laps |
Useful when another system needs the session in machine-readable form. |
No server-side helper is present in this slug. Timing data, copied rows, CSV downloads, JSON downloads, and DOCX exports are generated from the page itself. If you need official or highly controlled timing, verify results with a dedicated timing system rather than relying on manual button presses in a browser.
The cleanest workflow is to start a session, build enough laps for comparison, and then export only after the pacing picture makes sense.
Target lap (seconds) if you want coaching against a specific split. If you only need raw timing, leave the default and focus on the headline clock.Start to begin the elapsed display. The status line beneath the clock should switch from Paused to Running.Lap at each checkpoint. New rows appear in the Laps tab with both Lap Time and Total Time. If Lap is disabled, the stopwatch is not currently running.Pause when you need to stop the live clock without clearing the session. Use Reset only when you want to wipe both the elapsed total and every stored lap row.Split Coach and read the newest guidance. If the message says more laps are needed, keep recording until the tab can produce a consistency read.Copy CSV, Download CSV, or Export DOCX from the Laps tab, or use Copy JSON and Download JSON from the JSON tab.A good closing check is to compare the newest row in Laps with the coach message before exporting. That catches late-session fade that a single fastest lap would miss.
The most important output depends on the question you are asking. If you care about how long one segment lasted, read Lap Time. If you care about where that segment occurred inside the session, read Total Time. The summary badges are helpful, but the table is the authoritative record.
The coaching tab should be read as one package. Define the split objective tells you the reference pace, Compare against best split shows whether the newest lap is holding up, and Audit consistency decides whether the block is stable enough to export. A fastest lap ahead of target does not mean the whole session met target pace.
| State | What the page is telling you | Useful next check |
|---|---|---|
| No laps yet | The timer is only measuring total elapsed time. Coaching cannot compare anything meaningful. | Record the first checkpoint with Lap. |
| 1 to 3 laps | You can compare the newest split with the target, but consistency is still provisional. | Keep the same target and collect at least one more comparable lap. |
| Controlled spread | The tool sees four or more laps and a spread at or below 12% of target. | Export the session or compare it with another block that used the same target. |
| Wide spread | Pacing variation is large enough that the session is not yet stable by this tool's rule. | Inspect the newest lap and opening lap together to see whether the block started too fast. |
The main false-confidence warning is simple: do not judge the whole session by the best lap. Verify the newest lap, the spread message, and the cumulative totals before deciding that a set was even, improving, or ready to archive.
A breathing coach wants four one-minute rounds with a 60 second target. The lap rows come out as 00:00:59.84, 00:01:00.12, 00:00:59.93, and 00:01:00.21. The summary box shows four laps, the fastest lap is 00:00:59.84, the slowest is 00:01:00.21, and the spread is only 0.37 seconds. Because 0.37 seconds is well under 12% of a 60 second target, the consistency message reads as controlled and the session is reasonable to export.
A runner sets Target lap (seconds) to 90 for four repeats. The Laps tab records 00:01:24.20, 00:01:31.10, 00:01:34.35, and 00:01:36.00, with Total Time ending at 00:06:05.65. The best lap is 5.80 seconds ahead of target, but the newest lap is 6.00 seconds behind and the spread is 11.80 seconds. Because 11.80 seconds is greater than the tool's 10.80 second stability limit for a 90 second target, Audit consistency correctly warns that the set widened over time.
A user starts the timer, pauses at 00:02:15.40 to answer a call, then resumes and presses Lap at 00:03:00.10. The first row shows Lap Time 00:03:00.10 and Total Time 00:03:00.10 because no earlier lap was recorded. The stopwatch preserved the total through the pause, but it did not create a checkpoint on its own. If the user needed a split at the pause point, they had to press Lap before pressing Pause.
No. Target lap (seconds) only changes the text in Split Coach. It does not rewrite the elapsed clock, the lap rows, or the JSON payload.
The page disables Lap whenever the stopwatch is paused. Press Start to resume the session, then record the checkpoint.
No. It is a practical stopwatch for drills, workouts, classrooms, and informal timing. Official timing rules use stricter procedures and dedicated equipment.
No server helper exists for this tool. Timing, lap storage, CSV generation, JSON generation, clipboard copies, and DOCX export are all handled from the page itself.
Browsers can slow timer callbacks in background tabs. The stopwatch still derives elapsed time from the device clock, but the visible updates may look less smooth until the tab is active again.