Methodology: How CPS Is Measured
This page documents exactly how the on-site CPS test computes your score so you can interpret results fairly across devices and sessions.
Formula
CPS = (total registered clicks) ÷ (selected test duration in seconds).
Timer logic
The timer starts when a run begins (first click in auto-start mode, or immediately after Start in manual mode). The UI countdown is driven by requestAnimationFrame and performance.now() for smooth updates with minimal drift.
The final CPS divisor is always your selected duration (1, 5, 10, 30, or 60 seconds), not the wall-clock length of the last frame. That keeps scores consistent even if the browser pauses briefly.
Click detection
During a run, pointerdown on the target registers a click (primary button only). When the target is focused, the Space key also registers one count per press; key repeat is ignored so holding Space does not inflate CPS.
On the spacebar CPS test, only Space counts — useful for keyboard-specific benchmarking.
Rounding
Displayed CPS uses up to two decimal places. Very high values may show one decimal for readability. Stored “best” values keep full floating precision in localStorage as JSON numbers.
Accuracy considerations
- Operating system input settings — double-click thresholds, accessibility features, and gaming overlays can change timing.
- Pointer vs touch — touch targets, palm rejection, and mobile browser heuristics differ from mouse events.
- Hardware — switch debounce, polling rate, and keyboard actuation vary by device.
- Browser tab throttling — background tabs may reduce timer accuracy; keep the tab focused during a run.
Edge cases
- No clicks — CPS displays as 0.
- Reset during idle — clears the on-screen state without writing a score.
- Best scores — only updated after a completed run, per duration, stored locally.
Related: FAQ · Homepage tool · Click speed test guide