Reaction Speed Test
Test your reaction speed, challenge your best record
Start Test
Click the 'Start Test' button
What is Reaction Speed?
A reaction speed test measures the delay between a visual signal and your response. In this page, you wait for the test area to change state, then click or press a key as quickly as possible; the result is shown in milliseconds. People use it to compare recent attempts, warm up before games, demonstrate attention and latency, or simply learn how fatigue and focus change performance. The number is not a pure measure of your nervous system: monitor refresh rate, mouse or keyboard latency, browser scheduling, display brightness, and early-click penalties can all affect it. For reliable comparisons, use the same device, same input method, and several attempts rather than judging one isolated result.
How to Use
How to use
- Click the 'Start Test' button
- Wait for the screen to change from red to green
- Click immediately when you see green
- Check your reaction time record
Reaction Levels
- <150ms: Excellent, esports player level
- 150-200ms: Good, above average
- 200-250ms: Average, most people's level
- 250-300ms: Slow, may need rest
- >300ms: Needs practice, recommend more rest
Test Tips
- Stay focused, relax your hand, don't be nervous. Test 5-10 times for an average for more accurate results.
Use Cases
Technical Principle
The clock that times the reaction is performance.now(), the high-resolution timer from the W3C High Resolution Time spec. In a top-level browsing context it returns a DOMHighResTimeStamp with sub-millisecond precision (Chromium reports 100 μs steps after Spectre mitigations, Firefox 1 ms by default in private windows). The legacy Date.now() is only ~1 ms resolution and is therefore unsuitable for sub-frame measurements. Both the random pre-stimulus delay (1-5 s) and the elapsed click delta are computed in the performance.now() timebase. The stimulus state change is driven by requestAnimationFrame, which the browser pegs to the display's vsync signal. At 60 Hz the frame interval is 16.67 ms, at 120 Hz it is 8.33 ms, at 144 Hz it is 6.94 ms, and at 240 Hz it is 4.17 ms; the result therefore quantises to whatever the panel can show. Below ~150 ms most of the measurement is no longer the user — it is the input pipeline: a 1000 Hz USB-polling wired mouse adds about 1 ms, a Bluetooth mouse adds 7-30 ms, and OS event coalescing can stretch this further on a battery-saving laptop. Real human simple-reaction-time data sits in a roughly normal distribution with a mean around 250 ms and a standard deviation around 30 ms, walking the same chain every time: photon hits retina, signal traverses the LGN to V1, motor planning fires in the premotor and motor cortex, the corticospinal tract drives the finger flexor, and the click registers. A premature click is therefore filtered as a 'too early' state to keep that distribution from being polluted with anticipation guesses that would otherwise read as fake 50-100 ms records.
- Clock: performance.now() (DOMHighResTimeStamp), 100 μs steps in Chromium top contexts, 1 ms in some private windows; Date.now() is only ms-precision and is not used.
- Frame quantisation: requestAnimationFrame is locked to vsync, so the smallest measurable delta is one frame: 16.67 ms at 60 Hz, 6.94 ms at 144 Hz, 4.17 ms at 240 Hz.
- Input latency floor: ~1 ms for a 1000 Hz USB-polling wired mouse, 7-30 ms for a typical Bluetooth mouse, +OS event-coalescing jitter in power-saving mode.
- Human baseline: simple visual reaction time is roughly normal with mean ≈ 250 ms and SD ≈ 30 ms; sub-150 ms records are almost always device-floor, not nervous-system gains.
- Neural chain: retina → LGN → V1 → premotor/motor cortex → corticospinal tract → finger flexor, summing to the irreducible biological latency band.
- Anti-cheat: clicks before the stimulus are flagged as 'too early' so anticipation guesses do not pollute the distribution as artificially fast records.
Examples
Typical esports player result
Attempts: 10
Best: 138 ms
Average: 152 ms
Rating: Excellent
Note: sub-150 ms results are usually limited by mouse/keyboard input latency rather than the human nervous system.Average desktop user result
Attempts: 10
Best: 198 ms
Average: 224 ms
Rating: Average
Most adult users land in the 200-250 ms band on a 60 Hz monitor with a wired mouse.Too Early penalty
Status: Too Early!
Reason: Clicked before the screen turned green.
Action: The attempt is discarded and the test restarts from the red waiting state.FAQ
How is reaction time measured?
The page changes the screen color (typically red→green) at a random delay, and starts a millisecond-resolution timer. You click as fast as you can; the difference between display change and click is your reaction time.
What's a typical reaction time?
Average human visual reaction time is ~250 ms. Trained gamers and athletes hit 180-220 ms. Below 100 ms is almost certainly a guessing click - the page detects this and may invalidate the trial. Above 350 ms suggests fatigue, distraction, or input lag.
Why do I get 'too early - guessed' warnings?
If you click before the color changes, the page knows you predicted instead of reacted. Take a few breaths, watch the screen, and click only after the change. Some builds add a random initial delay precisely to prevent timing your click to a fixed schedule.
How much input lag does the browser add?
Browser frame timing, monitor refresh rate, and mouse polling rate all add delay. A 60 Hz monitor adds ~8 ms average lag for the visual update; a wireless mouse adds another ~5 ms. So your measured reaction is ~10-20 ms slower than your nervous system actually fired. Compare relative scores within the same setup.
Should I average multiple trials?
Yes. A single trial is noisy. The page reports your average over the round (typically 5-10 trials) and discards outliers like premature clicks. The median is usually more meaningful than the best single result.
Does monitor refresh rate matter?
Yes. A 60 Hz screen has a maximum 16.7 ms delay between the change happening internally and you actually seeing it. A 120 Hz screen halves that, a 240 Hz screen quarters it. Esports players use high-refresh monitors specifically for this reason.
Are results saved?
Recent results are kept in browser localStorage so you can see your trend during a session. Clear site data or switch browsers to wipe them. Nothing is uploaded to a leaderboard.