Refresh Rate Test
Browser frame delivery
{{ summaryLine }}
Measures frames delivered to this page, not the panel itself. A match is strong evidence the link runs at that rate; power saving, browser caps and VRR can lower or vary delivery.
{{ instructions }}{{ phase }}{{ exportStatus }}
Chart could not load.
{{ result.measured_hz === null ? 'Measured reference unavailable' : 'Solid teal: measured base '+fmt(result.base_ms,3)+' ms' }}; dashed amber: rated {{ fmt(result.rated_period_ms,3) }} ms. Bars count intervals in 0.5 ms bins. {{ isExample ? 'Example data, not this device.' : '' }}
{{ result.message }}
Method and limits
This measures browser frame delivery, not the panel. The base is the mean within 0.5–1.5× the median after warm-up. Whole-span fps includes delays; dropped frames use the measured base. RMS jitter includes long frames. Timestamp grid {{ fmt(result.timer_grid_ms,3) }} ms is an observed upper bound, not calibrated timer precision. A match strongly supports the link running at the rated rate. Background tabs, power saving, browser caps and VRR can limit delivery. Incomplete runs have no rate verdict. See the report for checks.
{{ exportStatus }}
| {{ h }} | Copy |
|---|---|
| {{ fmt(cell) }} | |
| No long frames in this run. |
{{ result.message }}
{{ exportStatus }}
| {{ h }} | Copy |
|---|---|
| {{ fmt(cell) }} | |
| No pacing rows available. |
{{ result.message }}
{{ exportStatus }}
| {{ h }} | Copy |
|---|---|
| {{ fmt(cell) }} | |
| No pacing rows available. |
{{ result.message }}
{{ runs.length }} runs in this tab. Change one cable, port, OS or browser setting, then Run again. Each run keeps its own settings; comparisons last only in this tab. Example rows are illustrative.
{{ exportStatus }}
{{ reportText }}Similar tools
- Monitor Test Check your monitor for dead pixels and uneven lighting with full-screen patterns, then record what you see in a report for your seller.
- What Is My Screen Resolution Check your current viewport and screen resolution, compare responsive breakpoints, and estimate device-pixel capture size from browser readings.
- Screen Size Comparison Compare TV and monitor screen sizes at a common scale, with viewing distance and picture fit checks to help plan your room or desk.
- Webcam Test Check your webcam before a call or exam with a live preview and measured frame rate, while camera images stay in your browser.
A monitor advertised as 144 Hz can still be configured to run at 60 Hz. The advertised figure describes a supported capability, while the active display mode determines the selected refresh rate at a particular resolution. Refresh rate, expressed in hertz (Hz), counts how often the display refreshes its image each second.
Frame rate describes how often a game or application produces a new frame, usually in frames per second (fps). These quantities need not match. With evenly delivered 60 fps content on a fixed 120 Hz display, each frame can remain on screen for two refreshes. A higher refresh rate creates more opportunities to show new information, but it does not make a game render faster.
The spacing between updates matters too. This is frame pacing. Regular 60 fps delivery has intervals of about 16.67 milliseconds, while regular 144 fps delivery has intervals of about 6.94 milliseconds. An occasional longer interval can produce a visible hesitation even when the average rate stays high. A steady lower rate and frequent interruptions therefore call for different checks.
Several setup choices can explain why a high-refresh display appears limited to 60 Hz:
- The operating system has selected a 60 Hz mode for that monitor.
- The graphics port, cable, dock, adapter or selected monitor input cannot support the desired resolution and refresh rate together.
- A laptop power-saving mode or browser energy-saving policy reduces the selected refresh rate or animation cadence.
- The browser window is on another display, so the observation concerns a different setup.
Variable refresh rate (VRR) allows a compatible display to change its timing to follow frame delivery. Changing intervals can therefore reflect intentional behavior. Operating systems can also adjust refresh according to activity to save power. Reduced motion has a different purpose: it expresses a preference for less nonessential animation and does not specify a target refresh rate.
A browser refresh test estimates cadence from animation callbacks, the browser's opportunities to update an animation before repainting. Their frequency often follows display refresh, but browser scheduling and power policies can limit it, and background tabs may stop receiving callbacks. Chrome Energy Saver can reduce animation delivery. WebKit has also documented power-related limits on web animation updates; Safari and iOS behavior depends on the device, browser version and power mode, so a universal frame-rate cap cannot be assumed. These observations help investigate a configuration or pacing problem. They cannot establish the panel's physical refresh rate, pixel response time or input latency.
How to Use This Tool:
Move the browser window fully onto the display you want to check. Keep the same resolution and browser when comparing setup changes.
- Enter the expected rate in Rated refresh rate (Hz), using the advertised capability or the rate you deliberately selected in display settings. Decimal values from 24 to 1000 Hz are accepted. Leave it blank to observe delivery without a rated comparison. If Start is disabled, correct the flagged setting or clear its override.
- Keep the default sampling period for a first run: 0.5 seconds of warm-up followed by 5 seconds of timing. In Advanced, Measurement duration accepts 3 to 30 seconds and Warm-up discarded accepts 0 to 3 seconds. A longer sample can help when too few callbacks are collected. Opening Advanced changes no setting; blank overrides use the stated defaults.
- Choose a motion pattern if you want a visual aid. Frame compass advances once per callback; Drift bar and Crossing paths follow elapsed animation time. Motion speed defaults to 1× and accepts 0.25× to 4×. It changes the visual aid, not the rate calculation.
- Select Start. The test requests fullscreen and falls back to filling the browser window if fullscreen is unavailable or refused. The display progresses from Warm-up to Measuring. The controls hide after inactivity; move the pointer, press a key or tap the three-dot corner handle to bring them back.
With a reduced-motion preference enabled, the pattern starts stationary while timing continues. Turn motion on enables the animation; Pause motion stops only the visual movement.
- Keep the tab visible and the browser focused until the selected sampling period finishes. A normal completion shows Done — exit to review; a rejected sample shows Incomplete with its reason. Then select Exit or press Escape to review the result. Leaving before the sampling period finishes also records an incomplete run.
Interpreting Results:
Observed is an estimate of the usual browser delivery cadence. Effective fps averages delivery over the entire retained time span, including delays. A high observed cadence with a lower effective average points toward interruptions within an otherwise faster rhythm.
- Matches means the estimated cadence falls within the chosen tolerance. A match is strong evidence that the setup is delivering at that rate, without certifying the panel itself. It can coexist with occasional long frames, so inspect Estimated drops and Longest frame if movement still stutters.
- Lower than rated or Higher than rated means the estimate is outside that tolerance. Recheck the entered rating and the active display mode before attributing the difference to hardware.
- Unstable pacing means delivery varies too much to identify one rate. Effective fps remains a useful overall average, but it does not establish a stable refresh rate.
- Incomplete withholds both the observed rate and effective fps. Timing records may remain visible as partial diagnostics; they do not turn the interrupted or unresolved sample into a valid rate comparison.
In Frame times, a narrow group of intervals indicates concentrated timing. Bars farther to the right represent longer waits. The solid teal reference marks the estimated base period when a stable rate is available; the dashed amber reference marks the period implied by the entered rating. Long frames locates delays, while Per-second pacing helps reveal whether they occurred in a short burst.
For a persistent low estimate, first check the operating system's selected monitor, resolution and refresh rate. Then check the monitor manual for the exact input in use and confirm that the graphics port, cable, dock and adapter support that mode. A direct connection can help isolate a dock or adapter limitation. Connect a laptop to power and compare with browser energy saving disabled. A low browser estimate alone does not identify a faulty cable.
The Troubleshooting report brings the observation, method limits and concrete setup checks together; copying or downloading it gives the same text. The three ledgers support row copy, CSV and DOCX, while the histogram supports PNG, WebP, JPEG and CSV for keeping evidence outside the tab.
Use Run again after changing one setting or connection, then compare the observations in Run comparison. Keep duration, tolerance and the long-frame threshold consistent. For variable timing, compare a fixed-refresh setting with VRR under otherwise similar conditions, then restore your preferred setup. Each run keeps its original settings; editing a field does not revise an earlier run. Entries labelled Example illustrate timing behavior and are not observations from your device.
Technical Details:
An animation-frame callback's timestamp describes browser animation timing around a rendering update. Successive timestamps provide intervals between callbacks, rather than a sensor reading of light emitted by the panel. The calculations below describe those intervals. Their filtering and acceptance thresholds are diagnostic choices made by this test, not display certification standards.
Formula Core
Timestamp values are rounded to the nearest whole microsecond, equivalent to 0.001 ms. Samples before the warm-up cutoff are excluded, and intervals use pairs of retained timestamps. Rounding to microseconds does not improve the precision supplied by the browser.
Let d be a positive interval in milliseconds and m the median of all positive retained intervals. The base period B is the mean of intervals from 0.5m to 1.5m, including both boundaries. In the equation, C indexes those selected intervals and K is their count. Taking the reciprocal converts that typical period into the estimated rate H, shown as Observed in Hz.
An isolated interval twice the usual length normally falls outside that averaging window. The estimated base can therefore remain near the usual cadence even though overall delivery slows. Effective fps F includes every retained interval: N is the number of retained timestamps and S is the elapsed time from the first to the last, in milliseconds.
There are N minus one intervals between N timestamps. Per-second averages use the same count-over-time principle, assigning each interval to the second in which it ends. The final row uses its actual shorter duration when the retained span ends partway through a second. The frame-time histogram groups intervals into 0.5 ms bins, including each lower edge and excluding its upper edge.
Long frames, estimated drops and jitter
A long frame reaches or exceeds the chosen multiple q of B. The default is 1.5 times B, with an adjustable range of 1.1 to 5. For each qualifying interval, the missed-frame estimate rounds its length to the nearest number of base periods and subtracts one. D sums those estimates over the long intervals L.
Here, rounding uses the nearest integer, with halves rounded upward. The estimate uses the observed base period, not the entered rated period. A steady slower cadence can therefore have no estimated drops. With a threshold below 1.5 times B, a long interval can contribute zero estimated misses. Raising the threshold can exclude delays from the drop count and can also change the stability verdict.
Root mean square (RMS) jitter describes how far positive intervals deviate from B, including long frames. For P positive intervals, the jitter J is expressed in milliseconds.
A few large delays can raise RMS jitter substantially. It is a timing summary, not a percentile, an input-latency reading or a pass mark for the monitor.
When a single rate is withheld
Completeness is checked before stability or comparison with the rating. These conditions explain why timing records can exist while a rate estimate is withheld.
| Condition | Outcome |
|---|---|
| The tab becomes hidden, the browser loses focus, or the test is exited before completion. | Incomplete. |
| Any callback gap reaches 250 ms or more, including during warm-up. | Incomplete. |
| Fewer than 120 timestamps remain after warm-up. | Incomplete. |
| The retained elapsed span is less than 1 second. | Incomplete. |
| Any adjacent timestamps become equal after microsecond rounding, including during warm-up. | Incomplete. |
| The inferred timestamp grid is 16 ms or greater, or no positive base period can be formed. | Incomplete. |
| More than 20% of positive retained intervals are irregular. | Unstable pacing, provided the run is complete. |
| More than 20% of positive retained intervals meet the long-frame threshold. | Unstable pacing, provided the run is complete. |
The timestamp grid g is an inferred common spacing in the recorded times, expressed here in milliseconds. Browsers may deliberately reduce timestamp precision for privacy. A very regular cadence can also resemble a coarse clock, so the grid is not a calibrated statement of timer accuracy. Repeated timestamps are rejected even when an average could suggest a familiar rate. When repeats occur, a candidate evenly spaced timing grid is fitted relative to the first timestamp; every timestamp must lie within ±2 microseconds of that grid for the fit to be used. Without repeats, the grid is the largest common step in the whole-microsecond intervals. Both checks use the full run, including warm-up. An exactly regular cadence can resemble a coarse clock and be conservatively refused when that step reaches 16 ms. This refusal avoids an unsupported rate claim.
An interval is irregular when its length, expressed in base periods, differs too much from the nearest whole number. The allowance includes the inferred timestamp grid so that small timing steps are not automatically treated as pacing failures.
Exactly 20% irregular or long intervals does not trigger the corresponding instability rule. Frequent delays or VRR can nevertheless prevent a useful single-rate estimate. The accepted 24 to 1000 Hz rating range describes input validation; it does not guarantee that every browser and display combination can be resolved across that range.
Comparison and rounding
For a complete, stable run, H is compared with the entered rating R. The tolerance p is a percentage, defaults to 2 and accepts values from 0 to 20. Both edges of the following match condition are included.
At 144 Hz with a 2% tolerance, the inclusive match band is 141.12 to 146.88 Hz. Values outside the band produce a lower or higher verdict. A blank rating produces Not judged while retaining the stable browser estimate. A complete, stable estimate near 59.94 Hz therefore matches a 60 Hz rating at the default tolerance. Any nearby common rate mentioned in the message is chosen by the smallest absolute difference in Hz, with ties going to the lower common rate. It is a guide and does not replace the calculated estimate.
The comparison rounds the entered rate to six decimal places and the tolerance percentage to four. Long-frame comparisons round the multiplier to six decimal places. The comparison uses integer-microsecond interval totals and rational cross-products, so an exact tolerance edge is included without relying on a rounded displayed rate. Verdicts are determined before display rounding. Most values are shown to at most two decimal places, with selected timing captions using three, so a displayed boundary value can conceal a small difference that changes the verdict.
Privacy Notes:
Timestamp samples, run comparisons and report details are processed locally in the browser and are not uploaded by the test. Runs remain in the current loaded page and disappear when it reloads or when you clear them. Only settings are synchronized to the page address after you edit them; loading the page never rewrites the URL. Sharing that address does not share your recorded observations. Download the Troubleshooting report before reloading if you need to keep a record.
Displaying the chart can load code from an external content provider; that request does not send the collected timing samples. Timing requires no camera, microphone or screen-capture permission. The fullscreen request changes how the test is displayed and does not record the screen.
Worked Examples:
A 144 Hz setup delivering near 60 fps
Enter 144 Hz and keep the default tolerance. A complete, steady browser sample with intervals averaging about 16.67 ms gives an observed estimate near 60 Hz and Lower than rated. It can still show zero estimated drops because those intervals are regular relative to their own base. Check the selected display mode and connection's supported modes before assuming the monitor is defective.
A matching rate with one delayed update
For a 120 Hz rating, consider a five-second retained sample containing 599 intervals, with one interval near 16.67 ms and the others near 8.33 ms. The usual cadence remains approximately 120 Hz, so the default verdict is Matches. Effective delivery is 119.8 fps and the missed-frame estimate is one. Inspect Long frames to locate that delay, then compare a repeat run under the same conditions.
References:
- High Resolution Time, W3C, Working Draft, September 1, 2026.
- VESA Adds Adaptive-Sync to Popular DisplayPort Video Standard, VESA, May 12, 2014.
- Window: requestAnimationFrame() method, MDN Web Docs, August 21, 2026.
- Frame Pacing library, Android Developers, February 26, 2026.
- Change the refresh rate on your monitor in Windows, Microsoft Support.
- If your external display is dark or low resolution, Apple Support, April 6, 2026.
- What developers need to know about Chrome's Memory and Energy Saver modes, Chrome for Developers, December 8, 2022.
- Controlling Animation Frame Rate, WebKit, explainer proposal.
- prefers-reduced-motion CSS media feature, MDN Web Docs.