MMR System Explained
How ratings are calculated and why they change
📐 Core ELO Formula
The system uses the standard ELO rating algorithm — the same one used in chess rankings worldwide. Every player starts at 1500 MMR, and ratings range from 0 to 3000.
Step 1 — Expected Score
Before a match, each player's probability of winning is calculated based on the rating gap between them:
Where $R_A$ is Player A's rating and $R_B$ is Player B's rating.
- If two players have equal ratings, each has a 50% expected score.
- A 200-point gap gives the higher-rated player ~76% expected.
- A 400-point gap gives the higher-rated player ~91% expected.
Step 2 — Rating Update
After the match, ratings adjust based on the surprise factor — how unexpected the result was:
Where $S_A$ = 1 for a win, 0 for a loss, and K = 64 (the sensitivity factor that controls how much ratings change per match).
- Upset win (beating a higher-rated player) → big rating gain
- Expected win (beating a lower-rated player) → small rating gain
- Expected loss (losing to a higher-rated player) → small rating drop
- Upset loss (losing to a lower-rated player) → big rating drop
🏆 Margin of Victory (MoV)
MultiplierThe score difference matters! A blowout win rewards you more than a nail-biting close game. The system applies a linear multiplier based on the point difference, scaling up to a maximum of 2.0x for a 21-0 shutout.
The Math
The base rating change is multiplied by this $M$ value. This guarantees that a close 1-point win still gives you the standard ELO rating, while blowing someone out gives you a gentle bonus up to double the rating.
| Score | Point Diff | Multiplier | Impact |
|---|---|---|---|
| 21 - 20 | 1 | 1.00x | Standard rating exchange |
| 21 - 16 | 5 | 1.20x | Slightly boosts exchange |
| 21 - 11 | 10 | 1.45x | Moderate boost to exchange |
| 21 - 6 | 15 | 1.70x | Heavy boost to exchange |
| 21 - 0 | 21 | 2.00x | Double rating exchange |
⏳ 90-Day Decay Window
Golf Handicap StyleThis is the key differentiator from standard ELO — our system works like a golf handicap. Only matches from the last 90 days count toward your rating.
How It Works
When a new match is recorded, all player ratings are recalculated from scratch:
What This Means in Practice
Player Stops Playing
Their old wins gradually "fall off" and their rating drifts back toward 1500
Player on a Hot Streak
Recent wins weight heavily since they're all within the active window
Bad Month 3+ Months Ago
Those losses no longer affect their current rating — clean slate!
New Player
Starts at 1500 and their rating adjusts quickly with their first few matches
💡 Real Examples
Example 1 — Expected Result
Alex was expected to win (~76% chance), so the rating change is small:
Example 2 — Upset!
Sam was the underdog (~24% chance), so the upset creates a big swing:
Example 3 — Even Match
A coin-flip match (50/50), so the change is moderate:
📊 Quick Reference
| Parameter | Value | What It Means |
|---|---|---|
| Rating Range | 0 – 3000 | Ratings can never go below 0 or above 3000 |
| Starting Rating | 1500 | All new players begin at the midpoint |
| K-Factor | 64 | How much ratings can change per match (higher = more volatile) |
| Decay Window | 90 days | Only the last 90 days of matches count toward your rating |
| Max Gain (per match) | +64 | Winning when you had ~0% chance of winning |
| Max Loss (per match) | -64 | Losing when you had ~100% chance of winning |