Glicko 2 Calculator
Update a tabletop ladder, chess club, Go club, or board-game league rating with the Glicko-2 rating, rating deviation, volatility, opponent strength, result score, tau, and inactive rating periods.
| Step | Formula | Meaning | Calculator field |
|---|---|---|---|
| Scale conversion | mu = (r - 1500) / 173.7178; phi = RD / 173.7178 | Moves rating and RD to the Glicko-2 scale. | Rating and player RD |
| Opponent impact | g(phi_j) = 1 / sqrt(1 + 3 phi_j^2 / pi^2) | Uncertain opponents count a little less. | Opponent RD |
| Expected score | E = 1 / (1 + exp(-g(phi_j)(mu - mu_j))) | Predicted score against the opponent. | Opponent rating and RD |
| Variance | v = 1 / (g(phi_j)^2 E(1 - E)) | Information in the result for one opponent. | Result score |
| Item | Formula | Use | Output |
|---|---|---|---|
| Improvement delta | Delta = v g(phi_j)(s - E) | Surprise direction and size of the result. | Delta card detail |
| Volatility solve | f(x) = exp(x)(Delta^2 - phi^2 - v - exp(x)) / (2(phi^2 + v + exp(x))^2) - (x - a) / tau^2 | Iterative root solve for sigma prime. | New volatility |
| Pre-rating RD | phi* = sqrt(phi^2 + sigma prime^2) | RD after volatility, before the game result. | Inactive adjustment |
| Post-rating RD | phi prime = 1 / sqrt(1 / phi*^2 + 1 / v) | RD after the information from the game. | New RD |
| Setting | Common value | Calculator behavior | Table use |
|---|---|---|---|
| Win score | 1.0 | Positive result against expectation raises rating. | Board-game ladder win |
| Draw score | 0.5 | Moves rating based on whether draw was above or below expectation. | Chess, Go, or match tie |
| Loss score | 0.0 | Negative result against expectation lowers rating. | Match loss |
| Tau | 0.3 to 1.2 | Controls how much volatility can move. | League policy |
| Inactive periods | 0 or more | Rating stays fixed while RD rises before next game. | Season breaks |
| RD band | Certainty label | Typical profile | Update feel |
|---|---|---|---|
| Under 60 | Locked-in rating | Very active ladder player | Small changes from expected results. |
| 60 to 110 | Established rating | Regular club player | Moderate changes when results surprise. |
| 110 to 220 | Flexible rating | Occasional or recently returned player | Noticeable movement after one period. |
| Over 220 | Provisional rating | New or long-inactive player | Large movement is expected. |
Until it does not. You feel solid on your ladder. Then one week you are facing opponents who seem out of your league. The next you’re getting stomped by someone you should of beaten comfortabley.
In traditional rating systems this is noise that gets smoothed away using some kind of rigid averaging formula. For Glicko-2, these are data points that tell us something about change and uncertainty. It’s not just keeping track of where you are. It’s also keeping track of how sure it is that it know where you are. For folks who run a league or club that takes their game seriously, that makes all of the difference.
How Glicko-2 Works
Once you know the result, what is your rating, how much deviation did they have, etc., simply plug it into this calculator to do the work for you. It spares you from fighting with Michael Glickman’s original paper full of exponential functions and square roots. Without having to major in stats, you recieve the answer.
Three pillar form the core engine. The first should be obvious: your rating. That’s how strong we estimate you to be on a standardized scale. But RD is the part that catches most casual observer and stops making sense: RD reflects uncertainty. So if you’re a new player just starting out, your RD could be set at 350. It basically conveys no information to the system other than that you exist.
After playing fifty or so games against known quantity, it will decrease to around forty. Now the system believes in your rating for sure. If you’ve got an RD of forty and beat one of your favorites, you’ll get a tiny bump because you were expected to win. If you win at the same game and have an RD of three-hundred, that’s a huge leap, especially when there is plenty of new info in the form of an upset.
There is also a volatility parameter that calculates your potential skill variation across periods. By default, the system says people tend to get better or worse gradually, absent contrary data. It’s governed by tau. If tau is low, then volatility will remain steady, no wild fluctuations due to short-term hot or cold streaks. If tau is high, then it can adapts quickly, but it’ll be vulnerable to variance.
But then there’s the inactivity problem, which is the silent killer of rating integrity. If a player hasn’t played a match in months, his/her RD increase because we are less certain of his or her current strength level. To account for this, the calculator first increases the deviation and only then uses the return game result. That way, a returning player who has been away for a while doesn’t bring an artificially exact rating with him/her when he/she returns, which is probably going to result in a win or blowout. It keeps the ladder ratings intact for all other player who might be facing him/her.
Using the tool is about periods, not specific games. Enter your state just before a block of play and then again afterward. There are handy presets to get you started in some common situations such as a high-rated upset or loss by a novice. This helps show what the algorithm considers when comparing one input to another, depending on context. For example, losing to a better player could actualy increase your rating if your pre-game expectations were low. It seems counterintuitive at first, but it is logically sound.
To explain what happens behind the scenes, I’ve included some of the reference tables in the tool. If you want to make your own back-end database, you can use this as an example of how the numbers flow from scale conversion through to final delta calculation. But if you’re just looking to match players fairly and get good updates, you probably won’t have to run those calculations yourself.
The output cards display both your new rating and expected score going forward, alongside your updated RD and volatility. Those all work together to form a live picture of each player’s relative strength: it’s quicker to respond then an Elo system, but it’s also less volatile than just tracking win-rates. Glicko-2 isn’t something you learn by learning equations. It’s something you learn by understanding uncertainty.
If your ranking can be wrong, then it will be right soon. If someone’s rank represents their current level, rather than an absolute fact, then we don’t expect them to stay ranked there forever. New players stabilize fast. This applies to everyone except the people who actualy get better or worse. The end result is a ladder that responds to changes but never descends into chaos. Your ranking isn’t a fixed badge anymore; it’s alive. This change of mindset is as important than the maths behind it.
