As with many other rating systems, a player's rating is adjusted by calculating:
1) Ratingnew = Ratingold +(Actualscore-Expectedscore)*Kfactor
where Kfactor is a constant and the expected score is given by:
2) Expectedscore = 1/(1+10^[(Ratingopponent-Ratingold)/400)])
Non Standard Calculation:
The Victoria Rating System includes games played at all time controls, blitz, active and regular tournament speed to form a single blended chess rating. The effects of different time controls are compensated for by using different Kfactor for different time controls. The general approach is based on this article by Jeff Sonas. Slow games are given the most importance with the largest Kfactor and blitz games the least importance with the smallest Kfactor. At time of writing, the Kfactor used are: 50, 20, and 10 for Slow, Active, and Blitz events respectively.
Performance ratings are usually calculated using:
3) Ratingperformance = Ratingaverage + 400*(wins-losses)/(number_of_games)
where Ratingaverage is the average rating of the opponents. This is based on a linearization of equation (2) to find the rating at which the player would not be expected to gain or lose rating points, hence his 'performance' rating. This works well if all the opponents are within the linear range of the expansion of equation (3), i.e. if all of the opponents ratings are within 400 points of the players probable strength. The typical tournament at the Victoria Chess Club involves games against players with ratings from 1200 to 2300 so the linearity assumption is definately violated. Typically too, the newcomer who needs to be given an initial performance rating will be at the bottom end of this strength range. In this case, equation (3) will result in an overestimate of the player's strength and eventual rating inflation. To counteract this, an initial performance rating using equation (2) is made. It is then recalculated by replacing opponents_rating in
new_opponents_rating =MIN(opponents_rating, Ratingperformance +400) [if opponents_rating > Ratingperformance]
new_opponents_rating =MAX(opponents_rating, Ratingperformance -400) [if opponents_rating < Ratingperformance]
to calculate a new performance rating. This proceedure is iterated until the changes in calculated peformance rating are below a specified interval.
In the case of quickly improving players, it is necessary to adjust their ratings by other means in order that their improvement does not result in rating deflation for others. The system allows for hand adjustment by the operator of individual ratings. It also keeps track of a statistical measure of their rating performance in order to evaluate if the indicated rating change is statistically significant (i.e. due to an actual change in strength) This statistical measure is being evaluated with a view towards automating rating adjustment for quickly improving players (and we don't know any rapidly worsening players right?)