FL
Method v0.2 · Preview

Rating formulas

Frag Rating

See how Frag Rating, lobby risk, and integrity signals are calculated, which data they use, and where each measure has limits.

Where the numbers come from

Valve data

CS Rating, match identity, and available account fields supplied by Valve or Steam.

Shown as · Valve

Demo parsed

Rounds, kills, damage, assists, trades, utility, and other events reconstructed from the match demo.

Shown as · Demo parsed

FragLedger calculated

Aggregates and ratings computed from an explicitly named match sample using the formulas below.

Shown as · Method v0.2

Component metrics

K/D
Total kills ÷ total deaths in the selected match sample. A death count of zero is reported separately rather than forcing a denominator.
ADR
Total player damage ÷ rounds in the selected sample. Production aggregates are round-weighted, not a simple average of match averages.
HS%
Headshot kills ÷ total kills. This describes kill finish location; it is not an aim-quality score by itself.
KAST
Percentage of rounds with at least one kill, assist, survival, or trade. One qualifying event is enough for the round.
CS Rating
Valve's Premier rating. FragLedger stores and displays it but does not redefine or blend it into Frag Rating.

Frag Rating v0.2

Frag Rating is a simple performance index centered near 1.00. It combines frags, damage, and round participation into a clearer way to compare match impact. It is not a complete skill score.

Per-match formula

1.00 + 0.28 × (K/D − 1.00) + 0.32 × ((ADR − 75) / 75) + 0.24 × ((KAST − 70) / 70)
Output bounded from 0.35 to 1.85 · Unavailable when deaths or rounds are zero · Preview calibration only

K/D component

0.28

Rewards frags per death without letting K/D run the whole score.

ADR component

0.32

Counts damage even when you did not get the kill.

KAST component

0.24

Credits survival, assists, and trades each round.

Lobby risk score

Lobby Scan scores account facts we can verify: ban history, account age, CS2 hours, and unusual rating-to-hours combinations when available. Each signal adds a fixed weight, the total is clamped to 0–100, and the score maps to an attention band. We do not call cheats or judge behavior; the score is account context only. The same weights are also the account-prior component of the public integrity risk score below, where they are capped at 50 of the 100 points.

