# Glicko system

The Glicko system is a rating system developed by Mark Glickman that , like the Elo system, allows the skill level of chess players , for example , to be measured. The special feature of the system lies in the introduction of further variables, such as the rating deviation (deviation) in the classic Glicko system and, in addition, the rating volatility (fluctuation) in the Glicko 2 system. Both systems are license-free and therefore particularly popular for online games. The Lichess chess server, for example, uses the Glicko-2 system to evaluate the players in different chess variants and time categories.

## Differences to the Elo system

As an extension to the Elo system, Glickman introduces the variable RD ( ratings deviation ). This estimates how exactly the current rating corresponds to the actual (but unknown) skill level. With a probability of 67% the actual playing strength is in the range of ± RD of the rating number, with 95% in the range of ± 2 RD. If a player has a rating of 1500 and an RD of 50, his actual playing strength should be in the range from 1400 to 1600 with a probability of 95%. As a player plays, their RD will decrease as their rating becomes more accurate with each game. If he does not play, it increases slowly over time. In addition, a high RD causes its rating number to change at larger intervals.

The introduction of the RD also ensures that the rating of an active player playing against a new or inactive player changes only slightly. This is useful because the strength of the new or inactive player is not known precisely enough and the result does not say much about the strength of the active player.

## calculation

### Classic Glicko system

If the player does not have a rating, the skill level is usually set to 1500 and the rating deviation to 350. ${\ displaystyle r}$ ${\ displaystyle \ mathrm {RD}}$

The aim is to update a player's values and replace them with the values . It is assumed that he is playing against opponents and thereby achieves the results , whereby the result of the game j (loss, draw or win) stands. ${\ displaystyle (r, \ mathrm {RD})}$${\ displaystyle (r ', \ mathrm {RD}')}$${\ displaystyle m}$${\ displaystyle (r_ {1}, \ mathrm {RD} _ {1}), \ dots, (r_ {m}, \ mathrm {RD} _ {m})}$${\ displaystyle s_ {1}, \ dots, s_ {m}}$${\ displaystyle s_ {j} \ in \ {0, {\ tfrac {1} {2}}, 1 \}}$

#### Step 1: Determination of a preliminary RD

The provisional RD value ( ) is calculated based on the old RD value ( ) as follows: ${\ displaystyle \ mathrm {RD} ^ {\ ast}}$${\ displaystyle \ mathrm {RD}}$

${\ displaystyle \ mathrm {RD} ^ {\ ast} = \ min \ left ({\ sqrt {\ mathrm {RD} ^ {2} + c ^ {2} t}}, 350 \ right)}$

Here is the time (in evaluation periods) since the last competition and 350 is the standard value for an unrated player. Should there be several games in one period, they will be treated as if they were played at the same time. The scoring period can be very long (several months) or very short (a few minutes), depending on how often games are played. The constant depends on the uncertainty about the strength of a player after a certain time. It can be derived from a detailed analysis of the available data. Alternatively, it can be estimated based on the time it would take for a player's RD to be the same as that of an unrated player: Suppose it takes 100 scoring periods for a player's RD to reach that of an unrated player (350) and a typical player has an RD of 50, then the constant can be found by solving the equation ${\ displaystyle t}$${\ displaystyle c}$${\ displaystyle c}$

${\ displaystyle 350 = {\ sqrt {50 ^ {2} + 100c ^ {2}}}}$after being found:${\ displaystyle c}$
${\ displaystyle c = {\ sqrt {(350 ^ {2} -50 ^ {2}) / 100}} \ approx 34 {,} 64}$

#### Step 2: Determine the new values ​​for skill level and deviation

${\ displaystyle {\ frac {1} {d ^ {2}}} = q ^ {2} \ sum _ {j} ^ {m} {g (\ mathrm {RD} _ {j}) ^ {2} \ cdot E (r, r_ {j}, \ mathrm {RD} _ {j}) \ cdot (1-E (r, r_ {j}, \ mathrm {RD} _ {j}))} = q ^ {2} \ sum _ {j} ^ {m} {g_ {j} ^ {2} \ cdot E_ {j} \ cdot (1-E_ {j})}}$

With

${\ displaystyle q = {\ tfrac {\ ln (10)} {400}} \ approx 0 {,} 0057565}$.

The factor also occurs in the formulas of the classic Glicko system, the Elo system and the German rating number . It leads to a comparable scaling of the systems. ${\ displaystyle q}$

