Collect available evidence
Use existing FACEIT match statistics, public Steam creation dates, and Leetify analytics. No additional provider calls are needed for this calculation.
A closer look at the numbers, with every step explained. Our statistical profile is a descriptive index of elevated performance signals. It is not a cheating detector, a player verdict, or a percentage chance of cheating.
Use existing FACEIT match statistics, public Steam creation dates, and Leetify analytics. No additional provider calls are needed for this calculation.
Exclude missing, out-of-range and nonnumeric values. Deduplicate recent match IDs. Require 20 lifetime FACEIT matches, 5 valid recent matches per metric, or 10 recent Leetify records for that provider.
Turn each value into a gradual 0–100 signal, then reduce its influence when the sample is small. FACEIT recent averages use 10% winsorization: extreme tails are limited to the nearest remaining values.
Average related signals inside four groups before combining them. Account context only adds points when elevated match performance already exists. Show evidence coverage separately.
Missing groups are excluded and remaining group weights are rescaled to 100%. Missing values are never replaced with zero or marked suspicious. At least three usable signals outside account context, including match performance, are required to show a score. Different coverage can produce different scores, so compare the breakdown and sample sizes as well as the total.
Each signal is multiplied by n / (n + k). Here n is its valid match count and k is the sample adjustment shown in the table. For recent FACEIT metrics, only records containing that metric count. Leetify uses the smaller of its lifetime total and the available recent record count, capped at 20, as a conservative evidence proxy: its aggregate measurement window is not provided. These are not independent match samples across providers.
signal = clamp((value − start) / (end − start), 0, 1)The table gives the start and end of each ramp. Lower time to damage and preaim error use descending ramps.adjusted signal = signal × n / (n + k)Account-context signals also multiply by the performance gate described below.group score = 100 × Σ(weight × adjusted signal) / Σ(available weights)Related metrics share a group instead of each adding a full group’s points.index = round(Σ(group weight × group score) / Σ(available group weights))0–19: within configured ranges · 20–39: some elevated signals · 40–59: several · 60–100: strongly elevated.Account context carries at most 15% when every group is available. Few FACEIT matches matter more above 1,500 ELO, reaching full ELO scaling at 2,500. Steam age has its strongest effect below 60 days and none after 730 days. Both signals are multiplied by the mean of the adjusted match-performance signals. A young account alone cannot raise the score. An old Steam account is not proof of experience or legitimacy.
Evidence coverage measures how much of this model has usable data, adjusted for sample size. It is not a confidence interval or an accuracy estimate. Under 35% is limited, 35–64% is moderate, and 65% or more is broad. Saved provider data multiplies its coverage by 0.75; it does not silently change the score.
Coverage = weighted share of available signals × their sample adjustment × freshness factor, relative to all configured signals.
Fictional examples calculated with the same model as profile pages. No real player is represented.
A long history and steady recent results.
Broad evidence coverage · 67%
A fictional strong recent sample on a newer account.
Moderate evidence coverage · 62%
A small sample with Leetify unavailable.
Limited evidence coverage · 0%
These configurable ranges describe the heuristic, not measured population averages. Signal weights apply inside their group; k controls sample adjustment.
| Signal / group | Starts at | Full signal at | k | Weight |
|---|---|---|---|---|
| Lifetime win rateMatch performance | 55% | 75% | 50 | 1 |
| Recent K/DMatch performance | 1.15 | 2 | 10 | 1 |
| Recent damage / roundMatch performance | 85 | 120 | 10 | 1 |
| Recent headshot killsMatch performance | 60% | 85% | 15 | 0.5 |
| Leetify ratingMatch performance | 3 | 10 | 15 | 1 |
| K/D above lifetime averageRecent form | 0.2 | 0.8 | 15 | 1 |
| Win rate above lifetime averageRecent form | 10 pp | 35 pp | 15 | 1 |
| Matches with K/D at least 1.5Recent form | 50% | 90% | 15 | 1 |
| Leetify aimAim & mechanics | 85 | 98 | 20 | 1 |
| Head accuracyAim & mechanics | 22% | 40% | 20 | 0.5 |
| Good counter-strafing shotsAim & mechanics | 93% | 99% | 20 | 0.5 |
| Time to damageAim & mechanics | 450 ms | 250 ms | 20 | 1 |
| Crosshair placement errorAim & mechanics | 6° | 2° | 20 | 0.5 |
| Spray accuracyAim & mechanics | 55% | 80% | 20 | 0.5 |
| FACEIT matches at current ELOAccount context | 300 matches | 30 matches | 30 | 1 |
| Steam account age with elevated performanceAccount context | 730 days | 60 days | 0 | 1 |
pp = percentage points. Steam age uses a known creation date (n = 1, k = 0) and the performance gate. Sustained K/D is the share of valid recent matches with K/D ≥ 1.5. Win-rate lift compares recent and lifetime win rates.
SVG gauges fill from level 1 through 10. The level comes from FACEIT; the arc is not progress to the next ELO bracket.
FACEIT level and ELO come directly from the API. The overview match total is lifetime CS2 matches. Displayed kills, deaths, K/D, headshot kills and ADR are averages from up to 20 recent matches. The anomaly calculation applies its own robust averaging and sample checks.
The new FACEIT Rating is a separate performance measure from ELO. As of 24 September 2026, the public Data API documentation does not identify fields for the new Rating, Swing and Consistency trio. We do not substitute K/D, ELO or Leetify rating for these values, or copy the example numbers from FACEIT’s HTML.
Premier comes from Leetify. Its badge uses the seven 5,000-point color bands. Missing rank data displays a dash; an explicit zero displays Unranked. Leetify head accuracy is a shot percentage, while FACEIT headshots describe kills.
Steam and FACEIT normally refresh after two hours. Provider errors can leave older results visible with their original timestamp. Leetify loads independently and is not stored by default. The analysis recalculates as each provider becomes available.