+50
VAC ban on record, with days since the last ban when Steam reports it.
+35
One or more game bans. Game bans cover more than cheating (Valve's 2026 waves included drop-farming and boosting accounts), so the flag names the count rather than guessing a motive.
+20
Steam community ban.
+20
Account younger than 90 days.
+30
Under 50 verified CS2 hours (or +15 for 50–99 hours). Skipped entirely when playtime is private.
+25
Premier rating above 20,000 on under 200 CS2 hours, a rating-to-hours mismatch consistent with a smurf but not proof of one.
+10
Private Steam profile. Facts we cannot verify are listed as unverifiable instead of assumed clean.

Low

0–14

No major red flags in the facts we could verify.

Medium

15–29

One soft signal. Worth a look, but common for legitimate accounts.

High

30–49

Multiple soft signals or a game-ban record.

Critical

50+

Ban history or heavily stacked signals. Any VAC ban lands here by construction.

Why account facts at all? Valve enforces in waves, collecting detections before issuing blanket bans, sometimes hundreds of thousands of accounts in a single day. A clean record is a lagging indicator. That is also why public player pages show gameplay integrity signals (section 05): statistical evidence aggregated over many parsed matches, never single events, gated across multiple signals and labeled by confidence. They share patterns with banned-account populations, but they remain likelihood with the evidence shown, not a verdict on anyone's behavior. Every flag Lobby Scan shows is a verifiable account fact with a source and a timestamp.

If we can't see it, we don't count it as clean. A blank ban record, private playtime, or an unresolved Steam identity is never treated as a pass.

Gameplay component

The public integrity risk score adds demo-derived gameplay signals to the account priors above (capped at 50 of 100). Each gameplay signal compares an aggregated rate over the player's parsed matches with a published population base rate and fires only when the excess is statistically extreme: a one-sided binomial tail at p<0.05, with heavier weights at p<0.01 and p<0.001. Signals describe likelihood and show the evidence behind them; they are not verdicts.

+15 / +25 / +35
Blind-kill outlier: matches with at least one blind kill far above the population base rate (p<0.05 / p<0.01 / p<0.001).
+8 / +15 / +22
Smoke-kill outlier: same construction over matches with a kill through smoke.
+6 / +12 / +18
Wallbang-kill outlier: same construction. Wallbangs are common in normal play, so the tiers stay small.
+5 / +10 / +15
Noscope-kill outlier: same construction over matches with a noscope kill.
+25
Headshot rate above 65% over at least 300 kills (+10 above 60%). The measured elite pro ceiling is ~60–66% (2025 pro-scene leaders), so sustained rates beyond it are anomalous.
+40
Average geometry-sampled sight-to-damage under 150ms over at least 100 measured engagements, below the reliable human floor.
+20
Sight-to-damage of 150–180ms with standard deviation under 25ms, which is inhuman uniformity near the human floor. The parser does not measure the standard deviation yet, so this uniformity tier is currently dormant.
+10
First-bullet accuracy above 55% over at least 200 attempts. No published population distribution exists, so this threshold is deliberately conservative.
+15
Occluded-aim lock: at least 35% of 200+ sampled ticks held a tight cone on a target with no line of sight. ESP-style tracking; holding a known angle can look similar.
+20
Aim-before-visibility: 200ms+ average occluded lock before a visible streak over at least 40 engagements. Wallhack amateurs often show this; it is not a verdict.
+15
Large aim snaps: 45°+ average max view-angle step over at least 40 engagements.
+12
First-bullet head lock: 70%+ of at least 80 connected first bullets hit the head.
+10
Uniform jump timing: jump-interval p90−p50 at most 16ms over at least 40 gaps (scripted bunny-hop screening).

Population base rates

Per-match probability that a legitimate player records at least one kill of that modifier, from a published third-party dataset of 4.1 million matches.

Wallbang ≥1

40.5%

of matches · 4.1M-match population dataset

Smoke ≥1

28.9%

of matches · 4.1M-match population dataset

Blind ≥1

7.96%

of matches · 4.1M-match population dataset

Noscope ≥1

6.21%

of matches · 4.1M-match population dataset

Confidence tiers

High
At least 20 parsed matches and 500 kills.
Medium
At least 8 parsed matches and 150 kills.
Low
At least 3 parsed matches and 50 kills.
Insufficient
Below the low tier. The panel is hidden and no gameplay score is published.
False-positive control. We optimize for a low false-positive rate over recall. A single gameplay signal alone caps the total score at 59, so the high and extreme bands require multi-signal corroboration or a ban-critical account prior. Signals are computed over aggregated match sequences only, never single events, and evidence we don't have counts as unknown rather than clean.

What v0.2 does not know

  • Role and position are not modeled yet. An anchor and an entry fragger should not be judged the same way.
  • Opponent strength, economy pressure, clutches, and win probability are not in the headline rating yet.
  • Small samples swing a lot. We show match and round counts so you can judge how much to trust a number.
  • Zero denominators stay blank: K/D and Frag Rating need at least one death, ADR and KAST need a round, HS% needs a kill.
  • Integrity signals are statistical, calibrated on third-party population data. A high integrity score is not a ban prediction.
  • The public preview can use fixed sample matches. They demonstrate the method and make no claims about real players.
  • Preview round timelines rebuild kill and bomb events from the demo scoreboard for UI testing only. Timing and weapons are not live telemetry, and grenade stats stay unavailable rather than guessed.

Common questions about the numbers

Is Frag Rating the same as CS Rating?

No. CS Rating is Valve's Premier observation. Frag Rating is FragLedger's demo-derived performance index with published weights. We display both and never blend them into one combined score.

Why is Frag Rating blank on some matches?

The formula needs deaths and rounds. Zero-death matches and incomplete samples stay blank instead of dividing by zero or guessing a 1.00 placeholder.

Does a high integrity score mean the player cheats?

No. Integrity scores are likelihood signals with evidence and confidence gates. They share patterns with historical ban populations, but they are not a ban prediction or a Valve enforcement claim. Read the multi-signal cap and confidence tiers above.

Can I compare my Frag Rating to pros?

Only when both sides use the same measurement path. FragLedger's pro warehouse is deliberately separate from Valve share-code matches, and comparison only works when both numbers come from the same parser and method version. We will not print a “pro %” from unrelated public rating scales.

Where do population base rates come from?

Integrity base rates cite a large third-party match dataset used for calibration. They are published here so you can check the thresholds yourself instead of taking our word for it.

Method history

Risk v1

Published the lobby risk signal weights, the 0–100 clamp, and the attention bands.

Risk v2

Added the gameplay integrity component: population-relative obscured-kill, headshot-rate, time-to-damage, and first-bullet signals with published base rates, confidence gating, and the single-signal cap, joined with the account priors (capped at 50) into the public integrity risk score.

Risk v3

Owned-Pure screening measurements: aim snap/jerk/overshoot, occluded-aim lock, pre-visible lead (not sight-to-damage), first-bullet head share, jump-gap regularity, and smoke-track. Match flags and public integrity scores describe likelihood only and are never a cheat verdict. Sight-to-damage uniformity can use per-match p90−p50 when a pooled standard deviation is not stored.

v0.2

Published formula, bounds, source labels, limitations, and the missing-data policy.

About FragLedger

We use official CS2 demos to build match history and stats. Learn about FragLedgeror how we process demos.