Skip to the click pad
ClickCPS

How ClickCPS Times Your Clicks

This is a single-purpose measuring instrument, and an instrument is only worth trusting if you can see how it works. This page describes exactly what the tool counts, exactly how it times a run, and exactly what it is not able to tell you. Nothing here is marketing — where the tool has a limitation, it is written down.

What counts as a click

The pad listens for pointerdown. That is the event a browser fires the instant a button goes down, and it covers mouse, pen and touch through one code path. The alternatives are both worse: a click event only arrives after the button comes back up, and if you release somewhere other than where you pressed, the browser fires it on the nearest common ancestor of the two elements — so it still exists, but the pad's own listener never sees it. Listening to mouse and touch events separately means a phone reports one tap twice, because browsers follow a real touch with a synthesised mouse event.

Two filters run on every press. Only the primary button counts, so right-clicks, middle-clicks and the side buttons on a gaming mouse cannot inflate a score. On touch, every finger down counts, because a second thumb genuinely is a second press. In spacebar mode the tool listens for keydown on the space key and discards anything carrying the auto-repeat flag — the stream of events your operating system generates while a key is held — so leaning on the bar is worth exactly one press.

How a run is timed

The clock is performance.now(), a monotonic timer: it only moves forwards and is unaffected by the system clock being changed underneath it. The specification permits browsers to coarsen its resolution, so nothing here depends on sub-millisecond precision.

A run works like this. Nothing happens until your first click; that click starts the clock and is itself counted. Every later click is accepted if and only if the elapsed time is strictly less than the run length — a click landing exactly on the boundary is rejected and closes the run. When the run finishes, the score is your click count divided by the full run length, never by the moment your last click happened. That fixed divisor is the whole reason two runs of the same length can be compared at all.

The elapsed bar and the finish check run on animation frames, so the display can keep saying "running" for up to one frame after the deadline — around 17 milliseconds on a 60 Hz screen, less on a faster one. This cannot affect your score: clicks are accepted or rejected on their own timestamp, not on which frame noticed them, so a late frame is a display artefact and nothing more.

The starting-on-your-first-click design is deliberate. A countdown would fold your reaction time into the measurement, which is a rounding error over sixty seconds and a fifth of the result over one. It also has a visible consequence: because the first click costs no elapsed time, a one-second run of nine clicks scores exactly 9.00 CPS, not 8.

The arithmetic

There is no modelling and no smoothing anywhere in the scoring. CPS is total clicks divided by the run length in seconds, rounded to two decimals for display. CPM is derived from the raw click count rather than from the already-rounded CPS, because multiplying a rounded number by sixty multiplies its error too — 100 clicks in 15 seconds displays as 6.67 CPS, but the honest CPM is 400, not 400.2. The run lengths offered are 1, 2, 5, 10, 15, 30, 60, 100 seconds.

Every derived number this site publishes — the conversion table, the pacing checkpoints, the split arithmetic, the pause costs, the interval budget — is generated by the same functions the tool uses to score you, and each printed cell is asserted individually in an automated test suite. That suite runs as a build step, before a single page is generated, so a published figure that disagreed with the tool would fail the build before it could reach you.

What the band names are — and what they are not

The scale runs Warm-up → Steady → Quick → Fast → Rapid → Overdrive. These are labels this site defined so a bare decimal has something readable attached to it. We chose the boundaries and we publish them in full on the main page so you can check them.

They are not percentiles, not survey results, and not a claim about what any population of players can do. Plenty of click-speed sites publish an "average CPS" to two decimal places; ask where the number came from and there is never an answer, because there is no study behind it. We will not add to that pile. The only thing your band tells you is which of our published ranges your run landed in.

What this test cannot see

  • Anything upstream of the browser. Mouse polling rate, debounce inside the mouse, USB scheduling and OS input handling all happen before the page is involved. This measures what reached the page — which is what your game receives too, but it is not a hardware bench test.
  • A switch that fires twice from one press — not from the score alone. A doubling switch and a genuinely fast hand look identical in an averaged rate, so the only way to see one here is to compare the counter against presses you counted yourself: the deliberate-count method on the 5-second test works it through. Reading it out of the events themselves needs the millisecond gaps between them, which the keyboard tester prints one by one.
  • Sensor accuracy, latency or anything about movement. This counts button presses.
  • What your score means for a game. Some games count inputs; others gate attacks behind a cooldown, in which case extra clicks convert into nothing.
  • How you compare to other people. There is no leaderboard, no upload and no population data — by design.

Privacy, in one paragraph

Every click is processed by JavaScript in your browser. There is no server component, no account and no transmission of anything you do here. Personal bests are written to your browser's own local storage on your device, in a slot per run length and per input mode, and never leave it. You can confirm all of this in your browser's network tab: nothing fires while you click. The full privacy policy covers advertising and analytics, which are the only third parties involved anywhere on the site.

Corrections

If a number on this site is wrong, that is a defect and it will be fixed. The same goes for a claim that reads as more certain than the evidence behind it. Send it to the contact page with the page and the figure, and it will be checked against the test suite.