Audited ·Last updated 28 Jul 2026·6 citations·Tier 1·0 uses

Elo Rating Calculator

Free Elo rating calculator. Enter two ratings, a K-factor and a result to get the expected score and both new ratings, on the chess 400 or FIFA 600 scale.

Elo Rating Calculator

The rated player's or team's pre-game rating. Negative values are allowed — the Elo scale is an arbitrary interval scale with no natural zero, and several derived systems centre on 0.
The opponent's pre-game rating. Only the difference between the two ratings matters — 1600 vs 1800 gives exactly the same expected score as 2400 vs 2600.
How much weight one result carries. FIDE uses 40 for new players and juniors under 2300, 20 below 2400 and 10 at 2400 and above. FIFA uses 5 to 60 depending on the importance of the match. Chess.com-style pools and video-game ladders commonly use 32.
The rating gap at which the favourite is expected to score 10 points out of 11. Chess (FIDE and US Chess) uses 400; the FIFA World Ranking uses 600, which makes the curve flatter so the same gap implies a smaller advantage.
Result
Your expected score
0.2403
The long-run average score the model predicts for you against this opponent, between 0 and 1. Read it as a percentage of a point: 0.24 means that across many games you would be expected to take 24% of the available points, whether that comes from wins or from draws.
Your new rating
1,615.1949
Your rating change
15.1949
Opponent expected score
0.7597
Opponent new rating
1,784.8051
Update summary
Win vs 1800 · expected 0.24 · +15.19 → 1615

Background.

This Elo rating calculator applies one rating update: enter both pre-game ratings, a K-factor, a scale factor and the result, and it returns your expected score, both new ratings and the signed movement. It implements the logistic formula published by the bodies that actually operate Elo systems — the US Chess Federation, FIDE and FIFA — rather than a paraphrase of it.

The idea behind Elo is deceptively small. Every competitor carries a number that estimates their strength. Before a game, the difference between two numbers implies an expected score: not a prediction of who wins, but the average number of points you would expect to take if the same pairing were repeated many times. After the game, each player's rating moves by the K-factor multiplied by the gap between what actually happened and what was expected. Score above expectation and your rating rises; score below it and your rating falls; hit expectation exactly and nothing moves. Because your gain is always the opponent's loss, the total rating in a pool is conserved, which is what stops the numbers inflating over time.

The consequence that makes Elo genuinely useful, and that a win percentage can never reproduce, is that the size of the move depends on who you played. On the default 400-point scale a player rated 1600 who beats an 1800 gains roughly three quarters of the full K, because the model expected them to take only about 0.24 of a point. The same player beating a 1200 gains only about one eleventh of K (0.09 × K), because the model already expected them to take 0.91 of a point. Losing to that 1200 costs the other 0.91 of K — roughly ten times what the win was worth. That asymmetry is the entire value of a rating system: it converts a schedule-blind record into a strength estimate that can be compared across opponents who never met.

Two choices are exposed as inputs rather than baked in, because the operating bodies genuinely disagree about them. The first is K. FIDE's Rating Regulations set K = 40 for a player new to the list until 30 games are complete and for all players until the end of the year of their eighteenth birthday while rated under 2300, K = 20 while a rating remains under 2400, and K = 10 once a published rating has reached 2400. US Chess has abandoned fixed bands entirely and now computes K = 800 divided by the effective number of games plus games in the event, so a beginner's rating moves many times faster than a veteran's. FIFA's football ranking uses a match-importance coefficient from 5 for an out-of-window friendly to 60 for a World Cup quarter-final onwards. There is no single correct K — it is a policy decision about how quickly a rating should chase recent form.

The second is the scale factor. Chess uses 400, meaning a 400-point favourite is expected to score 10 points out of 11. FIFA's SUM algorithm uses 600, which flattens the curve so the same rating gap implies a smaller advantage — a sensible adjustment for a sport where draws are common and single results are noisy. Changing the scale changes what a rating point means, so ratings from a 400-scale pool and a 600-scale pool are not interchangeable.

Below the widget you will find the derivation of the expected-score curve and why the logistic function replaced Arpad Elo's original normal-curve model, the published K-factor tables from all three bodies, a worked example reproduced digit for digit from FIFA's own documentation, an explanation of what Elo cannot do — no draw probability, no margin of victory, no home advantage, no uncertainty estimate — and the specific federation rules this page deliberately does not implement, each quoted so you can apply it by hand.