The purpose of the calculation in step 1 was to adapt (increase) the RD to the increased uncertainty about the skill level of a player after a period of non-application of the model. Now the new RD is readjusted (and typically reduced) taking into account the current games:

${\ displaystyle \ mathrm {RD} '= {\ frac {1} {\ sqrt {{\ frac {1} {\ mathrm {RD} ^ {\ ast 2}}} + {\ frac {1} {d ^ {2}}}}}} \ iff {\ frac {1} {\ mathrm {RD} '^ {2}}} = {\ frac {1} {\ mathrm {RD} ^ {\ ast 2}}} + {\ frac {1} {d ^ {2}}}}$

The new rating after a number of games results from the following equation: ${\ displaystyle r '}$${\ displaystyle m}$

${\ displaystyle r '= r + q \ cdot \ mathrm {RD}' ^ {2} \ cdot \ sum _ {j} ^ {m} {g (\ mathrm {RD} _ {j}) \ cdot (s_ {j} -E (r, r_ {j}, \ mathrm {RD} _ {j}))}}$

Here are

${\ displaystyle E (r, r_ {j}, \ mathrm {RD} _ {j}) = {\ frac {1} {1 + e ^ {- g (\ mathrm {RD} _ {j}) \ cdot q \ cdot (r-r_ {j})}}} = {\ frac {1} {1 + 10 ^ {- g (\ mathrm {RD} _ {j}) {\ frac {1} {400}} (r-r_ {j})}}} = E_ {j}}$the expected value for a win in the game j .
${\ displaystyle g (\ mathrm {RD} _ {j}) = {\ frac {1} {\ sqrt {1 + {\ frac {3} {\ pi ^ {2}}} q ^ {2} (RD_ {j} ^ {2})}}} = g_ {j}}$is a constant weighting factor which depends only on the RD of the opponent in game j and influences the variance of the distribution, which is.${\ displaystyle {\ frac {\ pi ^ {2}} {3g_ {i} ^ {2} q ^ {2}}} = {\ frac {\ pi ^ {2}} {3q ^ {2}}} + \ mathrm {PD} ^ {2}}$

### Glicko-2 system

In addition to the RD, the Glicko-2 system also introduces a rating volatility . The more consistently the player plays, the lower this is. ${\ displaystyle \ sigma}$

In order to keep the rating numbers of Glicko-2 comparable to those of Glicko, a transformation of the Glicko rating number and the rating deviation can be carried out at the beginning and at the end . ${\ displaystyle r}$ ${\ displaystyle \ mathrm {RD}}$

The Glicko-2 system determines three values ​​for each player:

• rating (rating)${\ displaystyle \ mu}$
• rating deviation (deviation)${\ displaystyle \ phi}$
• rating volatility (fluctuation)${\ displaystyle \ sigma}$

#### Step 1

If a player does not have a Glicko rating, he receives the starting values and . In addition, the fluctuation is set for the Glicko-2 rating . ${\ displaystyle r = 1500}$${\ displaystyle \ mathrm {RD} = 350}$${\ displaystyle \ sigma = 0 {,} 06}$

In general, one must be specified. Useful values ​​are between 0.3 and 1.2. ${\ displaystyle \ tau}$

#### step 2

The following functions are used to convert from the classic Glicko system to the Glicko 2 system . The factor leads to a scaling that corresponds to the existing systems and covers a range of values ​​that is more practical and more familiar for people. This is in the three to four-digit range and is sufficiently meaningful when rounded to whole numbers. ${\ displaystyle (r, \ mathrm {RD})}$${\ displaystyle (\ mu, \ phi, \ sigma)}$${\ displaystyle q = {\ tfrac {\ ln (10)} {400}}}$

${\ displaystyle \ mu = (r-1500) \ cdot q = (r-1500) \ cdot {\ tfrac {\ ln (10)} {400}} = {\ frac {r-1500} {173 {,} 7178}}}$
${\ displaystyle \ phi = \ mathrm {\ mathrm {RD}} \ cdot q = \ mathrm {RD} \ cdot {\ tfrac {\ ln (10)} {400}} = {\ frac {\ mathrm {RD} } {173 {,} 7178}}}$

This avoids many parameters that appear arbitrary in the calculations.

The aim is now to update a player's values and replace them with the values . It is assumed that he is playing against opponents and thereby achieves the results , whereby the result of the game j (loss, draw or win) stands. ${\ displaystyle (\ mu, \ phi, \ sigma)}$${\ displaystyle (\ mu ', \ phi', \ sigma ')}$${\ displaystyle m}$${\ displaystyle (\ mu _ {1}, \ phi _ {1}), \ dots, (\ mu _ {m}, \ phi _ {m})}$${\ displaystyle s_ {1}, \ dots, s_ {m}}$${\ displaystyle s_ {j} \ in \ {0, {\ tfrac {1} {2}}, 1 \}}$

