Chess Calculator

Chess Elo & Rating Calculator
Calculate New Elo Rating (Post-Game)Calculate Win Probability (%)Calculate Tournament Performance Rating
Win (1.0)Draw (0.5)Loss (0.0)
40 (New/Junior)20 (Standard)10 (Pro 2400+)
Result:

Score:

function updateFields(){var mode=document.getElementById('calc_mode').value;var r3=document.getElementById('row3');var r4=document.getElementById('row4');var l1=document.getElementById('label1');var l2=document.getElementById('label2′);if(mode==='elo'){r3.style.display='table-row';r4.style.display='table-row';l1.innerHTML='Current Player Rating:';l2.innerHTML='Opponent Rating:';}else if(mode==='prob'){r3.style.display='none';r4.style.display='none';l1.innerHTML='Player Rating:';l2.innerHTML='Opponent Rating:';}else if(mode==='perf'){r3.style.display='table-row';r4.style.display='none';l1.innerHTML='Average Opponent Rating:';l2.innerHTML='Total Games Played:';document.getElementById('label3′).innerHTML='Total Score (Points):';}}function calculateChess(){var mode=document.getElementById('calc_mode').value;var v1=parseFloat(document.getElementById('input1').value);var v2=parseFloat(document.getElementById('input2').value);var showSteps=document.getElementById('steps').checked;var dBox=document.getElementById('detailBox');dBox.innerHTML=";if(isNaN(v1)||isNaN(v2)){alert('Please enter numeric ratings');return;}if(mode==='elo'){var score=parseFloat(document.getElementById('input3').value);var k=parseFloat(document.getElementById('input4').value);var exp=1/(1+Math.pow(10,(v2-v1)/400));var change=k*(score-exp);var final=v1+change;document.getElementById('resultLabel').innerHTML='New Rating';document.getElementById('resultValue').innerHTML=Math.round(final)+' ('+(change>=0?'+':")+change.toFixed(2)+')';if(showSteps){dBox.style.display='block';dBox.innerHTML='Expected Score: '+exp.toFixed(4)+'
Calculation: '+v1+' + '+k+' × ('+score+' – '+exp.toFixed(4)+')';}else{dBox.style.display='none';}}else if(mode==='prob'){var exp=1/(1+Math.pow(10,(v2-v1)/400));document.getElementById('resultLabel').innerHTML='Win Probability';document.getElementById('resultValue').innerHTML=(exp*100).toFixed(2)+'%';if(showSteps){dBox.style.display='block';dBox.innerHTML='Using Elo Logistic Curve: 1 / (1 + 10^((R_opp – R_p)/400))';}else{dBox.style.display='none';}}else if(mode==='perf'){var totalScore=parseFloat(document.getElementById('input3').value);if(isNaN(totalScore)){alert('Enter points scored');return;}var diff=0;var percentage=(totalScore/v2);if(percentage>=1){diff=800;}else if(percentage800)diff=(percentage-0.5)*800;}var perf=v1+diff;document.getElementById('resultLabel').innerHTML='Performance Rating';document.getElementById('resultValue').innerHTML=Math.round(perf);if(showSteps){dBox.style.display='block';dBox.innerHTML='Based on scoring '+(percentage*100).toFixed(1)+'% against average field of '+v1;}}}updateFields();

How to Use the Chess Calculator

Whether you are a club player or a Grandmaster, understanding how your rating changes is vital to tracking progress. This chess calculator allows you to compute Elo rating adjustments, predict win probabilities, and determine tournament performance ratings (TPR) based on standard FIDE and USCF mathematical models.

To use the tool, select your calculation goal from the dropdown menu and enter the required data points. Our tool handles the complex exponents and logistic curves used by official chess federations.

Player Rating
Your current official rating (e.g., FIDE, USCF, or Lichess/Chess.com rating).
Opponent Rating
The current rating of the person you played against.
K-Factor
The coefficient that determines how much a single game impacts your rating. Standard values are 40 for new players, 20 for established players, and 10 for top-tier professionals.

The Chess Elo Formula

The modern chess calculator uses the Elo rating system, named after Arpad Elo. It treats chess results as a probability distribution. Before a game begins, the system calculates an "Expected Score" (E) for the player.

Expected Score (Ea) = 1 / (1 + 10^((Rb – Ra) / 400))

Once the result is known, your new rating is calculated using:

New Rating = Current Rating + K × (Actual Score – Expected Score)

  • Actual Score: 1 for a win, 0.5 for a draw, 0 for a loss.
  • Ra/Rb: Ratings of Player A and Player B.
  • 400: The standard scale factor used to normalize rating differences.

Calculation Example

Scenario: You are rated 1600 (Player A) and you win a game against a player rated 1750 (Player B). You are an established club player with a K-factor of 20.

Step-by-step solution:

  1. Calculate rating difference: 1750 – 1600 = 150
  2. Calculate Expected Score (Ea): 1 / (1 + 10^(150/400)) ≈ 0.297
  3. Identify Actual Score (Sa): 1.0 (Win)
  4. Calculate Rating Change: 20 × (1.0 – 0.297) = 20 × 0.703 = +14.06
  5. Final New Rating: 1600 + 14 = 1614

Common Chess Rating Questions

What is a Performance Rating?

A Performance Rating (or Tournament Performance Rating) is the rating level at which you played during a specific set of games. If you score 50% against a field of 2000-rated players, your performance rating is 2000. It is calculated by taking the average rating of your opponents and adding or subtracting points based on your win percentage.

Why do different sites use different K-factors?

The K-factor determines how "volatile" a rating is. FIDE uses K=40 for players with fewer than 30 games to help them reach their true skill level faster. For Grandmasters, K=10 is used to ensure stability, as one bad tournament shouldn't completely destroy a world-class rating.

Can my rating go down after a win?

In the standard Elo system used by this chess calculator, your rating cannot go down after a win. However, in some systems like Glicko-2 (used by Lichess), if your "rating deviation" (uncertainty) is very high, you might see unusual movements, but generally, a win always results in a positive or neutral change.

Leave a Comment