What is elo rating calculator?

Elo is a paired-comparison rating system: it estimates each competitor's strength as a single number on an arbitrary interval scale, and updates those numbers after every game by comparing the result against the result the current ratings predicted. It was developed by Arpad Elo, a physics professor and chess master, to replace the ad hoc rating scheme the US Chess Federation used in the 1950s, and it was adopted by FIDE for international chess in 1970. Its structure has since been borrowed by association football (both the FIFA World Rankings and the independent World Football Elo), table tennis, Scrabble, go, esports ladders, competitive video games, and a long tail of statistical work outside sport entirely. The system has two moving parts. The expected score is a logistic function of the rating difference: E = 1 / (1 + 10^(−D/S)) where D is your rating minus your opponent's and S is the scale factor, so equal ratings give exactly 0.5 and the curve approaches but never reaches 0 or 1. The update rule is R' = R + K(S_actual − E), where the actual score is 1 for a win, 0.5 for a draw and 0 for a loss. Elo's own 1978 book set the class interval at 200 points and used a normal-curve model for the expectancy, but the implementations that survived — the USCF's and FIDE's — use the logistic form above, which has heavier tails and empirically fits chess results better. Two properties are worth internalising. First, only the difference between ratings matters, never their level: 1600 against 1800 is the same problem as 2400 against 2600. Second, the update is zero-sum, so a rating pool cannot inflate through play alone; it can only inflate or deflate through players entering and leaving.

How to use this calculator.

  1. Enter your pre-game rating and your opponent's pre-game rating. Only the gap between them affects the expected score, so if you know the gap you can enter any pair with that difference.
  2. Set the K-factor for your pool. Use 20 for a typical FIDE-rated adult under 2400, 10 at 2400 and above, 40 for a new or junior player under 2300, 32 for most online chess and game ladders, or a FIFA importance coefficient between 5 and 60 if you are reproducing a football ranking.
  3. Set the scale factor. Leave it at 400 for chess and most game ladders; change it to 600 to reproduce the FIFA World Ranking, whose published formula uses that value.
  4. Choose the result from your point of view. Switch between win, draw and loss with the same ratings to see all three branches — the win and the loss are not symmetric around the draw unless the two ratings are equal.
  5. Read the expected score first. It is the model's honest statement of how strong the pairing is, and it is what makes the rating movement interpretable: a large gain means you did something the model thought was unlikely.
  6. Read both new ratings. They always move by equal and opposite amounts. If you are updating a whole tournament rather than a single game, add up K × (score − expected) across all games against each opponent's pre-event rating rather than updating after every round — that is how both FIDE and US Chess do it.

The formula.

E = 1 ⁄ (1 + 10^((R_opp − R) ⁄ S)) R′ = R + K × (Sc − E)

The expected score is a logistic function of the rating difference. Writing D for your rating minus your opponent's:

E = 1 / (1 + 10^(−D/S))

At D = 0 the exponent is zero, 10^0 = 1, and E = 1/2 — equal ratings, equal expectation. At D = +S the exponent is −1, 10^(−1) = 0.1, and E = 1/1.1 = 0.9090…, which is the sentence 'a favourite one scale factor ahead is expected to score ten points out of eleven'. That single fact is what fixes the meaning of the scale: 400 in chess, 600 in the FIFA World Ranking. As D grows the curve approaches 1 asymptotically and never reaches it, which is why a rating system can never assert certainty.

The update rule is:

R′ = R + K × (Sc − E)

where Sc is 1, 0.5 or 0. Glickman and Jones write it as rpost = rpre + K(S − Sexp) and the US Chess system document as Rs = R0 + K(S − E); FIFA writes the identical structure as P = Pbefore + I × (W − We), where the match-importance coefficient I plays the role of K. The bracket is the surprise: how much better or worse the result was than the ratings predicted. Multiplying by K converts a surprise into rating points.

The opponent's update is the mirror image and requires no separate formula. Their expected score is 1 − E and their actual score is 1 − Sc, so their change is K((1 − Sc) − (1 − E)) = −K(Sc − E), exactly the negative of yours. Elo is therefore zero-sum: the sum of all ratings in a closed pool is invariant under play.

