Refresh Rate Test
Estimate the refresh rate reaching this browser window from requestAnimationFrame timing. Review median frame interval, timing consistency, interruptions, and repeatable local results without treating browser Hz as panel telemetry.
- Browser-observed
- No device permission
- Optional history in this browser
- No account or upload
Important
- This browser-observed estimate is not direct panel telemetry and cannot certify a monitor, cable, GPU, or FreeSync/G-Sync/VRR state.
This browser-observed estimate describes presentation timing reaching this window. It is not a direct reading of the monitor panel's advertised maximum refresh rate.
Browser refresh estimate
—
1000 ÷ median robust-filtered interval
Measurement result
- Session
- Ready
- Run target
- —
- Completion
- —
- Estimated refresh rate
- —
- Warm-up duration
- 0 ms
- Measurement elapsed
- 0 ms
- Median interval
- —
- P95 interval / MAD
- —
- Stability
- —
- Raw post-warmup
- 0
- Filtered estimate samples
- 0
- Excluded outliers
- 0
- Long frames (raw)
- 0
- Severe stalls (raw)
- 0
- Variable frame timing
- Not indicated
- Interrupted reason
- —
Primary result from the same robust median-filtered interval estimate shown above
P95 is a slower extreme interval. MAD is median absolute deviation; lower means more consistent intervals.
1 − (MAD ÷ median interval); higher means more consistent timing. This page-derived 0–1 indicator has no universal cutoff.
Excluded only from the robust refresh estimate; raw data remains
Browser-observed presentation intervals
Browser timing interruptions, not physical dropped-refresh counts
Variation can have several causes; it does not detect VRR, FreeSync, or G-Sync
Local run history (aggregate only)
Only runs that complete their selected 3s, 5s, or 10s measurement window and have at least 3 usable filtered samples are saved as clean aggregate comparisons. Manual Stop and interrupted runs are not saved. Older entries without full-window identity are labeled legacy; raw frame timestamps and interval arrays are never persisted or uploaded.
No local history yet. Complete a meaningful run to save an aggregate summary.
How to use
- Move the entire browser window onto the display you want to check before starting; do not straddle two monitors.
- Note the refresh mode selected for that display in Windows or macOS. Compare the result with that current mode, not only the monitor’s advertised maximum.
- Close or reduce heavy tabs and background work, and keep the same browser and power state when comparing runs.
- If you want a larger inspection surface, enter Fullscreen before Start. Fullscreen is locked while a measurement is active.
- Choose a 3s, 5s, or 10s measurement window.
- Keep this tab visible and focused. Do not move the window, resize it, or change display settings while it runs.
- Click Start and let the 500 ms warm-up pass; warm-up frames are not included in the formal result.
- Let the selected measurement window finish for a clean comparison run. Stop remains available for user control, but an early Stop produces a partial result that is not saved to history.
- Read the robust estimate with median interval, P95, MAD, sample counts, long frames, and variable timing context.
- Compare a full-window result with the selected OS display mode, then repeat under the same display, browser, focus, power, and duration when needed. Full-window aggregate summaries appear in Local run history.
What the result means
- The primary estimated refresh rate is 1000 ÷ the median of robust-filtered post-warm-up requestAnimationFrame intervals.
- Median interval is the typical time between browser-observed frames; 16.7 ms is near 60 Hz and 8.3 ms is near 120 Hz, without certifying the panel.
- P95 is the slower tail of the filtered interval set. MAD (median absolute deviation) shows how far intervals typically vary around their median.
- Stability is a page-derived interval-consistency indicator: 1 − (MAD ÷ median interval), clamped to 0–1. It has no universal good/bad cutoff and is not a confidence score.
- Raw post-warm-up is every retained interval. Filtered estimate samples are the values used for the robust median; excluded outliers remain represented in raw counts and timing diagnostics.
- Long frames and severe stalls are browser interval observations. They are not physical dropped-refresh counts, guaranteed panel frame skips, or game dropped frames.
- A value such as 59.94, 119.8, or 143.8 can be close to a nominal mode while still reflecting timing and scheduling variation. DeviceMetrik keeps the observed estimate instead of snapping it to a marketing label.
- Compare the estimate with the refresh mode currently selected for this display in Windows or macOS. A display capable of 240 Hz can be intentionally running at 144 Hz.
- Variable frame timing can be consistent with VRR, browser scheduling, power behavior, compositor work, or load. This page does not detect FreeSync, G-Sync, or VRR activation.
- Refresh rate describes presentation cadence; FPS describes frames an application or game produces. Use FPS Test for a browser workload, not this page’s estimate, when investigating game FPS.
- Automatic completion means the full selected 3s, 5s, or 10s measurement window finished. An early Stop freezes partial browser-timing evidence, but it did not complete the selected window and should not be treated as a clean comparison run.
- Hidden, blurred, materially resized, or fullscreen-changed runs are interrupted and should be repeated rather than compared as clean measurements.
- Local history stores only full-window aggregate summaries for comparison in this browser. Manual Stop and interrupted runs are not saved; raw frame timestamps and interval arrays are not persisted or uploaded.
Limitations
- requestAnimationFrame generally follows the display path, but this is browser- and compositor-observed timing rather than panel telemetry.
- Browsers throttle or pause animation in hidden and background tabs, so a background result does not describe the display normally.
- Browser scheduling, system load, hardware acceleration, other windows, and power-saving behavior can change frame delivery.
- Variable or dynamic refresh modes can change timing while a run is active; observed variation does not identify the underlying feature.
- With multiple displays, the page cannot automatically know which physical panel you mean. A window spanning displays can mix presentation conditions.
- Moving the window, resizing it, changing devicePixelRatio, or changing display settings can create a different measurement environment and interrupt the run.
- The result can differ across browsers, versions, operating systems, webviews, and device scheduling conditions.
- This page cannot read EDID, the monitor model, the advertised maximum, or a physical panel refresh counter.
- It cannot directly detect physical panel refreshes, prove frame skipping, or identify a faulty cable, GPU, port, dock, adapter, or monitor.
- It is not a game FPS benchmark, pixel response-time test, ghosting test, tearing diagnosis, or input-lag measurement.
- A browser estimate is evidence about this local run. It is not a hardware-health certificate or a universal pass/fail decision.
Troubleshooting
- A 144, 165, or 240 Hz display reads near 60 Hz
- Check the current mode for the correct display in Windows or macOS, move the whole window onto that display, keep the tab focused, and compare without power-saving changes. The browser result cannot identify which connection component is limiting delivery.
- The result changes between runs
- Use the same display, window placement, OS mode, browser, power state, duration, and background workload. Close heavy work, let startup settle, and repeat before changing hardware.
- The value is 59.94, 119.8, or 143.8 instead of a round number
- Keep the observed value. Small fractional differences can come from nominal timing and browser scheduling; compare it with the selected OS mode instead of forcing it to 60, 120, or 144.
- The wrong monitor was measured
- Before Start, move the entire browser window to the target display and keep it there. Run a fresh measurement for each monitor; do not compare a window straddling two displays.
- The run says it was interrupted
- Start again after returning to the page. Keep the tab visible and focused, do not resize or move the window, and do not change display settings during the measurement.
- The result says Stopped early or partial
- The browser timing collected before Stop remains visible, but the selected measurement window did not finish. Run the same duration to automatic completion before using it as a clean comparison.
- The tab was hidden or the window lost focus
- Browsers can throttle background animation. Reset and run again with this tab in front; an interrupted run is not saved as a normal history result.
- Fullscreen was switched during a run
- Use Fullscreen before Start when desired. The control is unavailable while measuring because entering or leaving fullscreen changes the viewport and invalidates the clean run.
- The reading is lower on battery or in a low-power mode
- Repeat with the same power state, then compare a normal-performance run if that is relevant to your question. Power behavior can change browser frame delivery without proving a panel fault.
- The browser result is correct but a game is lower FPS
- Refresh rate and application FPS are different measurements. Check the game’s workload, frame cap, synchronization, and performance settings; use FPS Test for a controlled browser workload.
- Timing variation is large or sample count is low
- Keep the page foregrounded, reduce background activity, choose a longer available window, and repeat. Treat a low-sample or highly variable run as context to investigate, not a hardware verdict.
Related tools
FAQ
What is refresh rate?
Refresh rate is the number of display updates per second, expressed in hertz (Hz). This page estimates the presentation cadence reaching the browser window; it does not read a physical panel counter.
How does a browser measure refresh rate?
The browser calls requestAnimationFrame before repaints and supplies high-resolution timestamps. DeviceMetrik measures the intervals after a 500 ms warm-up, filters robust outliers, and calculates 1000 divided by the median interval.
Is this my monitor’s true hardware refresh rate?
No. It is a browser-observed estimate of frame presentation timing. The page cannot read EDID, the panel’s advertised maximum, or direct physical refresh telemetry.
Why is my result 59.94 instead of 60?
Browser timing does not always land on a perfect integer. A value close to 60, 120, or 144 can reflect nominal display timing plus scheduling variation, so the observed decimal is kept instead of being snapped to a label.
Why does my high-refresh monitor show about 60 Hz?
First check the mode selected for the target display in Windows or macOS, then check window placement, tab focus, browser restart, power behavior, and the display connection. A browser result can show what reaches this window, but cannot identify the exact limiting component or prove a hardware fault.
How is refresh rate different from FPS?
Refresh rate describes how often the display path can present updates; FPS describes how many frames an application or game produces. A game can run at 60 FPS while this browser window receives a higher presentation cadence. Use FPS Test for a page workload.
Can this detect VRR, FreeSync, or G-Sync?
No. Variable frame timing can have several causes, including VRR, scheduling, power saving, compositor work, and system load. This page does not identify a VRR technology or certify that it is active.
Does fullscreen improve accuracy?
Fullscreen can make it easier to keep the target display clear, but it is only an optional setup aid. Enter it before Start; switching fullscreen during a run changes the viewport and interrupts the clean measurement.
Why do two monitors give different results?
Displays can use different selected refresh modes and presentation conditions. Move the whole browser window to one target display, run a clean measurement, then repeat separately on the other display.
Can this tell me my monitor’s maximum Hz?
No. It cannot read the monitor’s specification or available modes. Compare the estimate with the mode currently selected in the operating system, not only with the highest number on the box.