AnyTool
Your files never leave your device. All processing happens locally in your browser.

How do I test my reaction time online and what is a good score?

Open AnyTool Reaction Time Test and click to start. The panel shows red, then turns green after a random crypto-timed wait (1.5–5 s); click or press Space the instant it turns green and your reaction is timed with performance.now() for sub-millisecond precision. Run a series (3, 5 or 10 trials) and see your average, median, best and worst in milliseconds, with a friendly benchmark. Typical adult visual reaction time is about 250–300 ms (faster for teens and young adults); anything under ~100–120 ms is anticipation, not a real reaction, and is flagged as “Too soon!”. Everything runs in your browser — only your best score is stored locally.

  • Random wait before green via the Web Crypto API — can’t be anticipated
  • Timed with performance.now() for sub-millisecond precision
  • Multi-trial series (3 / 5 / 10): average, median, best, worst + per-trial bars
  • Clicking before green = “Too soon!”, retried with no score
  • Typical adult ~250–300 ms · 100% in your browser, only best saved locally

What is

Simple Visual Reaction Time (SRT)

Simple visual reaction time is the elapsed time between the appearance of a single visual stimulus and a person’s motor response to it — here, the interval between the panel turning green and the click or key-press. It captures the whole perceptual-motor chain (light reaching the eye, neural processing, and the finger movement), so it differs from choice reaction time, which adds a decision between multiple stimuli or responses.

Generators

Related terms

Reaction timeChoice reaction timeLatencyAnticipationperformance.now()Reflex

Frequently Asked Questions

For a simple visual test, about 250–300 ms is average for adults; under ~215 ms is fast, and below ~100–120 ms isn’t a real reaction — it’s anticipation.

Simple visual reaction time averages roughly 250–300 ms in adults, with teens and young adults often a bit quicker (around 200–250 ms) and times slowing gradually with age. On AnyTool, an average under about 215 ms is rated “Fast!” and under 180 ms “Lightning”. The theoretical floor for a genuine human reaction is around 100–120 ms, so any click faster than that is anticipation rather than a real response — the tool flags those as “Too soon!” and does not score them.

It records a high-resolution timestamp the moment the panel turns green, another when you click, and reports the difference in milliseconds.

When the panel turns green, AnyTool captures the time with performance.now(), a monotonic high-resolution clock. When you click, tap, or press Space, it captures the time again and reports the difference, rounded to the nearest millisecond. The wait before green is randomized between 1.5 and 5 seconds using the Web Crypto API (crypto.getRandomValues), never Math.random, so you can’t feel the rhythm and jump early. Over a series of trials it shows your average, median, best and worst, since a single click can be lucky or unlucky.

The measured number includes your monitor refresh, mouse or touchscreen, and browser latency — a few to several tens of milliseconds on top of your real reaction.

Any browser-based reaction test measures more than your nervous system: the time for the green frame to actually appear depends on your monitor’s refresh rate, and your mouse or touchscreen plus the browser add input latency. Together that can add a few milliseconds to several tens of milliseconds (some TVs add 100 ms or more). That is why results are best treated as relative — ideal for comparing your own runs or competing on the same device — rather than a clinical figure. Warm up, run several trials, and use the average or median instead of a single click.

No. Every trial is timed in your browser; only your single best score is saved in local storage on your device, and nothing is uploaded.

AnyTool Reaction Time Test runs entirely client-side. The random delays, the timing, and all statistics are computed locally and never sent to a server, logged, or tracked. The only thing kept between visits is your single best score, stored in your browser’s localStorage on this device — you can clear it anytime by clearing site data. There is no account, no sign-up and no upload, and the page works offline once cached.

Detailed Explanation

Methodology

How the Reaction Time Test Measures Your Speed

