AxiomApe.com
Chronometer
Ready
00:00:00
.000
 
Live Split Log
No splits recorded yet.
Start the timer and press Split / Lap to record an interval.
Telemetry and Export
Total Laps
0
Fastest Lap
-
Average Lap
-
Downloads a .csv file compatible with Excel and Google Sheets. All data stays in your browser.
Key Terms Explained
Split Time
The total elapsed time from the session start to the moment a split was recorded. Also called cumulative time. Every split time is larger than the previous one.
Lap Time
The duration of a single interval: the time between the previous split and the current split. Also called interval time or leg time. Lap times can vary widely between laps.
Cumulative Time
The running total of all lap durations added together. Equivalent to split time. Useful for checking your overall pace rather than a single segment's performance.
Chronometer
A precision timekeeping instrument. In software, a chronometer measures elapsed duration with high accuracy, distinct from a simple clock that shows the current time of day.
Performance API
A browser built-in (performance.now()) that returns sub-millisecond timestamps from a monotonic clock. Unlike Date.now(), it cannot be skewed by system clock changes, making it ideal for timing tasks.
CSV Export
Comma-Separated Values - a plain-text file format where each row is one record and each field is separated by a comma. Universally supported by Excel, Google Sheets, and database tools.
Latency
The delay between when an event occurs and when it is recorded. In browser-based timing, latency is typically under 1 ms when the tab is active and in focus. Background throttling can increase apparent latency in the display but not in the stored timestamp.
requestAnimationFrame
A browser API that schedules a callback before the next screen repaint, typically 60 times per second. Used here to update the timer display at 60 FPS without taxing the CPU unnecessarily.

The Complete Guide to Stopwatch Split Timing and Lap Log Exports

Whether you are a coach tracking athlete interval splits, a researcher recording reaction times, a developer benchmarking code segments, or simply someone who wants to log how long each step of a process takes, a precision stopwatch with a downloadable split log is the right tool. This guide explains how to use this tool effectively, the engineering choices behind it, and why browser-based timing is more capable than most people expect.

How to Use This Tool

  1. Press Start to begin the chronometer. The display updates in real time at up to 60 frames per second.
  2. Optionally type a label in the Split label field before pressing the split button (for example, "Lap 1" or "Segment A to B").
  3. Press Split / Lap each time you want to record a time interval. A new row appears in the Live Split Log showing the lap duration and the cumulative elapsed time at that moment.
  4. Press Stop to pause the timer without losing your data. Press Start again to resume.
  5. When your session is complete, check the Telemetry and Export panel for your total lap count, fastest lap, and average lap time.
  6. Press Export CSV Log to download a .csv file containing every split. You can open this file directly in Excel or Google Sheets for further analysis.
  7. Press Reset to clear the timer and start a fresh session. Note: the log persists in memory until you press Clear Log or reload the page.

Why performance.now() Is the Right Timing Engine

Standard JavaScript timing (Date.now()) returns the number of milliseconds since January 1, 1970 - a wall clock reading accurate only to the nearest millisecond and subject to jumps if the operating system synchronizes the clock mid-session. The Performance API's performance.now() uses a dedicated monotonic high-resolution timer that starts at page navigation and never resets, never goes backward, and is never adjusted by NTP or daylight saving changes. The resolution is typically 0.1 ms or better, making it the correct choice for any timing work that needs to be reliable across a session of arbitrary length.

Understanding the Split Log Columns

The Live Split Log shows four columns for every recorded split. The Lap column is a sequential counter starting at 1. The Lap Duration column shows how long that specific interval lasted - the time between the previous split (or session start) and this split. The Cumulative Time column shows the total elapsed time from the very beginning of the session to this split. The Wall Clock column records the real-world date and time (your local clock) at the moment the split was pressed. The optional Note column carries any label you typed in the split label field.

How the CSV Export Works

Pressing Export CSV Log generates a comma-separated text file entirely in memory using a Blob URL and an anchor tag click. No data leaves your computer. The header row names all five columns. Each subsequent row is one split record. String fields (specifically the optional split note) are wrapped in double quotes, and any double quote characters inside those fields are escaped as "" per RFC 4180. This ensures the file parses correctly in all spreadsheet applications even if your notes contain commas, line breaks, or quote characters.

Browser Tab Throttling and What It Means for Your Timing

All major browsers reduce the frequency of background timers when you switch to another tab, typically limiting them to one call per second or less. This tool uses requestAnimationFrame for its display loop, which is also suspended in the background. However, the elapsed time is never computed by counting ticks - it is always calculated as the difference between the current performance.now() reading and the stored start timestamp. This means your cumulative totals and every split duration are mathematically correct regardless of how long the tab was in the background. The display simply catches up the moment you return to the tab.

Use Cases for Split Time Logging

Sports coaches use split logs to track each lap of a swim meet, each 400-meter segment of a track race, or each set of a weight training session. Researchers use split timing to record reaction times across multiple trials, with the CSV providing ready-made data for statistical analysis. Software developers use interval logs to benchmark individual steps of a multi-stage process without the overhead of a full profiling tool. Event planners use stopwatch splits to track the exact duration of each segment of a production, helping them refine timing for future events. In all these cases, the ability to export the log as a structured CSV file is what transforms a simple timer into a useful data collection instrument.

Frequently Asked Questions

The browser Performance API (performance.now()) provides sub-millisecond resolution, typically accurate to within 0.1 ms under normal conditions. It measures time elapsed since the page navigation started using a monotonic clock, meaning it cannot go backward and is not affected by system clock adjustments. This makes it far more reliable for short-interval timing than Date.now(), which only offers millisecond resolution and can jump or drift when the OS adjusts the system clock. For most stopwatch and lap timing use cases, performance.now() is the correct and recommended approach.

A split time (also called a cumulative time) is the total elapsed time from the very start of the session to the moment a split was recorded. A lap time (also called an interval time or leg time) is the duration of just that one segment - the time between the previous split and the current split. For example, if you record splits at 0:30, 1:10, and 2:00, the split times are 0:30, 1:10, and 2:00, while the lap times are 0:30, 0:40, and 0:50. Both measurements are shown in this tool's split log and included in the CSV export.

To conserve battery and CPU resources, all major browsers throttle or pause setTimeout and setInterval callbacks in background tabs. Chrome, Firefox, and Safari all limit timer callbacks to roughly one execution per second (or less) when a tab loses focus. This tool uses requestAnimationFrame for its display loop, which is also paused in background tabs. However, because the elapsed time is calculated from a stored performance.now() timestamp rather than accumulated tick counts, the total time and all split calculations remain accurate regardless of throttling. The display simply catches up instantly when you switch back to the tab.

Yes. The exported CSV file uses standard comma-separated formatting with a header row and is fully compatible with Microsoft Excel, Google Sheets, LibreOffice Calc, and any other spreadsheet application. In Excel, use File - Open or drag the file into the window. In Google Sheets, use File - Import - Upload. All four columns (Lap Number, Lap Duration, Cumulative Time, and Wall Clock Timestamp) import cleanly. If any split note you add contains a comma, the tool automatically wraps that field in double quotes so the CSV parser reads it as a single value.

Keep the tab visible and active during your timing session - background throttling can delay the visual display update, though the underlying timestamps remain accurate. Use a physical keyboard shortcut or tap the Split button immediately when the event occurs rather than clicking after a delay. Avoid running CPU-intensive tasks in other tabs simultaneously, as heavy JavaScript workloads can introduce a few milliseconds of latency between the true event moment and the recorded timestamp. For lab-grade precision beyond what a browser can offer, dedicated hardware timers or purpose-built sports timing systems are the appropriate tool.