CPS Test
Measure clicks per second in a timed browser trial, compare pace and consistency, and filter near-duplicate presses when checking switch bounce.{{ summaryTitle }}
{{ summaryLine }}
| Metric | Value | Meaning | Copy |
|---|---|---|---|
| {{ row.label }} | {{ row.value }} | {{ row.note }} |
| Trial | Duration | Presses | CPS | Consistency | Accuracy | Copy |
|---|---|---|---|---|---|---|
| {{ row.label }} | {{ row.duration }} | {{ row.presses }} | {{ row.cps }} | {{ row.consistency }} | {{ row.accuracy }} |
| Signal | Status | Review | Copy |
|---|---|---|---|
| {{ row.label }} | {{ row.status }} | {{ row.note }} |
A click-rate score is meaningful only when the timing window and input conditions stay fixed. The same person can post a high one-second burst and a lower thirty-second result because short tests reward a quick start, while longer tests expose rhythm changes and fatigue. Device switches, touch surfaces, posture, target size, and browser scheduling also affect the recorded presses.
Clicks per second (CPS) is the average number of accepted presses during the chosen duration. It describes event rate, not reaction time, gaming ability, or hardware latency. Comparing like with like matters more than chasing one isolated peak.
- Burst trial
- A one- or two-second attempt that emphasizes the opening pace and is sensitive to a single extra press.
- Rhythm trial
- A five- or ten-second attempt that gives enough intervals to judge average speed and consistency.
- Endurance trial
- A fifteen- to sixty-second attempt that makes second-half slowdown and discomfort easier to notice.
Very close events may represent genuine rapid presses or switch bounce. A minimum-gap filter can remove events that arrive too soon after the last accepted press, but the filtered score is a different measurement. Use a zero-millisecond gap for ordinary trials and change it only when investigating duplicate signals.
Repeat attempts with the same duration, goal, gap filter, device, hand, and posture. Stop if the hand, wrist, or forearm becomes uncomfortable; repeated maximal clicking is not a useful test of pain tolerance.
How to Use This Tool:
Set a repeatable test before pressing the target; the first accepted press starts the clock and counts toward the result.
- Choose a Test duration from 1, 2, 5, 10, 15, 30, or 60 seconds, then set a Goal pace from 1.0 to 30.0 CPS.
- Leave Ignore press gaps under at 0 ms for a neutral run. Increase it only to examine possible duplicate events, and keep the same value across comparisons.
- Turn on Track outside misses when staying inside the target matters. Press the target to begin, then use Pause, Resume, or Cancel without changing the active run's saved settings.
- After time expires, compare Final CPS, Consistency, Zone accuracy, and Second-half change. Repeat the run before treating a small difference as improvement.
Interpreting Results:
- Final CPS is the average over the full fixed duration. Peak one-second pace is the largest accepted count inside any rolling one-second window and will often be higher.
- Consistency grades the spread of accepted press intervals. It needs at least three accepted presses, and it should be compared only across runs with the same filter and duration.
- Zone accuracy includes outside misses only when tracking is on. Ignored near-duplicate presses remain in the attempt count, so filtering can lower both accepted CPS and accuracy.
- Second-half change shows whether the latter half was faster or slower. A tiny change can come from event timing or one press near the midpoint, so confirm it with another run.
Timing uses the browser's high-resolution elapsed clock when available. The latest trials and best score are kept in local browser storage, with up to 20 trial records retained. No remote timing service makes the result more precise.
Short breaks and relaxed posture matter during repetitive input work. Stop rather than repeating maximal trials through tingling, numbness, or pain.
Technical Details:
A live run records each target press as elapsed milliseconds of active test time. Presses must be chronological and no later than the selected duration. Paused time is excluded, while the opening press is stored at zero milliseconds.
Formula Core:
The headline rate uses accepted presses, accuracy uses all recorded attempts, and consistency uses the population spread of the gaps between accepted presses.
A is accepted presses, T is the fixed duration in seconds, R is raw target presses, O is tracked outside misses, and μI and σI are the mean and population standard deviation of accepted press intervals in milliseconds. CPS is displayed to two decimals, accuracy to one decimal, and consistency as a whole-number score.
Rule Core:
The first raw press is accepted. Each later press is accepted only when its gap from the most recent accepted press is greater than or equal to the selected minimum gap. This makes the filter sequential: a rejected event does not reset the comparison point.
| Signal | Rule | Meaning |
|---|---|---|
| Consistency unavailable | Fewer than 3 accepted presses | Two interval gaps are required before rhythm spread is graded |
| Strong consistency | Score ≥ 82 | Accepted gaps were relatively even under this local scoring model |
| Review consistency | 62 ≤ score < 82 | Interval variation deserves comparison with another run |
| Uneven consistency | Score < 62 | Accepted gaps varied substantially |
| Target pace met | Final CPS − goal CPS ≥ 0 | The average met or exceeded the chosen goal |
| Second-half pace held | Second-half change ≥ −0.5 CPS | The review does not flag a larger late slowdown |
Peak pace is the highest accepted count in a half-open rolling 1,000 ms window. Browser event delivery includes input-device, operating-system, rendering, and page-scheduling effects; the result is not a direct measurement of switch latency or polling rate.
Worked Examples:
Steady ten-second run
Eighty accepted presses in 10 seconds produce 8.00 CPS. With an 8.0 CPS goal, the goal gap is 0.00 CPS. Even 125 ms intervals produce a consistency score of 100, but the score still describes only that duration, filter, and device.
Possible duplicate switch events
If several raw presses arrive only a few milliseconds after the previous accepted press, repeat the trial with a carefully chosen minimum gap. A lower accepted count supports a duplicate-event diagnosis, but it does not by itself prove a hardware fault.
References:
- Performance: now() method, MDN Web Docs.
- Element: pointerdown event, MDN Web Docs.
- Computer Workstations eTool: Work Process and Recognition, Occupational Safety and Health Administration.