AnyTool Reaction Time Test measures simple visual reaction time entirely in the browser. Each trial shows a red panel, then turns green after a random wait between 1.5 and 5 seconds; the delay is drawn from the Web Crypto API (crypto.getRandomValues via secureRandomInt with rejection sampling, never Math.random), so the moment is unpredictable and can’t be anticipated. The instant the panel turns green the tool records a timestamp with performance.now() — a monotonic, high-resolution clock — and records another when you click, tap, or press Space; the difference, rounded to the nearest millisecond, is your reaction time. Clicking before green cancels the pending green and is reported as “Too soon!”, retrying the trial with no score, and any sub-100 ms result that slips through is rejected as anticipation rather than a genuine reaction.

  • Random 1.5–5 s wait before green from crypto.getRandomValues — not Math.random
  • Timed with performance.now() (monotonic high-resolution clock), sub-millisecond
  • Reaction time = green timestamp − click timestamp, in milliseconds
  • Early clicks flagged “Too soon!” and retried with no score
  • Reactions under ~100–120 ms are anticipation, not real, and are rejected
How It Works

Multi-Trial Averages and Human Benchmarks

A single reaction can be lucky or unlucky, so the tool runs a configurable series of 3, 5 or 10 trials and reports the average, median, best and worst, plus a per-trial distribution. Simple visual reaction time averages roughly 250–300 ms in adults, with teens and young adults often quicker (around 200–250 ms) and times slowing gradually with age — by the seventies the average can be around 330 ms. AnyTool maps your average to a friendly label: under ~180 ms “Lightning”, under ~215 ms “Fast!”, under ~260 ms “Above average”, under ~300 ms “Average”, and slower than that a prompt to warm up and try again. The median is offered alongside the mean because it ignores outliers from a fumbled or anticipated click for a steadier picture, and your single best score persists in localStorage so you can chase a personal record.

  • Series of 3 / 5 / 10 trials with average, median, best and worst
  • Typical adult visual reaction time ~250–300 ms; teens/young adults faster
  • Reaction time slows with age — roughly 1 ms per year after the mid-20s
  • Median is shown because it ignores outlier clicks
  • Best score persists in localStorage to track a personal record
Limitations

Privacy, Display Latency and an Honest Caveat

Everything runs in the browser: the random delays, the timing and all statistics are computed locally and never sent to a server, logged, or tracked, and the page works offline once cached. The only thing kept between visits is your single best score in localStorage, which you can clear by clearing site data. Honestly, the measured number includes more than your nervous system — your monitor’s refresh rate determines when the green frame actually appears, and your mouse or touchscreen plus the browser add input latency, together adding a few milliseconds to several tens of milliseconds (some TVs add 100 ms or more). So results are best read as relative: great for comparing your own runs, tracking improvement, or competing on the same device, but not a clinical measurement. Warm up, run several trials, and use the average or median rather than a single click.

  • No uploads, logging or tracking — trials and timing stay in the browser
  • Only the best score is stored (localStorage); clearable anytime
  • Display refresh + mouse/touch + browser add latency to the raw number
  • Treat results as relative/for-fun, not a clinical reaction-time test
  • Works offline after first load (PWA-cached)
Reaction time test: in-browser (AnyTool) vs typical online testers
CapabilityAnyToolTypical online testers
Delay randomnessWeb Crypto CSPRNG, 1.5–5 s (unpredictable)Often Math.random
Timingperformance.now() (monotonic, sub-ms)Sometimes Date.now()
TrialsConfigurable 3 / 5 / 10 with full statsOften one shot or fixed 3–5
StatisticsAverage, median, best, worst + per-trial barsOften just an average
Early-click handlingFlags “Too soon!”, retries with no scoreVaries; sometimes scores it
Anticipation guardRejects sub-100 ms as not a real reactionUsually none
BenchmarkFriendly label vs typical human rangesSometimes none
HonestyStates display/input latency is includedRarely disclosed
PrivacyLocal only; just best score stored, no uploadMay transmit or log
Cost / signupFree, no signupOften ad-heavy or gated

AnyTool randomizes the wait with crypto-secure randomness, times with performance.now(), and keeps everything in your browser.