The CS2 Regional Standings use a modified Glicko rating system to adjust team ranks based on head-to-head match results. Originally developed for chess, Glicko extends the ELO algorithm by tracking each player’s rating deviation (RD) — a measure of uncertainty in the rating. Matches are processed in chronological order, and each match’s impact on ratings is scaled by anDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/ValveSoftware/counter-strike_regional_standings/llms.txt
Use this file to discover all available pages before exploring further.
informationContent parameter that captures how much weight that result should carry.
Key constants
- Q — converts rank differences into win probabilities. A rank delta of 400 points corresponds to approximately a 90% win probability for the higher-rated team.
- C — controls how quickly rating deviation grows when a team is inactive. The default configuration decays back to the maximum RD (350) after 100 time units of inactivity.
Fixed RD mode (ELO equivalent)
In the CS2 standings, Glicko is configured with a fixed RD of 75 for all teams. Fixing the RD to a single value eliminates the uncertainty dimension and makes the system behave like a standard ELO rating.clampRD() always returns 75, so the RD never changes. The only variable that evolves match-to-match is each team’s rank.
Processing a single match
Every match in the dataset is processed bysingleMatch(), which immediately applies the rating change for both teams after each result:
incrementalMatch calls addPendingMatch for both participants (score 1.0 for the winner, 0.0 for the loser), then finalizeMatches applies the accumulated adjustments immediately.
Rating adjustment math
The core of the Glicko update is inaddPendingMatch. For each team, the algorithm computes:
applyPendingMatches converts accumulated adjustments into a new rank:
What each variable means
What each variable means
| Variable | Description |
|---|---|
r | This team’s current rank |
ro | Opponent’s current rank |
rdo | Opponent’s rating deviation |
g | RD scaling factor — reduces the weight of matches against teams with high uncertainty |
ev | Expected value (predicted win probability for this team) |
score | Actual outcome: 1.0 for a win, 0.0 for a loss |
info | Information content — scales how much this match affects the rating |
mAdjRank | Accumulated rank adjustment pending across all matches in this period |
mAdjRDSq | Accumulated RD² adjustment pending across all matches in this period |
Derivation of g and ev
Derivation of g and ev
The When RD is 0, This gives a 50% win probability when
g factor comes from the Glicko paper by Mark Glickman (1999). It attenuates the contribution of an opponent’s result proportionally to how uncertain their rating is (their RD):g = 1 (full weight). As RD grows, g approaches 0.The expected value ev is a logistic function of the adjusted rank difference:r == ro, and approximately 90% when r - ro == 400 (with g = 1).Rank update in fixed RD mode
Rank update in fixed RD mode
Because RD is fixed at 75 for all teams, For a win against an equal opponent (
adjustedRDSq simplifies to a near-constant value that acts as a learning rate. The rank update becomes approximately:ev = 0.5, info = 1, g ≈ 1), the rank gain is roughly Q · adjustedRDSq · 0.5.Information content
Every match carries aninformationContent value passed to singleMatch. This scales how much the result moves both teams’ ranks.
mAdjRank += ... * info) and the RD adjustment (mAdjRDSq += ... * info * info). A match with informationContent = 0.5 moves ratings roughly half as much as a full-weight match.