The practical implications follow directly from the shape of the curve. Beating a stronger opponent pays more than beating a weaker one, because (1 − E) is larger when E is small. Losing to a weaker opponent costs more than losing to a stronger one, for the same reason. And a draw is a gain for the underdog and a loss for the favourite whenever the ratings differ, because 0.5 sits above the underdog's expectation and below the favourite's. Running the same pairing through the win, draw and loss options in the dropdown makes all three visible at once.

A note on what the K-factor really controls. K sets the trade-off between responsiveness and stability. A large K makes a rating chase recent form and jump around on noise; a small K makes it stable but slow to recognise genuine improvement. Every federation resolves this by making K a function of how much is already known about the player: FIDE steps it down from 40 to 20 to 10 as a career accumulates, and US Chess makes it continuous with K = 800/(N′ + m), where N′ is the effective number of prior games. Both are saying the same thing — the more evidence you already have, the less one game should move your estimate.

All arithmetic here is done in exact decimal form and rounded only at the boundary, so the expected score for a 200-point gap on the 400 scale comes out as 0.2402530734 rather than a value that has drifted through repeated floating-point exponentiation.

A worked example.

Example

This is FIFA's own published worked example, reproduced digit for digit. A national team with 1300 ranking points wins a continental qualifier away against a team with 1500 points. A qualifier carries an importance coefficient of I = 25, and the FIFA World Ranking uses a 600-point scale, so the expected result for the weaker side is We = 1 ÷ (10^(−(1300 − 1500)/600) + 1) = 1 ÷ (1 + 10^(1/3)) = 1 ÷ (1 + 2.15443469…) = 1 ÷ 3.15443469… = 0.3170140131. The team was expected to take about 32% of the point on offer, and it took all of it, so the surprise is 1 − 0.3170140131 = 0.6829859869. Multiply by the importance coefficient: 25 × 0.6829859869 = 17.0746496737 points. The winner finishes on 1300 + 17.07 = 1317.0746496737 and the loser on 1500 − 17.07 = 1482.9253503263. FIFA's document states the outcome as 'team A wins 17 points and has P = 1317 points after the match. Team B loses the same amount of points and thus ends up with 1483 points after the match' — which is exactly what the calculator returns once you round to whole points. Two things are worth noticing. First, the loser's loss equals the winner's gain to the last decimal, which is the zero-sum property. Second, if you rerun the same pairing with the scale factor set to 400 instead of 600, the expected score drops to about 0.2403 and the upset becomes worth about 19 points instead of 17 — the same result, on a steeper scale, is treated as a bigger surprise. Which number is correct depends entirely on which ranking you are trying to reproduce, which is why the scale is an input on this page rather than a constant.

resultwin
opponent Rating1,500
scale Factor600
k Factor25
player Rating1,300

Frequently asked questions.

