—frames a second your browser draws, measured with requestAnimationFrame
Measurement 1 · Your input device
What your device reports. Drag or hover on the pad.
idle
000.0Hznothing measured yet
DRAG OR HOVER HEREEach bright dot is one real reading from your hardware. Gaps between dots are readings you never got.
Gap between samples · tall spikes are missed readings—
By devicePeakRangevs frames
Measurement 2 · Your scrolling
What the screen actually draws. Scroll the list.
idle
000.0Hzscroll the list below
SCROLL THIS LISTEach step is one time the picture actually moved. Flat stretches are frames that never changed.
Gap between updates · spikes are pauses—
While usingDrawnRangeDropped
Share your result
Nothing is uploaded. Every option here is built on your device. The text and the image do name your OS, browser and screen, so read them before posting.
The report
Select it and copy by hand if your browser refuses the clipboard.
Your screen redraws at one rate. Your touch digitizer measures your finger at another. A scroll is two different animations joined at the moment you let go — one bound by your hardware, one bound by the page. This measures all of it, on your device, in your browser. Nothing leaves the page.
Measure once, copy the report from the Share sheet, change one thing, reload and measure again. Paste the earlier report here to get a side-by-side difference. Use it to test a browser setting, a different browser, or the same page on another device.
Frequently Asked Questions
What is a touchscreen sampling rate?
The sampling rate, or report rate, is how many times per second the touch digitizer measures your finger's position. It is set by the touch controller firmware. The digitizer and the display panel are separate parts, so a 120 Hz screen can ship with a 60 Hz or 100 Hz digitizer.
Why is 100 Hz touch on a 120 Hz screen worse than 60 Hz touch?
When the sampling rate divides evenly into the refresh rate, repeated frames land in a regular pattern the eye reads as slight softness. When it does not divide evenly, the repeats drift, producing a beat frequency equal to the difference between the two rates. A 100 Hz digitizer under a 120 Hz panel beats at 20 Hz, which reads as periodic hitching rather than uniform softness.
What is the difference between the held and coasting phases of a scroll?
While your finger is down, scroll position follows your finger and is capped by the digitizer's sampling rate. After you release, the browser runs a momentum animation on the compositor thread, which can produce a new position every frame. Measuring the two separately shows whether stutter comes from your hardware or from the page.
Can I change my scroll frame rate?
The momentum animation already targets your display refresh rate. It falls short when the page forces scrolling onto the main thread, usually through non-passive touch listeners, heavy paint work, or fixed backgrounds. Those are page problems rather than settings, so a heavy site coasts worse than a plain one on identical hardware.
Why does a trackpad read differently for cursor movement and scrolling?
They are two different event streams from the same device. Cursor movement produces pointer events, which the browser can batch so several raw readings arrive behind one frame. Scrolling produces wheel events, which are delivered separately. A trackpad may also genuinely report at a different rate for a cursor gesture than for a two-finger scroll. The two figures are labelled separately for that reason, and a difference between them is real, not an error.
What is a stale frame?
A frame the display drew where the scroll position had not changed since the previous frame. Nothing was dropped and the frame rate looks fine, but the eye sees the same picture twice. A high stale count alongside a healthy frame rate is the signature of input starvation rather than a slow renderer.
How does this measure the real sample rate?
The browser batches raw input into one pointermove per rendered frame, so counting those events only tells you the frame rate. Calling getCoalescedEvents on each one returns every raw sample behind it, each carrying its own timestamp. The gaps between those timestamps are the report rate.
Is this the same as a mouse polling rate test?
Yes. Polling rate is the mouse world's name for report rate: how many times a second the device tells the computer where it is. A 1000 Hz mouse and a 240 Hz digitizer are measured the same way here. A mouse often reads far below its rating in a browser, because the browser delivers one pointer event per frame and this page has to read the raw samples behind it.
Does this send my data anywhere?
No. Everything runs in the browser. No pointer data, no results and no device details leave the page.