The fluctuation of the opponents is not required to determine the new values. ${\ displaystyle \ sigma _ {j}}$

#### step 3

${\ displaystyle v = \ left (\ sum _ {j} ^ {m} g (\ phi _ {j}) ^ {2} \ cdot E (\ mu, \ mu _ {j}, \ phi _ {j }) \ cdot \ left (1-E (\ mu, \ mu _ {j}, \ phi _ {j}) \ right) \ right) ^ {- 1} = \ left (\ sum _ {j} ^ {m} g_ {j} ^ {2} \ cdot E_ {j} \ cdot \ left (1-E_ {j} \ right) \ right) ^ {- 1}}$

Here are

${\ displaystyle E (\ mu, \ mu _ {j}, \ phi _ {j}) = {\ frac {1} {1 + e ^ {- g (\ phi _ {j}) (\ mu - \ mu _ {i})}}} = E_ {j}}$the probability of winning in the form of a logistic distribution (expected value) and
${\ displaystyle g (\ phi _ {j}) = {\ frac {1} {\ sqrt {1 + {\ frac {3} {\ pi ^ {2}}} \ phi _ {j} ^ {2} }}} = g_ {j}}$a weighting factor that affects the variance of the distribution that is.${\ displaystyle {\ frac {\ pi ^ {2}} {3g_ {i} ^ {2}}} = {\ frac {\ pi ^ {2}} {3}} + \ phi _ {j} ^ { 2}}$

#### Step 4

${\ displaystyle \ Delta = v \ cdot \ sum _ {j} ^ {m} g (\ phi _ {j}) \ cdot \ left (s_ {j} -E (\ mu, \ mu _ {j}, \ phi _ {j}) \ right) = {\ frac {\ sum _ {j} ^ {m} g (\ phi _ {j}) \ cdot \ left (s_ {j} -E (\ mu, \ mu _ {j}, \ phi _ {j}) \ right)} {\ sum _ {j} ^ {m} g (\ phi _ {j}) ^ {2} \ cdot E (\ mu, \ mu _ {j}, \ phi _ {j}) \ cdot \ left (1-E (\ mu, \ mu _ {j}, \ phi _ {j}) \ right)}} = {\ frac {\ sum _ {j} ^ {m} g_ {j} \ cdot \ left (s_ {j} -E_ {j} \ right)} {\ sum _ {j} ^ {m} g_ {j} ^ {2} \ cdot E_ {j} \ cdot \ left (1-E_ {j} \ right)}}}$

#### Step 5

For should apply: ${\ displaystyle \ sigma '}$

${\ displaystyle {\ frac {\ sigma '^ {2} (\ Delta ^ {2} - \ phi ^ {2} -v- \ sigma' ^ {2})} {2 (\ phi ^ {2} + v + \ sigma '^ {2}) ^ {2}}} = {\ frac {1} {\ tau ^ {2}}} \ cdot \ ln \ left ({\ frac {\ sigma' ^ {2}} {\ sigma ^ {2}}} \ right)}$

