Why Do My CS2 Stats Differ Between Sites?
Updated and reviewed ยท csst.at glossary
CS2 statistics differ between FACEIT, Leetify and other trackers because they can cover different matches, periods and calculations. csst.at brings those sources together; it does not turn them into a single shared dataset. Start by comparing the match set and metric definition.
Which matches does each source cover?
- Steam: account data, playtime and cumulative counters, including historical data associated with app 730. These are not a list of analyzed competitive matches.
- FACEIT: FACEIT game statistics, with separate CS2 and CS:GO records. Advanced metrics and Elo history can have different coverage from basic totals.
- Leetify: the profile and analysis data returned for that player. Main and additional statistics load separately and can describe different samples.
- csstats.gg: the provider's tracked summaries and match history. Tracking status is not proof that every historical demo was processed.
- Scope.gg: current and previous analysis periods supplied by the provider. History-entry counts do not establish every aggregate's sample size.
- CSTracker: recent telemetry aggregates and separately returned match history. The telemetry sample count can be smaller than the table's coverage.
Example: a player can have 200 FACEIT matches but only 30 matches available in an analysis sample. A K/D of 1.20 in one sample and 1.05 in the other can both be correct.
Why can the same metric disagree?
Check the units, denominator and aggregation before comparing. Kills per round, kills per match and K/D are different metrics. Headshot kills as a share of kills differs from head hits as a share of shots. TTD measures first damage; TTK measures a kill.
Worked example: one match with 20 kills and 10 deaths has a 2.00 K/D; another with 10 kills and 20 deaths has a 0.50 K/D. Averaging those match ratios gives 1.25. Dividing the combined 30 kills by 30 deaths gives 1.00. FACEIT's average match K/D should therefore not automatically match a ratio calculated from aggregate totals.
Ratings also use different scales. Leetify's signed impact rating is centered around zero, while HLTV-style performance ratings use a different model. Aim and Utility scores belong to each provider's scoring system. Do not average these into a shared player rating.
Provider definitions can change over time. For instance, Leetify changed its aim visibility checks in August 2026. Old professional-player benchmarks may no longer be comparable.
How recent are the values on a profile?
The frontend can reuse a source response for up to two hours. Reloading a page can reuse the same response; expiry permits a fresh retrieval on a later request. Providers and the upstream API can have their own caches and processing delays.
Retrieved time is not provider update time. These responses do not expose a reliable provider-wide update timestamp. A match date says when a returned match was played; it does not date every aggregate or guarantee that the most recent match was processed.
When comparing players, use similar periods, modes, sample sizes and opponents. Check the provider link if a recent match is missing.
Stat colors and reported bans
Orange and red review highlights identify values that cross local or provider thresholds. Score colors indicate match outcomes, while rating colors indicate performance.
Steam reports account-level VAC and game ban counts. FACEIT supplies ban reasons and dates. A csstats.gg banned-player marker identifies a match containing a reported banned account; open the match link to inspect its participants. CSTracker supplies its own trust score and contributing factors.