Mouse Polling Rate Test
Run a mouse polling rate test from browser-observed pointer movement. Review median Hz, intervals, timing variation, coalescing context, Pointer Lock, and local history—not raw USB telemetry.
- Browser-observed
- Pointer Lock only when requested
- Optional history in this browser
- No account or upload
Important
- Browser pointermove timing is scheduled and may be coalesced; it does not expose raw USB polling. Touch and pen samples are excluded, while some trackpads may appear mouse-like.
Start, then move the mouse inside this area.
Primary metric: Median browser event rate · 1000 / median accepted interval
Move a physical mouse continuously when possible. Some trackpads can appear mouse-like to the browser.
Browser-observed pointer timing (frozen after stop)
- Median browser event rate
- —
- Live browser event rate
- —
- Median interval
- —
- Mean interval
- —
- P95 interval
- —
- Minimum interval
- —
- Coefficient of variation
- —
- Peak 250 ms event density
- —
- Valid mouse moves
- 0
- Accepted intervals
- 0
- Zero-movement samples excluded
- 0
- Touch/pen samples excluded
- 0
- Unknown pointer-type moves
- 0
- Invalid intervals excluded
- 0
- Long gaps (>250 ms) excluded
- 0
- Coalesced events (separate)
- 0
- Coalesced dispatches
- 0
- Max coalesced per dispatch
- 0
- Pointer types observed
- —
- Elapsed capture
- —
- Capture state
- Ready
- Interruption
- —
1000 / median accepted interval
Throttled while capturing
Lower means less interval variation
Scaled browser-event window; not the primary rate
Not mixed into primary Hz
Recent accepted intervals (chronological)
No accepted intervals yet.
Primary Hz uses browser-dispatched pointermove timestamps from mouse-like pointer types. Browsers may schedule or merge events; this is not raw USB telemetry or a hardware certification.
No coalesced events were returned in this run. API support varies.
Theoretical hardware interval reference
These are theoretical device-report intervals for context only. They are not browser gaps, rating bands, nearest-target matches, or proof of a device setting.
- 125 Hz
- 8 ms
- 250 Hz
- 4 ms
- 500 Hz
- 2 ms
- 1000 Hz
- 1 ms
- 2000 Hz
- 0.5 ms
- 4000 Hz
- 0.25 ms
- 8000 Hz
- 0.125 ms
Local run history (aggregate only)
Only aggregate summaries from normally stopped runs stay in this browser. Raw movement samples, coordinates, event timestamps, intervals, and coalesced arrays are not persisted or uploaded.
No local history yet. Complete or manually stop a run with at least one accepted interval to save an aggregate summary.
How to use
- Choose a 3, 5, or 10 second capture. Pointer Lock is optional and only helps reduce cursor clipping during fast movement.
- Press Start and, after the capture begins, move a physical mouse continuously inside the focused test area. Avoid long pauses and background tab switches.
- Stop freezes the browser-dispatched samples. A blur, hidden page, or unexpected required Pointer Lock exit interrupts the run and does not save history.
- Review the median browser event rate, interval distribution, variation, excluded samples, and coalescing context. The result is not a USB or sensor report.
- Reset clears the current run but preserves aggregate local history. Repeat with the same browser, device, motion pattern, display, and system load for comparison.
What the result means
- Median browser event rate is 1000 divided by the median interval between accepted, nonzero, mouse-like browser pointermove dispatches. Mean, P95, and minimum intervals show other parts of the accepted timing distribution.
- Coefficient of variation summarizes interval variation. The current live rate is throttled from the latest capture snapshot, while peak 250 ms event density is a scaled browser-event window rather than the primary rate.
- Zero movement, invalid intervals, and gaps longer than 250 ms are excluded and counted. Touch and pen samples are excluded from primary stats; empty or unknown pointer types are accepted as mouse-like and counted separately.
- Coalesced event counts are displayed separately and never mixed into the primary Hz. They indicate browser-delivery context, not hidden USB reports or a certified device class.
Limitations
- Browser pointermove timing is scheduled and may be coalesced; it does not expose raw USB polling. Touch and pen samples are excluded, while some trackpads may appear mouse-like.
- The primary stream is browser-dispatched pointermove timing, not USB, HID, firmware, sensor, or device-report telemetry. Browser scheduling and coalescing can change what is observed.
- Operating-system load, browser work, CPU scheduling, display timing, movement pattern, focus, background activity, and device behavior can all affect the sample stream.
- Pointer Lock only reduces cursor clipping; it does not change the measurement into a hardware polling report. Permission denial continues as an unlocked run.
- Touch and pen samples are excluded, but pointerType is a browser label and some trackpads may appear mouse-like. This page does not certify a physical mouse.
- Zero movement, non-positive intervals, and gaps over 250 ms are excluded from interval statistics. A short or paused run can have no usable rate.
- A high peak or a lower browser-observed rate is not proof of a good, bad, failed, or misconfigured device. Do not map results to a nearest hardware tier.
- Fast device reports such as 2,000, 4,000, or 8,000 Hz can be under-observed by a browser event stream; theoretical intervals are shown only as context.
Troubleshooting
- Observed Hz is blank or low
- Move continuously with nonzero motion, keep the surface focused, and allow enough time for accepted intervals. Reset and repeat with the same motion path and conditions.
- A specified 1,000, 4,000, or 8,000 Hz mouse looks lower
- Browser dispatch, scheduling, coalescing, display timing, and system load can reduce observed events. This page cannot certify the USB or sensor rate.
- Coalesced events were returned
- Treat them as separate browser-delivery context. They are not added to the primary Hz and do not reveal raw USB reports; API support varies by browser.
- Pointer Lock is denied
- Continue unlocked or allow Pointer Lock and retry. It is only a clipping aid, so the browser-observed measurement remains available without it.
- Results vary between runs
- Use the same duration, mouse, browser, system load, focus state, and movement pattern, then compare aggregate rows in Local history. Variation is expected in browser timing.
Related tools
FAQ
What does this mouse polling rate test measure?
It summarizes the timing of accepted, nonzero pointermove events delivered to this browser while a mouse-like pointer is moving. It reports browser-observed event timing, not a hardware report rate.
Why can the result differ from a mouse specification?
A mouse specification describes device or USB behavior, while this page observes a browser event stream after operating-system and browser processing, scheduling, movement, and possible coalescing.
Does Pointer Lock make the result more accurate?
No. Regular Pointer Lock can reduce cursor clipping during fast movement. It does not expose raw USB reports or guarantee a hardware polling measurement.
Why are touch and pen events excluded?
The primary task is a mouse-like movement check. Touch and pen pointer types are counted as excluded; an empty or unknown pointer type is retained as mouse-like because browsers may omit the label.
Can a trackpad be tested here?
A trackpad can produce browser pointer events and may appear mouse-like, but the page cannot prove the physical device class or treat its result as mouse hardware evidence.
Are runs uploaded or saved as raw traces?
No. Normally stopped runs can save aggregate timing summaries in this browser. Raw movement samples, coordinates, timestamps, intervals, and coalesced arrays are not persisted or uploaded.