with results ${\ displaystyle \ sigma '^ {2} = e ^ {x}}$

${\ displaystyle {\ frac {e ^ {x} (\ Delta ^ {2} - \ phi ^ {2} -ve ^ {x})} {2 (\ phi ^ {2} + v + e ^ {x }) ^ {2}}} = {\ frac {1} {\ tau ^ {2}}} \ cdot \ ln \ left ({\ frac {e ^ {x}} {\ sigma ^ {2}}} \ right)}$

To determine the new one , the zero point of the following function must now be determined numerically. ${\ displaystyle \ sigma '}$

${\ displaystyle f (x) = {\ frac {e ^ {x} (\ Delta ^ {2} - \ phi ^ {2} -ve ^ {x})} {2 (\ phi ^ {2} + v + e ^ {x}) ^ {2}}} - {\ frac {x- \ ln (\ sigma ^ {2})} {\ tau ^ {2}}} = 0}$

The Illinois method is used for this. For this purpose, two starting values and are determined at the beginning , as well as a convergence radius . ${\ displaystyle A}$${\ displaystyle B}$${\ displaystyle \ varepsilon = 10 ^ {- 6}}$

${\ displaystyle A = a = \ ln (\ sigma ^ {2})}$

If is, it is assumed, otherwise a must be found such that is. ${\ displaystyle \ Delta ^ {2}> \ phi ^ {2} + v}$${\ displaystyle B = \ ln (\ Delta ^ {2} - \ phi ^ {2} -v)}$${\ displaystyle k> 0, k \ in \ mathbb {N}}$${\ displaystyle f (ak \ tau)> 0}$

With is now . ${\ displaystyle B = ak \ tau}$${\ displaystyle A <\ ln (\ sigma '^ {2})

${\ displaystyle \! \, {\ begin {array} {l} {\ mathsf {as long as}} ~ | BA | \ geq \ varepsilon: \\ ~~ \ left [{\ begin {array} {l} C: = A - {\ frac {A} {s}} ~ \ mathrm {with} ~ s = {\ frac {f_ {B} -f_ {A}} {BA}} \\ f_ {C}: = f ( C) \\ {\ mathsf {falls}} ~ f_ {C} \ cdot f_ {B} <0: \\ ~~ \ left [A: = B, ~ f_ {A}: = f_ {B}, ~ B: = C, ~ f_ {B}: = f_ {C} \ right. \\ {\ mathsf {falls}} ~ f_ {C} \ cdot f_ {B}> 0: \\ ~~ \ left [f_ {A}: = {\ frac {1} {2}} \ cdot f_ {A}, ~ B: = C, ~ f_ {B}: = f_ {C}, ~ A ~ {\ text {remains}} \ right. \\ {\ mathsf {otherwise}}: \\ ~~ \ left [A: = C, ~ f_ {A}: = f_ {C}, ~ B: = C, ~ f_ {B}: = f_ {C} \ right. \\\ end {array}} \ right. \\ ~ \\ {\ text {nimm}} A {\ text {as an approximation for}} x ^ {*} \ end {array} }}$

An updated value for the fluctuation now applies to the player . ${\ displaystyle \ sigma}$

${\ displaystyle \ sigma '= {\ sqrt {e ^ {A}}} \ iff \ sigma' ^ {2} = e ^ {A}}$

#### Step 6

A provisional deviation can now be determined. ${\ displaystyle \ phi ^ {\ ast}}$

${\ displaystyle \ phi ^ {\ ast} = {\ sqrt {\ phi ^ {2} + \ sigma '^ {2}}} \ iff \ phi ^ {\ ast 2} = \ phi ^ {2} + \ sigma '^ {2}}$

#### Step 7

Now can be and determine: ${\ displaystyle \ phi '}$${\ displaystyle \ mu '}$

${\ displaystyle \ phi '= {\ frac {1} {\ sqrt {{\ frac {1} {\ phi ^ {\ ast 2}}} + {\ frac {1} {v}}}}} \ iff {\ frac {1} {\ phi '^ {2}}} = {\ frac {1} {\ phi ^ {\ ast 2}}} + {\ frac {1} {v}} = {\ frac { 1} {\ phi ^ {2} + \ sigma '^ {2}}} + {\ frac {1} {v}}}$
${\ displaystyle \ mu '= \ mu + \ phi' ^ {2} \ cdot \ sum _ {j} ^ {m} g (\ phi _ {j}) \ cdot \ left (s_ {j} -E ( \ mu, \ mu _ {j}, \ phi _ {j}) \ right) = \ mu + \ phi '^ {2} \ cdot \ sum _ {j} ^ {m} g_ {j} \ cdot ( s_ {j} -E_ {j})}$

If the player has not played during the evaluation period, his values ​​for and do not change. Otherwise its worth for . This then corresponds to the calculated one${\ displaystyle \ mu}$${\ displaystyle \ sigma}$${\ displaystyle \ phi}$${\ displaystyle \ phi ^ {\ ast}}$

${\ displaystyle \ phi '= \ phi ^ {\ ast} = {\ sqrt {\ phi ^ {2} + \ sigma ^ {2}}}}$

#### Step 8

Finally, the Glicko-2 values ​​can be converted into the known Glicko values.

${\ displaystyle r '= q ^ {- 1} \ cdot \ mu' +1500 = {\ tfrac {\ ln (10)} {400}} \ cdot \ mu '+ 1500 = 173 {,} 7178 \ cdot \ mu '+1 500}$
${\ displaystyle \ mathrm {RD} '= q ^ {- 1} \ cdot \ phi' = {\ tfrac {\ ln (10)} {400}} \ cdot \ phi '= 173 {,} 7178 \ cdot \ phi '}$