What is the Elo formula?
Two equations. The expected score is E = 1 / (1 + 10^(−D/S)) where D is your rating minus your opponent's and S is the scale factor (400 in chess, 600 in the FIFA World Ranking). The update is R′ = R + K × (actual score − E), where the actual score is 1 for a win, 0.5 for a draw and 0 for a loss. Glickman and Jones state these as E = 1/(1 + 10^−(RA−RB)/400) and rpost = rpre + K(S − Sexp); the US Chess system document uses the same pair; FIFA writes the update as P = Pbefore + I × (W − We) with the importance coefficient I in the role of K. The opponent's update is automatically the negative of yours, so no second calculation is needed.
What K-factor should I use?
It depends on whose system you are reproducing, because K is a policy choice rather than a constant. FIDE's Rating Regulations set K = 40 for a player new to the rating list until they have completed events totalling at least 30 games and for all players until the end of the year of their eighteenth birthday while rated under 2300, K = 20 as long as the rating remains under 2400, and K = 10 once a published rating has reached 2400. US Chess has retired those bands and now uses K = 800 / (N′ + m), where N′ is the effective number of prior games and m the games in the current event — so a player with 6 effective games in a 4-round event has K ≈ 80, while one with 50 effective games has K ≈ 15. FIFA uses a match-importance coefficient from 5 for a friendly outside an international window up to 60 for a World Cup match from the quarter-finals onwards. For a casual ladder, 32 is the common default.
Why is the scale factor 400, and when should I use 600?
The scale factor defines what a rating point means: a competitor exactly one scale factor ahead is expected to score 10 points out of 11, since E = 1/(1 + 10^−1) = 1/1.1 = 0.909. Chess settled on 400, which pairs with Elo's 200-point class interval — a 200-point gap gives the favourite an expected score of about 0.76. FIFA's published SUM algorithm uses We = 1 / (10^(−dr/600) + 1), a 600-point scale, which flattens the curve: the same 200-point gap implies an expected score of about 0.68 rather than 0.76. That is a deliberate choice for a low-scoring sport with frequent draws, where a single result carries less information than a chess game does. Ratings on different scales are not comparable, so pick the scale of the system you are reproducing and stay on it.
Does this calculator apply FIDE's 400-point rule?
No, and that is deliberate. FIDE Rating Regulations §8.3.1 states that 'a difference in rating of more than 400 points shall be counted for rating purposes as though it were a difference of 400 points' (with a carve-out for players rated 2650 and above, for whom the actual difference is always used). This calculator implements the plain logistic update without the cap, because the cap is a FIDE administrative rule rather than part of the model, and applying it silently would give wrong answers for the many pools — US Chess, FIFA, online ladders — that do not use it. If you are reproducing a FIDE calculation with a gap over 400 points, cap the opponent's rating at your rating ± 400 before entering it here.
Why did I gain so few points for beating a much weaker opponent?
Because the model already expected you to win, so there was very little surprise to convert into rating points. Your gain is K × (1 − E). Against an opponent 400 points below you on the 400 scale, E = 0.909, so a win pays only 0.091 × K — about 1.8 points at K = 20. The mirror case is what makes the system work: losing that same game costs you 0.909 × K, roughly 18 points, ten times as much as the win was worth. This asymmetry is why farming weak opposition does not raise an Elo rating and why a single bad loss against a much weaker player is genuinely expensive. It is also why rating systems are more informative than win percentages, which treat every win identically.
Can Elo tell me the probability that I win the game?
Not directly, and this is the most common misreading of the output. The expected score is the average number of points you would take across many repetitions, not the probability of a win. In a two-outcome sport where draws are impossible, the two coincide. In chess, football or any sport with draws they do not: an expected score of 0.60 is consistent with a 60% win probability and no draws, or with a 40% win / 40% draw / 20% loss distribution, or with many other splits. Standard Elo carries no draw model at all, which is one of its acknowledged limitations. Systems such as Glicko and Glicko-2 extend Elo by adding a rating deviation that quantifies uncertainty, and other extensions model the draw explicitly; neither is implemented here.
Does Elo account for home advantage or margin of victory?
Not in its published form, no. The standard update sees only the result — 1, 0.5 or 0 — and the two ratings. It does not know where the game was played, by how much it was won, or how long it lasted. Practical implementations bolt these on: many football Elo variants add a fixed number of points to the home side's rating before computing the expectation, and several add a margin-of-victory multiplier to the K-factor so a heavy win moves more than a narrow one. FIFA's official SUM algorithm does neither of those, but it does add two adjustments of its own — a penalty shoot-out win scores 0.75 rather than 1 with the loser credited a draw, and a team that would lose points in a knock-out round of a final competition instead keeps its total. This calculator implements the plain model; apply those adjustments to the inputs if you need them.
Why is the Elo update zero-sum, and does that mean ratings never inflate?
It is zero-sum by construction. Your expected score is E and the opponent's is 1 − E; your actual score is Sc and theirs is 1 − Sc; so their change is K((1 − Sc) − (1 − E)) = −K(Sc − E), exactly the negative of yours. Play alone therefore cannot change the total rating in a closed pool. Ratings still drift in practice, because pools are not closed: players enter with provisional ratings that may be too high or too low, and leave carrying rating points with them. Chess has seen both deflation (through the 1980s and 1990s, as improving juniors entered underrated and extracted points from the pool) and inflation. Federations manage this with entry rules, rating floors and periodic recalibration rather than by changing the update formula.
How do I update a rating over a whole tournament rather than one game?
Compute the expected score against each opponent using everyone's pre-event ratings, sum those expectations to get Sexp, sum your actual scores to get S, and apply the update once: R′ = R + K(S − Sexp). Both FIDE and US Chess work this way — the US Chess document is explicit that 'the adjustment is made based only on the current tournament, so that rather than recomputing a rating from a player's entire tournament history, a pre-tournament rating is used as a summary'. Updating after every round instead would let a rating rise mid-event and then inflate the expectations of later rounds, which changes the answer. To use this single-game calculator for a tournament, run it once per game with your unchanged pre-event rating and add up the rating changes.
What does this calculator deliberately not implement?
Four things, each because implementing it silently would give wrong answers for other pools. FIDE's 400-point difference cap (§8.3.1) and its rule that K × n may not exceed 700 in a rating period. US Chess's bonus term, max(0, K(S − E) − B√m′) with B = 10 from January 2025, and its rating floors, the absolute floor being 100. FIFA's penalty shoot-out scoring (0.75 for the winner, 0.5 for the loser) and its rule that a team earning negative points in a knock-out round of a final competition keeps its previous total instead. And provisional or special ratings for players with very few games, which every federation computes with a different formula entirely. All are quoted in the sources below so you can apply them by hand to the inputs or the output.

