How we measure
- Timing. All tests use
performance.now(), a sub-millisecond clock that isn’t affected by changes to your system clock. Timed tests start on your first click, so reaction time isn’t counted against you. - Clicks per second. CPS = clicks registered before the timer ends ÷ test length in seconds. Clicks that arrive after the final millisecond are ignored.
- Input events. Mouse tests listen to
pointerdown, which fires the moment the button goes down rather than when it is released. That matches how games register clicks. - Polling rate. In Chromium browsers we read raw pointer updates, which report every hardware sample. Other browsers group (coalesce) events, so readings there may top out lower than your mouse’s real rate.
- Browser limits. Results depend on your browser, operating system and display. A busy computer can delay events by a few milliseconds. For fair comparisons, test on the same setup.
Leaderboards and fair play
Weekly leaderboards show each name’s best score from the last 7 days. Every submission is checked on our server:
- the score must match the number of clicks and the test length,
- the gaps between clicks must vary the way human clicks do (auto clickers produce near-identical gaps),
- scores above realistic human limits are rejected,
- a Cloudflare Turnstile check and a rate limit block scripted submissions.
We store only the name you enter, the score, the time, and a one-way salted hash of your IP address that is used for rate limiting. See the privacy policy.
Your results stay on your device
Personal bests and recent history are saved in your browser’s local storage. They aren’t uploaded unless you choose to submit a score.
Contact
Found a bug or a result that looks wrong? Email [email protected].
Last updated