⚡ MilliReflex

How this test measures, and how the numbers are computed

Every figure this site shows can be recomputed from what is written below. Nothing here asks you to trust us, and nothing here leaves your device — the site has no backend for a score to travel to.

1. What is timed

The clock starts at the frame in which the panel turns green, using performance.now(), and stops at the first pointerdown event on the panel. The difference, rounded to a whole millisecond, is the round. The input is deliberately not a click: pointerdown fires before the click and before any synthetic mouse event, and the panel calls preventDefault() so a fast tap neither selects text nor triggers double-tap zoom.

A green wait is armed after a random delay of 1.5 to 4.5 seconds (DELAY_MIN 1500 ms, DELAY_MAX 4500 ms), so the moment cannot be predicted. Every round is measured the same way on every device; no device-specific constant is applied at test time.

2. Rounds, and the rounds we throw away

A set is five rounds, and the panel's figures are computed on those five. Three situations void a round instead of scoring it, and none of them consumes one of the five slots:

  1. 1False start. A tap during the red wait voids the round. Anticipation is not reaction.
  2. 2Tab switched. If the page becomes hidden while a wait is running, that wait is void — a backgrounded tab throttles its timers, and returning to tap would score free milliseconds.
  3. 3Timer stalled. If the red wait runs longer than its allowed maximum plus 700 ms of slack, the round is void without you tapping at all, because a throttled timer is not a stimulus.

There is no outlier removal inside a valid set: five rounds are reported as they were tapped, including the slow one. That is why the panel shows the median beside the average.

3. Why a browser score sits above a laboratory one

Between the frame being drawn and the event arriving, a screen and an input path add delay this test cannot avoid. We treat it as a range of 20 to 60 ms and subtract 40 ms when comparing a browser score to the laboratory reference. The range is published rather than a single precise constant because a precise constant would be a false claim: refresh rate, touch sampling and OS input path differ per device. Measuring your own device's contribution is a planned feature, not a present one.

4. The reference numbers

Woods DL, Wyma JM, Yund EW, Herron TJ & Reed B (2015), Factors influencing the latency of simple reaction time, Frontiers in Human Neuroscience 9:131. Experiment 1: 1,469 adults aged 18 to 65, 120 trials each, a visual stimulus and a mouse-button press on a laboratory rig. Per-group means (Table 2): 18–24 217.9, 25–31 221.0, 32–38 224.8, 39–45 227.7, 46–51 233.6, 52–58 236.4, 59–65 239.1 ms; whole sample 231.0 ms; the spread of participants' averages around the mean is SD = 26.8 ms. Ages outside 18–65 get no number at all, because that study measured none.

5. The three formulas

Write S for your five-round mean in ms, M for the mean of the group you selected, and SD = 26.8.

The percentile assumes each age group's times follow a normal curve. That is a modelling choice, not a measurement: the study published means and a spread, not a distribution per group. A five-round browser set is also a noisier instrument than a 120-trial laboratory run, which is why the verdict band around "average" is wider than half a spread.

6. How your history is grouped

Scores are stored in your browser under tapreflex.reaction.v1 as a flat list of rounds, newest last, capped at the last 200 rounds — about 40 tests. There is no marker saying which rounds belong to one test, and none is added, so the trend view infers it: rounds are taken in order, and a new group starts when the gap to the previous round exceeds 90 seconds or when the group already holds five rounds. A group of fewer than five is listed and marked partial, and is never plotted. The 90-second figure is a convention of this page, not a property of human reaction: pause long enough mid-set and your test will be split in two.

7. What a trend line does not mean

Repeated reaction tests get faster partly because the task becomes familiar — you learn the wait, the panel colour, the timing of your own finger. That practice effect is not distinguishable here from any change in alertness, sleep, caffeine or health, and this test measures none of those. Read the line as "how your taps on this device went", not as a measurement of your nervous system. If a clinician asked you to track reaction time, use a clinician's instrument.

This is a static site: no accounts, no forms, no analytics script, no admin panel. The only inputs are the age group you pick and your own taps, both kept in your browser. See privacy and how we decide what to publish.