References& sources.

  1. [1]Glickman, M. E. & Jones, A. C. (1999). 'Rating the Chess Rating System.' Chance, 12(2), 21–28. States the model this calculator implements: 'the expected score of the game for player A is assumed to be E = 1 / (1 + 10^−(RA−RB)/400) … where the score of a game is 1 if player A wins, 1/2 if the game is a draw, and 0 if player A loses', and the update 'rpost = rpre + K(S − Sexp)'. Also documents the historic USCF K bands of 32 / 24 / 16 and the connection to the Bradley-Terry paired-comparison model.
  2. [2]Glickman, M. E. & Doan, T. The US Chess Rating System (revision of 6 April 2026), §4.2 'Standard rating formula'. Gives the current official US Chess winning expectancy We(R,Ri) = 1 / (1 + 10^−(R−Ri)/400), the update Rs = R0 + K(S − E), and the modern variable K-factor: 'The value of K, which used to take on the values 32, 24 or 16, depending only on a player's pre-event rating, is now defined as K = 800 / (N′ + m)'. Also documents the bonus term and the absolute rating floor of 100.
  3. [3]FIDE Rating Regulations, FIDE Handbook chapter B.02 (effective 1 March 2024). §8.1 sets the arbitrary rating scale with a 200-point class interval and gives the score-to-rating-difference conversion tables. §8.3.3 sets the K-factors: 40 for a player new to the rating list until 30 games are completed, 20 while the rating remains under 2400, 10 once a published rating has reached 2400, and 40 for all players until the end of the year of their 18th birthday while rated under 2300, with K × n capped at 700 per rating period. §8.3.1 states the 400-point difference rule that this calculator deliberately does not apply.
  4. [4]FIFA, 'Revision of the FIFA / Coca-Cola World Ranking' — the SUM algorithm. Gives the update 'P = Pbefore + I * (W – We)' and the expected result 'We = 1 / (10(-dr/600) + 1)', the full table of importance coefficients I from 5 (friendlies outside international match calendar windows) to 60 (FIFA World Cup matches from the quarter-final stage onwards), the penalty shoot-out scoring rule, and the worked example reproduced on this page: a 1300-rated team beating a 1500-rated team in a qualifier finishes on 1317 while the loser finishes on 1483.
  5. [5]Bradley, R. A. & Terry, M. E. (1952). 'Rank Analysis of Incomplete Block Designs: I. The Method of Paired Comparisons.' Biometrika, 39(3/4), 324–345 (DOI 10.2307/2334029). The paired-comparison model that the logistic Elo expectancy is equivalent to; Glickman & Jones note that 'among standard paired comparison models, the Bradley-Terry model has the strongest connection to the USCF's implementation of the Elo rating system'. No URL is given because the publisher's copy sits behind an access wall.
  6. [6]Elo, A. E. (1978). The Rating of Chessplayers, Past and Present. Arco Publishing, New York (ISBN 0-668-04721-6). The original monograph, which sets the 200-point class interval and derives the expectancy from a normal-curve performance model. No authorised full text is published online, so no URL is given; every quantitative claim attributed to it on this page — the class interval, the normal-curve original, the zero-sum update — is independently confirmed by the Glickman and FIDE sources above, which is why the logistic rather than the normal form is implemented here.

In this category

Embed

Quanta Pro

Paid features are coming later.

  • All 590 calculators remain free
  • No billing is enabled
Coming soon