Mouse · browser diagnostics
Mouse polling rate: browser observations
See how mouse movement reaches this page. Dispatches and coalesced positional samples are different observations—not a certification of the USB rate configured in your mouse software.
Observe mouse reporting
Choose Start, then move in steady circles inside the area for several seconds. No clicking is needed. Keep this tab visible and focused. Stop or Escape ends capture; it never resumes automatically.
Checking browser support…
Ready. Nothing is collected until you choose Start.
Mouse movement area
Start a deliberate capture. No pointer lock, animation-rate estimate or background collection.
Mouse-class input only: pens and touch are ignored. Trackpads can appear as a mouse; this page cannot identify physical hardware. Keyboard and touch can operate the controls, not simulate mouse cadence.
Dispatch cadence
Unknown
No active capture. Start, then move a mouse inside the area.
- Retained timestamps
- —
- Retained span
- —
- Session timestamps seen
- —
- Capacity evictions
- —
- Visible timestamp grid
- Unresolved
Clock faults this session: 0 invalid · 0 repeated · 0 out of order.
Coalesced sample cadence
Unknown
No active capture. Start, then move a mouse inside the area.
- Retained timestamps
- —
- Retained span
- —
- Session timestamps seen
- —
- Capacity evictions
- —
- Visible timestamp grid
- Unresolved
Clock faults this session: 0 invalid · 0 repeated · 0 out of order.
No sample provenance yet.
Lists used: 0 · empty-list fallbacks: 0 · unavailable: 0 · failed calls: 0.
| Interval | Dispatch | Samples |
|---|---|---|
| Minimum | — | — |
| Median | — | — |
| 95th percentile | — | — |
| Maximum | — | — |
The table shows positive intervals only; zero/invalid/reversed timestamps are counted as clock faults above, not quietly converted to a rate. Values remain unqualified when cadence is unknown.
Rolling retention: up to 2 seconds and 8,192 timestamps per stream. Session counts and capacity evictions disclose data outside that window. UI refreshes at most four times a second; it does not set mouse Hz. Local session memory only: no event traces are saved or uploaded by this tool.
What the two cadences mean
Dispatch cadence counts the selected browser event stream using each event's own timeStamp. Automatic mode selects pointerrawupdate when advertised in a secure context; otherwise it uses pointermove. Only one is listened to at a time. Raw updates can still be batched. A lower dispatch cadence can reflect browser delivery rather than your configured report rate.
Only dispatches with changed browser positions, plus the initial position anchor, are counted. Unchanged positions are counted separately as ignored input. Coordinate rounding and slow motion can hide movement reports, so keep moving; this is not a physical speed or sensor measurement.
Coalesced sample cadence uses the timestamps in each nonempty getCoalescedEvents() list instead of adding the parent again. An empty, missing or failing list falls back to the parent exactly once for sample counts. If any such fallback occurs, a separate coalesced cadence remains unknown—even if the sample and dispatch counts match.
For either qualified stream, cadence is 1000 × (N − 1) / (last timestamp − first timestamp)in Hz. The interval table shows the minimum, median, 95th percentile and maximum of positive consecutive intervals, using the lower ranked observation for percentiles. It does not average reciprocal intervals or round a result to a marketed rate. Long pauses inside a retained window remain in the distribution; this is not a peak-rate contest.
Why a result can stay unknown
You need at least 500 ms of retained movement and 32 intervals. Stationary input or no movement for 500 ms makes live cadence unknown, not 0 Hz. Invalid, repeated or backward timestamps leave cadence unresolved for that session; restart rather than treating dropped timestamps as valid data. Pens, touch, other pointer IDs and script-dispatched events do not become mouse evidence.
Browsers can reduce clock precision. We check for visible timestamp grids of 100, 10, 1, 0.1 and 0.01 ms relative to the first retained timestamp. If the median interval spans no more than four steps of the largest matching grid, cadence is conservatively unresolved. This heuristic can also suppress genuinely regular high-rate input. No matching grid is not proof of a precise clock; decimals are not calibration. This route does not request the precision tests' cross-origin isolation headers.
Support detection does not prove delivery. If raw mode stays empty while you move inside the area, Stop and select the pointermove fallback. Neither stream reveals which physical device produced a mouse-class pointer. Trackpads, OS settings, browser batching, system load and privacy protections can change these observations.
Bounded, deliberate capture
Each capture ends after 10 seconds, on Stop or Escape, or on blur, hidden-page, pointer-cancel or page-leave events. Leaving the route removes listeners and timers. No background resume, pointer lock, persistent identifier or trace upload is used. Retention is the last two seconds with a maximum of 8,192 timestamps per stream; at high rates the capacity may shorten the span. Session counts include rejected timestamps and capacity evictions are shown separately.
At most 512 samples per batch and 200,000 sample visits per session are processed. Exceeding a limit ends capture explicitly without accepting a partial batch. Input capture is separate from the four-per-second UI refresh; animation callbacks and handler speed never supply mouse Hz.
Use this alongside the guides
A nominal polling interval is not total click latency. Read the mouse buying and settings guide for that distinction, and the input-method comparison before changing your reaction-test baseline. A repeated change here is an observation to investigate, not proof of a faster switch, better sensor or faster nervous system.
Keep your setup fixed when using the visual reaction test or Arena training. Those include human performance and other device delays; this page does not isolate click latency either. See how we measure for the wider timing boundary.
Primary API references
- MDN: coalesced positional samples — a merged event and its samples are not two independent streams.
- MDN: pointerrawupdate — limited support, secure contexts and possible coalescing still apply.
- MDN: movementX units — browser movement units are not a calibrated physical distance or DPI measurement.