ToolActToolAct

Reaction Speed Test

Test your reaction speed, challenge your best record

--ms
Best Record
--ms
Average Time
0
Attempts

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

  1. Click the 'Start Test' button
  2. Wait for the screen to change from red to green
  3. Click immediately when you see green
  4. 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

Measuring click or key reaction timeStart the test, wait through a random 1 to 5 second delay, then click or press Space/Enter as soon as the ready state appears. Clicking too early is detected as its own state so anticipation does not count as a valid result. The ready signal is driven from a per-frame timestamp captured inside requestAnimationFrame, which gives roughly 16.7 ms resolution on a 60 Hz monitor and tighter resolution on a 120 Hz or 144 Hz display.
Tracking best and average performanceEach valid attempt records reaction time in milliseconds, marks new records, and contributes to the best time and average time summary. The test history keeps up to 50 attempts so short practice sessions can be compared over time. The minimum measurable difference is one display frame, so do not chase sub-frame improvements when comparing two devices with different refresh rates.
Getting simple performance feedback after each attemptResults are rated from excellent through very slow based on timing thresholds, and the history row color follows that rating. It is a lightweight way to test alertness, input latency, or warm-up progress before games or precision tasks, with the caveat that sub-150 ms results are usually limited by input device latency rather than by the person.
Comparing mouse vs keyboard response on the same machineRun a full 50-attempt session with clicks only, then another with Space or Enter, to see whether your keyboard or mouse path is faster on this device. USB polling rate and wireless latency often introduce a 10 to 20 ms gap between the two, so a clean run with both inputs is a better baseline than a single fastest-attempt number.
Spotting fatigue across a long sessionWatch the trailing attempts in the history row color rather than just the average; sustained drops into the slower bands usually mean focus has faded and a break is overdue. Avoid judging your baseline from the first five results while you are still warming up, and ignore any single false-start result since those are timing-protocol errors, not slow reactions.

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.