How to Analyze CS2 Frame-Time CSV Files (FPS, P99 and 1% Lows)
A practical, measurement-first guide to capturing CS2 frame times and interpreting average FPS, 1% lows, P99, spikes and A/B benchmark comparisons.
Use this when: CS2 reports a high average FPS but movement still seems uneven, or a settings change seems to improve some rounds but not others. The goal is to measure frame delivery rather than guess at a component failure.
1. Capture the right information
CS2’s in-game telemetry HUD shows current frame timing and network conditions, but does not itself provide a general-purpose per-frame CSV export. For deeper analysis, use a suitable third-party capture tool with a documented CSV format, such as Intel’s open-source PresentMon project. Record your own system under conditions you can repeat. Verify you captured the Counter-Strike process rather than the desktop or another game.
A useful CSV has one row per frame and a clearly labeled interval such as MsBetweenPresents (milliseconds), MsBetweenDisplayChange (milliseconds, a different measurement), or FrameTime (ms). A spreadsheet containing only average FPS is insufficient for a timeline or percentile calculation.
2. Understand the three most useful numbers
Average FPS = total recorded frames divided by summed frame durations in seconds. It represents a mean throughput, not consistency. P99 frame time is the value at the 99th percentile of measured frame intervals; lower is generally better when tests are comparable. FragClinic 1% low FPS divides 1,000 by the mean interval of the slowest 1% of frames, using a defined method that may differ from other programs.
3. Spot slow frames without overinterpreting them
A mostly flat trace with several tall peaks suggests an uneven delivery pattern. The workbench flags intervals above the greater of 16.667 ms or 2.5 times the capture’s median interval. This is a descriptive heuristic, not a medically precise diagnosis of “stutter.” A large peak might occur during an unusual in-game event, alt-tab, or loading sequence.
4. Compare like with like
Use the same map, route, graphics settings (apart from the single tested variable), resolution and background activity. Compare captures of similar duration where possible. Collect several repetitions when differences are small. A single improvement is not proof that the changed setting caused it.
Open the free CS2 Performance Analyzer to import two CSV files, see their frame-time traces, and download a local summary report. For upstream/downstream missed-tick symptoms, use the telemetry interpreter instead; frame times are not a network diagnostic.
Sources and method
PresentMon CSV column documentation and Valve: Source 2 Telemetry HUD. Interpretations and formulas above are specified for this website. Updated November 2026.
Use the measurements above to form a testable hypothesis, not to guess which component is broken. Return to our free tools for another controlled check.
Open the toolkit ↗