Performance rating (chess)

Performance rating (abbreviated as Rp) in chess is the level a player performed at in a tournament or match based on the number of games played, their total score in those games, and the Elo ratings of their opponents. It is the Elo rating a player would have if their performance resulted in no net rating change.

Due to the difficulty of computing performance rating in this manner, however, the linear method and FIDE method for calculating performance rating are in much more widespread use. With these simpler methods, only the average rating (abbreviated as Rc) factors into the calculation instead of the rating of each individual opponent. Regardless of the method, only the total score is used to determine performance rating instead of individual game results. FIDE performance ratings are also used to determine if a player has achieved a norm for FIDE titles such as Grandmaster (GM).

Definition
A player's performance rating in a series of games is the Elo rating a player would need to have to expect to get their actual total score against the opponents they faced in those games. A practical way to understand the performance rating centers around the fact that a player's actual rating changes after each game played. By the definition, the only way a player's actual rating would not change after this series of games is if their rating at the start of these games was already their performance rating over the series. With this definition, individual game results do not directly factor into the calculation. Unlike the linear and FIDE methods, however, the ratings of individual opponents do affect the calculation.

Mathematical definition
Given a total score $$s$$ over a series of $$n$$ games and opponent ratings $$R_i (R_1, R_2, ..., R_n)$$, the perfect performance rating is the number $$R$$ where the expected score on the right equals the actual score on the left:

$$s=f(R)=\sum_{i}\frac{1}{1+10^{(R_i-R)/400}}$$

Note that the two edge cases have unusual results:


 * If someone loses all their games ($$s = 0$$), their performance rating is technically $$R = -\infty$$
 * If someone wins all their games ($$s = n$$), their performance rating is technically $$R = \infty$$

Calculation
Since $$f$$ is a monotonically increasing function, we can find $$R$$ by performing binary search over the domain. This means we set a lower and an upper bound for reasonable ratings (here 0 and 4000), then check how much someone rated at the midpoint (2000) should have scored. If the actual score is more, this means the performance was better than 2000, so we repeat the search on the halved interval (between 2000 and 4000, midpoint at 3000).

A sample implementation in Python follows:

FIDE performance rating
FIDE calculates a player's performance rating $$r_p$$ as $$r_p = r_c + d_p$$, where $$r_c$$ is the average rating of the opponents and $$d_p$$ is an additional rating difference based on the player's total score divided by the number of rounds played. That fractional score is called $$p$$. There is no analytic expression for $$d_p$$. Instead, FIDE provides a lookup table for the values of $$d_p$$ based on the values of $$p$$ rounded to the nearest hundredth. The values of $$d_p$$ for common lengths of tournaments (eight to eleven rounds) are listed below under rating difference examples.

Like the true definition, the FIDE method also does not depend on individual game results. Unlike the true definition, the FIDE method does not depend on individual opponent ratings.

Rating difference examples
Note: Zero scores have $$d_p = -800$$, even scores have $$d_p = 0$$, and perfect scores have $$d_p = 800$$.

Use in norms
One of the requirements to earn a FIDE title in a standard manner is to achieve a certain number of norms. A norm in chess is awarded if a player has a performance rating in a tournament at or above a threshold rating. As an example, for the Grandmaster (GM) title, a player must achieve three GM norms corresponding to performance ratings of at least 2600 against opponents with an average rating of 2380 and must also have reached a required peak live rating of 2500. These norms are calculated with the FIDE performance rating method.

Linear performance rating
Because of the need to have a lookup table to calculate the rating difference $$d_p$$ in FIDE performance ratings, another simpler method instead calculates the rating difference as $$d_p = 800p - 400$$, where $$p$$ is the percentage score in this case. The overall performance rating is then calculated as $$r_p = r_c + d_p$$, the same as the FIDE method.

An equivalent way to calculate this performance rating is by taking the average of


 * opponent's rating + 400 for each win
 * opponent's rating - 400 for each loss
 * just their rating for each draw.

A disadvantage becomes obvious: An additional win against a low-rated player can actually lower your performance rating.

This method is sometimes called the linear method due to the linear dependence on the percentage score $$p$$. Like the true definition, the linear method also does not depend on individual game results. Unlike the true definition, the linear method does not depend on individual opponent ratings.

Comparison between methods
Different methods for calculating the performance rating generally give similar results. The only score in which all methods give exactly the same result is an even score against opponents with no skew away from their average rating, in which case the performance rating is the average of the opponents' ratings. There are larger discrepancies closer to zero scores or perfect scores, or a larger variance in the individual ratings (in which case the individual ratings have a larger effect). The true definition of the performance rating gives $-∞$ for a zero score and $∞$ for a perfect score, whereas the other methods yield finite values.

As a specific example, if a player scores 2½/3 against three opponents rated 2400, 2500, and 2600, their performance ratings with the different methods are 2785 (true definition), 2773 (FIDE), and 2767 (linear).