How we measure
Last updated 1 August 2026
Every test here reports milliseconds. Milliseconds sound precise, so this page explains exactly what is being counted, what is not, and how much you should trust the number.
What a reaction time here actually is
We measure the gap between two timestamps that the browser gives us:
- When the stimulus was drawn. We do not use the moment our code asked for a change. We use the timestamp of the animation frame that actually painted it.
- When your input happened. We use the timestamp attached to the input event itself, not the moment our handler ran. Those differ whenever the browser is busy, and using the handler time would silently add that busyness to your score.
Both come from the browser's monotonic high-resolution clock, so system clock changes cannot affect a result.
What is not included, and cannot be
A web page cannot see the whole chain. Your score still contains, and we cannot separate out:
- Display latency — how long your monitor takes to show a new frame.
- Refresh rate — at 60 Hz a frame is about 16.7 ms wide, so stimulus onset is quantised to that grid. A 144 Hz screen has a finer grid and will tend to produce slightly better numbers.
- Input hardware — polling rate, wireless latency, touchscreen sampling.
- Operating system and browser scheduling.
This is why we do not claim these are laboratory measurements, and why we never publish a global leaderboard of raw times. A leaderboard would mostly rank equipment.
The one claim we do make
These numbers are meaningful as comparisons under the same conditions. Your result today against your result last week, on the same machine, is a real comparison. Your result against a friend who accepted the same challenge is a fair comparison in the sense that you both faced an identical sequence — though your hardware may differ.
Because input devices differ so much, results are grouped by input class — touch, mouse, pen or keyboard — and never pooled across them.
Results we discard
- Anything faster than 80 ms. That is below the floor for seeing a stimulus and then responding to it; it indicates anticipation or automation, not reaction. Athletics uses a comparable rule to call a false start.
- Anything slower than 3,000 ms, which means attention left the task.
- Any round where the browser tab was not visible. Browsers suspend animation frames in background tabs, so the stimulus was never drawn. These rounds are voided rather than scored — you are not penalised for them.
Where the percentile comes from
Reaction times are not distributed symmetrically — there is a hard physiological floor below and a long tail above, so we model each task with a log-normal distribution rather than a bell curve. Your percentile is your position in that distribution.
Each task has its own reference, because they are not measuring the same thing: a single unambiguous signal is much faster than choosing between eight, which is faster than resolving a conflicting one. The references are also adjusted per input device, since touchscreens are structurally slower than keyboards and it would be meaningless to rank them together.
If you switch inputs partway through a run, that run is shown to you but left out of the rankings — a mixed run is a blend of two distributions and belongs in neither.
Your archetype is assigned from the relationship between your highest and lowest axis, not from your highest axis alone. Someone fast with poor inhibition and someone fast with excellent inhibition are different profiles and should not collapse into the same type.
Fair challenges
When you challenge someone, the delay sequence is generated from a fixed seed carried in the link. Both players face the same waits in the same order. Without that, one player could simply draw shorter delays and win on luck.