What CapFrameX Performance Metrics Mean: Frametimes, FPS, Median, Percentiles, and x%-Low
Updated
CapFrameX reports several performance metrics because no single number describes how a game feels. FPS tells you the average throughput, frametimes tell you the consistency, the median and percentiles describe the distribution, and the x%-low figures summarize the worst part of that distribution. If you only look at average FPS, you can miss stutter that a frametime or 1%-low reading would expose. The explanations below apply to any CapFrameX capture, since the tool is built on Intel's PresentMon for frametime capture and uses Rivatuner Statistics Server for its overlay.
Frametimes vs. FPS: two views of the same data
Frametime is the time between two consecutive frames, usually measured in milliseconds. FPS is simply the reciprocal of frametime, scaled to one second:
- 16.7 ms per frame ≈ 60 FPS
- 8.3 ms per frame ≈ 120 FPS
- 33.3 ms per frame ≈ 30 FPS
Because the relationship is non-linear, a single long frame does not move average FPS much, but it is very visible as a hitch. That is why CapFrameX keeps the raw frametime series and derives FPS from it rather than the other way around.
CapFrameX's own blog notes a related quirk: analysis can show FPS values lower than what you see in-game. This happens because the tool measures the actual presented frames over the captured interval, including frames that were dropped or delayed, while an in-game counter may report a different sampling window.
Median and percentiles
Once you have a list of frametimes, you can describe its distribution:
| Metric | What it represents |
|---|---|
| Average FPS | Total frames divided by total time; sensitive to outliers but hides them |
| Median (50th percentile) | The middle frametime; half the frames were faster, half slower |
| Percentiles (e.g. 95th, 99th) | The frametime below which that percentage of frames fall |
The median is useful because it is not dragged around by a few very long frames the way the average is. If your average FPS looks fine but your median frametime is noticeably higher, the average is being propped up by a burst of fast frames while most of the session ran slower.
Percentiles work the same way in reverse for frametimes: the 99th percentile frametime is the value that 99% of frames stayed under, so it captures the slow tail. A low 99th percentile frametime means even your worst frames were not far from the rest.
What x%-low means
The x%-low metric (commonly 1%-low and 0.1%-low) is the average FPS computed from only the slowest x% of frames. It answers the question: "How bad were the worst moments?"
- 1%-low: average FPS of the slowest 1% of frames. A good indicator of occasional stutter.
- 0.1%-low: average FPS of the slowest 0.1% of frames. Sensitive to rare, severe hitches such as shader compilation stalls or asset streaming spikes.
A system can post a high average FPS and still have a poor 1%-low if it hitches regularly. Comparing average FPS against 1%-low is one of the fastest ways to judge whether a frame rate is smooth or merely high on paper.
How to use these together
- Capture a run in CapFrameX while playing the scene you care about.
- Look at average FPS and median frametime first to gauge the typical experience.
- Check the 1%-low and 0.1%-low to see how the worst frames compare.
- If average FPS is high but 1%-low is far below it, investigate the frametime graph for spikes rather than chasing a higher average.
The same logic applies when comparing two configurations: match the scene, capture length, and settings, then compare the full set of metrics rather than a single headline number.