Skip to content

How does lichess update rating and RD after each game #13738

Answered by niklasf
LukoTab asked this question in Q&A
Discussion options

You must be logged in to vote

Lichess assumes that a rating period is a fixed time interval. For integer rating periods we want to exactly match the Glicko-2 paper. In particular, from step 6 we get:

phi(n+1) = sqrt(phi(n)^2 + sigma^2)

Now Lichess just smoothly extends this to fractional rating periods by solving that recurrence relation, resulting in:

phi(elapsedRatingPeriods) = sqrt(phi(0)^2 + elapsedRatingPeriods * sigma^2)

This is implemented here:

private def calculateNewRD(phi: Double, sigma: Double, elapsedRatingPeriods: Double) =
Math.sqrt(Math.pow(phi, 2) + elapsedRatingPeriods * Math.pow(sigma, 2))

Replies: 1 comment

Comment options

You must be logged in to vote
0 replies
Answer selected by kraktus
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants