Methodology

Exactly how ReactionLab measures, scores, and compares your reaction speed — transparently.

How timing works

We use the browser's high-resolution monotonic clock (performance.now), which is precise to fractions of a millisecond. The timer starts the instant the signal is rendered and stops the instant your input is registered.

Browser & display latency

Between our code and your eyes sit the browser, the operating system's compositor, and your display. A 60 Hz monitor refreshes every ~16.7 ms, and higher-refresh displays reduce this. These add a small, roughly constant offset to everyone's results.

Input latency

Mice, trackpads, touchscreens and keyboards each add their own delay. A wired mouse is typically faster than a touchscreen. This is why we record your input method and advise against comparing across very different devices.

Randomized delays

Each round waits a random interval (roughly 1.2–3.8 seconds) before the signal. This prevents anticipation — reacting before the signal is recorded as a false start and never counts as a valid attempt.

Number of attempts

A single attempt is noisy. We run five valid rounds and report both the average and the median, so one unusually fast or slow result doesn't distort your score.

Score calculation

Your Reaction Score (out of 1000) combines speed (your average), consistency (how stable your attempts are), and accuracy (false starts). Faster, steadier, cleaner sessions score higher. Thresholds are configurable and tuned over time.

Percentile methodology

Until we have enough real anonymous results, percentiles are labeled 'estimated' and derived from a reference distribution of simple visual reaction times. Once sufficient real data exists, we switch to ReactionLab's own empirical distribution.

Limitations

This is a browser-based performance test. It is not a medical, neurological, intelligence, or athletic assessment. Treat your results as a personal benchmark, not a diagnosis.