If you've ever played ranked in Valorant, League of Legends, Rocket League, or even online chess, your skill was being tracked by some form of rating system. The most common one is the Elo rating system, originally invented for chess and now used as the basis for competitive ranking in games everywhere.
But what actually is an Elo rating? How does it decide how many points you gain or lose? And why do some wins feel like they're worth more than others?
Where Elo Comes From
The Elo rating system was created by Arpad Elo, a Hungarian-American physics professor and avid chess player. He developed it in the 1960s for the United States Chess Federation as a fairer way to rank players. Before Elo, chess rankings were based on crude systems that didn't account for the strength of your opponents.
Elo's insight was simple: your rating should reflect who you beat, not just how often you win. Beating a strong player should mean more than beating a weak one, and losing to a much stronger player shouldn't tank your rating.
The system was later adopted by FIDE (the international chess federation) and has since spread to pretty much every competitive domain, from online gaming to sports to academic competitions.
How Elo Rating Works
Every player starts at the same rating, usually 1200 (though some systems use 1000 or 1500). After each match, the winner's rating goes up and the loser's rating goes down. The amount of change depends on one key factor: the expected outcome.
Expected Outcome
Before a match, the system calculates how likely each player is to win based on their current ratings. If a 1500-rated player faces a 1300-rated player, the higher-rated player is expected to win. If they do win, they gain a small number of points. If the underdog wins, they gain a lot.
The formula for expected score looks like this:
Expected Score = 1 / (1 + 10^((opponent_rating - your_rating) / 400))
Don't worry about memorizing that. The important thing is the intuition: the bigger the rating gap, the more certain the system is about who should win.
Rating Change
After the match, your rating changes based on how the actual result compares to the expected result:
New Rating = Old Rating + K × (Actual Score - Expected Score)
- Actual Score is 1 for a win, 0 for a loss (0.5 for a draw)
- K is the K-factor, which controls how much ratings swing per match (more on this below)
Example: You're rated 1200 and beat someone rated 1400. The system expected you to lose, so you gain more points, something like +24. If you'd lost (the expected outcome), you'd only drop about 8 points.
This is why Elo feels fair. It rewards upsets and cushions expected losses.
Key Concepts
K-Factor
The K-factor controls how much a single match can change your rating. A higher K-factor means bigger swings after each game. A lower one keeps ratings more stable.
| K-Factor | Effect | Best For |
|---|---|---|
| 16 | Small changes per match | Large communities with many matches |
| 32 | Moderate changes (most common default) | General-purpose, works for most groups |
| 48–64 | Large changes per match | Small groups where rankings need to settle fast |
Most gaming implementations use a K-factor of 32, which balances responsiveness and stability for the majority of communities. If your community plays a lot of matches, a lower K-factor prevents wild rating swings. If matches are rare and each one matters, a higher K-factor makes every game count.
Rating Distribution
In a typical Elo system with a 1200 starting rating:
- Below 1000 — Below average
- 1000–1200 — Average
- 1200–1400 — Above average
- 1400–1600 — Strong
- 1600–1800 — Very strong
- 1800+ — Elite
These aren't hard rules. The actual distribution depends on your community's size and activity. But the bell curve tends to center around the starting value, with most players landing within a few hundred points of it.
Placement Matches
Many systems hide a player's rating until they've completed a minimum number of matches. This prevents someone who wins their first game from sitting at the top of the leaderboard with a single match played. After enough placement matches, the rating stabilizes and becomes meaningful.
Rating Floor
Some implementations set a minimum rating (a floor) that players can't drop below. This keeps new or casual players from spiraling into extremely low ratings after a losing streak. A common floor is the starting rating minus some buffer (e.g., 800 if the default is 1200).
Elo in Competitive Gaming
While Elo was designed for chess (1v1, win/loss/draw), modern gaming has adapted it for far more complex scenarios.
Team Games
In team-based games like Valorant, Overwatch, or Rocket League, each player on the winning team gains rating and each player on the losing team loses rating. The calculation usually uses the average team rating to determine expected outcome. Some systems weight individual performance, but pure Elo systems focus on the match result.
Free-for-All
Games with more than two players or teams (battle royales, racing, FFA modes) need special handling. The most common approach is to treat each pair of players as a separate matchup and combine the results. If you place 1st in a 4-player FFA, the system calculates as if you beat all three opponents individually and averages the rating change.
Multiple Rating Types
Serious competitive communities often track multiple ratings per player:
- Global rating — across all match types
- Format-specific ratings — separate ratings for 1v1, 2v2, 3v3, etc.
- Character/weapon ratings — separate ratings based on in-game selections (useful for fighting games or hero-based shooters)
This gives you a better picture of where someone's strengths actually are. A player might be 1600 in 1v1s but 1300 in team matches because their playstyle doesn't translate well to coordination.
Elo vs. Other Rating Systems
Elo isn't the only option. A few alternatives have gained traction, especially in online gaming (for a full head-to-head, see Glicko vs. Elo vs. TrueSkill):
Glicko / Glicko-2
Created by Mark Glickman as an improvement to Elo, Glicko adds a rating deviation (RD) that measures how uncertain the system is about your skill. If you haven't played in a while, your RD increases and your rating changes more dramatically when you return. Used by Chess.com and Lichess.
TrueSkill / TrueSkill 2
Microsoft's system, designed for Xbox Live. It's Bayesian and handles team games natively, tracking both your estimated skill and the uncertainty around it. More complex but better suited for matchmaking in team games.
MMR (Matchmaking Rating)
"MMR" isn't a specific algorithm. It's a generic term for hidden ratings used in matchmaking. Games like League of Legends and Dota 2 use internal MMR for matching players, which may or may not be based on Elo. The visible rank (Gold, Platinum, Diamond) is often loosely tied to MMR but not a direct representation.
Why Elo Remains Popular
Even with these alternatives, Elo is still the most widely used system. The reasons are pretty straightforward:
- Simple — easy to understand and explain to players
- Transparent — players can see exactly why their rating changed
- Proven — 60+ years of use across chess, gaming, and sports
- Flexible — works for 1v1, teams, and FFA with straightforward extensions
Try It: Elo Calculator
Want to see how Elo math works with your own numbers? Use our free Elo Calculator to plug in two ratings and see exactly how many points each player would gain or lose.
It's useful for getting a feel for how K-factor, rating gaps, and match results interact. Also handy for explaining to players in your community why they gained 12 points instead of 20.
Setting Up Elo in Your Community
If you run a Discord server for any competitive game, you can set up an Elo rating system without building anything from scratch. Team Up is a Discord bot that handles all of this automatically:
- Record matches with a single command (
/record_match quick opponent:@player2 winner:I won) - Live leaderboards that update after every match
- Automatic tier roles that assign Discord roles like Diamond, Gold, and Bronze based on rating thresholds
- Multiple rating types — global, format-specific, and character-based ratings
- Matchmaking queues that pair players based on skill
- Full customization — K-factor, starting rating, placement matches, rating floors, and more
The free tier supports 50 matches per day and 3 leaderboards, which covers most casual communities. For a full walkthrough, see our setup guide.
Further reading:
- How to Set Up Elo Leaderboards in Discord — step-by-step setup guide
- Best Discord Bots for Elo & Matchmaking — how the top bots compare
- Elo Rating Calculator Guide — deep dive into every calculator parameter
- Elo Calculator — test Elo math with your own numbers
- Configuration Guide — customize K-factor, rating floors, and more
- Matchmaking Queues — run skill-based matchmaking in your server
