How do you calculate your Tournament Performance Rating?

I can think about two different ways to answer my question:

  1. Do you know the formula for calculating your TPR (FIDE or USCF)?

  2. Can you link me to a FIDE TPR calculator and then a USCF TPR calculator?

    • I recall that rating change calculators have this TPR function.

3 Answers 3


TPR calculators and expected rating change.

http://englishchess.org.uk/Juniors/tournament-performance-calculator/ http://www.uschess.org/content/view/13146/836/

Basically Performance rating is the average of your opponent's ratings with an adjustment based on the score of the game. For each win, you add your opponent's rating + 400, a draw is just your opponent's rating, and a loss is your opponent's rating - 400. There is an exception for a perfect score, then the adjustment is 800.

  • 4
    The links are nice, but the explanation you provide doesn't match with the results from the calculators. In the USCF, a perfect score gives an adjustment of 400, not 800. And rating plus or minus 400 for non-perfect scores might be a crude estimate, but it is by no means the formula they actually use, for either USCF or FIDE.
    – D M
    Jul 31, 2017 at 17:14
  • 1
    Watching FIDE tournaments gives the adjustment. I watched neither a USCF nor an England tournament, so I can't verify those. I do know that USCF uses a percentage likely to win to find their adjustment. Jul 31, 2017 at 17:38

Section 1.48 of the FIDE Title Regulations effective from 1 July 2017 specifies how the performance rating is calculated. The average rating of the opponents is adjusted by a value determined by looking up the percentage score in a table.

For example, after Round 12 of the 2018 Candidates Tournament, Ding Liren had 6.5 out of 12 points, for a rounded percentage score of 54%. According to the table, this corresponds to an adjustment of +29. The rounded average rating of his opponents was

(2763 + 2 * 2794 + 2 * 2809 + 2 * 2767 + 2 * 2784 + 2 * 2799 + 2800) / 12 ~= 2789,

so his performance rating at this point was 2789 + 29 = 2818, as you can see in this screenshot:

enter image description here


This answer spells out the actual calculation of performance rating for USCF tournaments, as in the June 2017 Rating Estimator that Fred Knight's answer points to. If you view the page source at that link, the calculation is given in the form of the code for the performanceRating function.

Aside from details about whether one has an established rating and such, the basic calculation that it performs for an established player is as follows:

  1. When a player with rating playerRating takes on an opponent whose rating is opponentRating, her expected score for the game is given by the formula 1 / (10^(opponentRating - playerRating) / 400) + 1), which will be a number between 0 and 1.

  2. The performanceRating function makes a guess at the playerRating, and sums up the results from step 1 across all the games entered for the player. That sum is the total score a player with that rating would be expected to get against the listed opponents.

  3. Depending on whether the total expected score from step 2 is higher or lower than the player's actual tournament score as entered in the estimator, the performanceRating function iteratively adjusts its guess up or down as needed until it narrows in on the playerRating value that yields an expected score that matches the actual tournament score. That is then the player's performance rating for the tournament.

In case anyone wants something less opaque than the estimator's source code, here is a Google sheet that allows one to enter opponent ratings and total tournament score as in the USCF estimator, and then iteratively guess performance ratings manually. You should find that the performance rating result matches that of the estimator (again, at least in an ordinary situation not among the various exceptions that the estimator's performanceRating function deals with).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.