Answers.Body: <p>Neither is "correct". You need to consider the effects of any strategy, and determine what's right <em>for your app</em>. Personally I think you should always plan for your app to be popular--and once it's popular, people <em>will</em> attempt to game whatever system you've put in place. So you need to consider the abuse cases in each scenario, as well as how the system serves both new and established users, and decide what factors of the system are most important to you.</p>
  
  <p>Of course within each system, you've got a wide range of options for the actual implementation, which can help to enhance or mitigate the factors laid out below, but I'm going to skip all that since it's not what you asked about.</p>
  
  <p>I think the question as it stands is a little too opinion-based to be answered definitively, so all I'm going to do here is lay out some of the major points of each system. Like I said, it's up to you to decide what's important to you and your user base.</p>
  
  <hr>
  
  <h2>Calculating Using Starting Ratings</h2>
  
  <p>In this system, the main abuse case you need to look at is someone starting a hundred games at once against a dummy account (or several), to win them all and inflate their rating. This is fairly detectable and easy to engineer against (in fact the Elo system already contains some restrictions on such manipulation), but you do need to watch out for it.</p>
  
  <p>The downside to this system is that new players will have very unstable ratings for a time, and take a while to reach their true rating. Most systems already deal with this by vastly increasing the <a href="http://en.wikipedia.org/wiki/Elo_rating_system#Most_accurate_K-factor" rel="nofollow">K-factor</a> for new players, so that their ratings change very quickly for their first 20-50 games or so.</p>
  
  <p>On the other hand, say you have an established player with a high rating (say 1900), up against a new player with a lower, provisional rating (say 1200). If the new player's true strength is actually 2000+, the established player may lose many more points for a loss (1900 vs 1200) than he would have if the score was calculated using the most recent scores. Of course, if the new player is only playing against high-rated players, <em>someone</em> is going to have to foot the bill no matter what system you're using.</p>
  
  <ul>
  <li>Easy to spot potential abuse</li>
  <li>Slow rating convergence</li>
  </ul>
  
  <hr>
  
  <h2>Calculating Using Current Ratings</h2>
  
  <p>In the most-recent-ratings system, the main abuse case is likely to be people dragging out games or prematurely resigning them in order to take advantage of dips or spikes in their or their opponent's ratings. For instance, if I've been on a losing streak, so that I'm below my true average rating, this system actually gives me an <em>incentive</em> to immediately resign every other game where I'm not <em>winning</em>, because I'll lose fewer points now, by resigning them all at once while my rating is already low, than I would if I waited until my rating recovered. Alternately, if my opponent's rating drops while the game progresses, I have a strong incentive to make the game last <em>as long as possible</em> in real time, no matter whether I'm winning or losing--because either way, when my opponent's rating recovers, I'll come off better. This sort of gaming of the system is much harder to detect conclusively.</p>
  
  <p>However, as others have pointed out, the individual results are more accurate, and people's ratings therefore converge faster. You'll also lessen the effect of the game played by a provisional 1200 against an established 1900, though personally I think this is not at all a big deal--established players, in my experience, don't care so much about temporary rating losses as newer players do.</p>
  
  <ul>
  <li>Hard to spot potential abuse</li>
  <li>Faster rating convergence</li>
  </ul>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2014-08-13T16:04:19.630Z
Answers.Text: "e.g. when a game ends, calculate new ratings rather than calculating a rating change to apply" this sounds good. How do you propose to calculate the new ratings?
Answers.UserDisplayName: Cleveland
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2014-08-13T16:29:49.333Z
Answers.Text: @cleveland Of course you can't implement raw ratings directly; that's the whole problem: otherwise you could have people losing points when they win. So instead, you can use the "raw" elo to limit the amount gained or lost, or even just use it as an indicator of possible abuse. I'll expand the answer a bit when I'm not on my mobile.
Answers.UserDisplayName: Henry Keiter
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2014-08-13T20:55:14.243Z
Answers.Text: This is the wrong approach. Why *shouldn't* a new user be able to start a large number of games? If a legitimate new user does start, say, 20 simultaneous games, why should the rating change at the end of the 20th of those games be based on the bogus assumption they're at the default level, rather than on the valuable information that they won X and drew Y of the first 19 games? Running a rating system this way means that ratings converge very slowly because information is deliberately omitted from the calculation.
Answers.UserDisplayName: David Richerby
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2014-08-13T20:57:00.440Z
Answers.Text: And your prioritization makes no sense. You're recommending a scheme that makes the ratings of new players wildly inaccurate (by tens or hundreds of points) because the alternative is to allow established players to game the system for a couple of points here and there. Also, note that, with Elo, you cannot possibly lose points by winning a game.
Answers.UserDisplayName: David Richerby
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2014-08-14T00:43:32.620Z
Answers.Text: @David You seem to have misunderstood the intent of my answer, which is probably my fault for posting on a mobile and not providing as much detail as I should have. I will attempt to clarify this answer this evening.
Answers.UserDisplayName: Henry Keiter
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2014-08-14T07:32:26.290Z
Answers.Text: @HenryKeiter OK but you still don't mention that the potential inaccuracy in calculating with starting ratings is huge (potentially hundreds of points for a strong, active newcomer) whereas the potential for gaming most-recent ratings by established players is very small (probably only a few points here and there).
Answers.UserDisplayName: David Richerby
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2014-08-13T15:50:42.617Z
Answers.LastActivityDate: 2014-08-14T04:38:16.940Z
Answers.LastEditDate: 2014-08-14T04:38:16.940Z
Answers.UserDisplayName: Henry Keiter
Answers.Body: <p>I would use option 2 for a variety of reasons. Maybe the most important one is the potential for abuse of option 1.</p>
  
  <p>Two players start out at the same level in the USCF or FIDE system. They play a long match with one player scoring the vast majority of the points. Eventually the ratings will stabilize at about the loser being (start-400) and the winner being (start+400).</p>
  
  <p>Under option 1, a 2000 player could start 100 games against a similarly-rated friend, win them all, and suddenly be the highest rated person on the site at 3000+. This will, among other things, make your site look bad. The player that lost will fall below 1000, but those points are easily gained back, particularly if he starts 100 games against 1200 players.</p>
  
  <p>Option 2 is much more stable. It is used by all major correspondence sites that I know of (chess.com, redhotpawn etc.)</p>
  
  <p>Edit: More scenarios. An 1800 player accepts the challenge of an 800. A month later, the former 800 is at 1700 and trouncing the 1800. When the 1800 resigns, he loses the maximum rather than what he would have lost against his opponent's true strength.</p>
  
  <p>A 2000-strength player, through some black magic, acquires a rating of 1200. They start a bunch of games against 1400s and win close to all of them. The 1400s will be universally disenchanted at having to lose 20+ points to such a scoundrel.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2014-08-13T15:41:05.663Z
Answers.Text: If this behavior was allowed in a site, that wouldn't be a real chess site. If I saw this behavior in my site, I would limit his ability to play games with the same player to 2 or less. That is cheating. Not real gaming.
Answers.UserDisplayName: MikhailTal
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2014-08-13T15:43:42.677Z
Answers.Text: If the site becomes big enough, this kind of thing will start happening every single day-if not more frequently. Manual policing isn't a viable solution.
Answers.UserDisplayName: Cleveland
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2014-08-13T15:44:45.803Z
Answers.Text: Total limiting. I don't see how a site can allow people to play 100 games to the same player in the first place.
Answers.UserDisplayName: MikhailTal
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2014-08-13T15:46:47.513Z
Answers.Text: I would be fairly annoyed at a site that didn't let me play a match against a friend because they chose a bad ratings algorithm.
Answers.UserDisplayName: Cleveland
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2014-08-13T15:51:57.923Z
Answers.Text: I would be fairly annoyed by that site too, but 100 games in the same time?
Answers.UserDisplayName: MikhailTal
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2014-08-13T15:53:57.593Z
Answers.Text: Let's say 10 games. Is that unreasonable? It's still enough to become the highest-rated player on the site if you have a decently close race at the top.
Answers.UserDisplayName: Cleveland
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2014-08-13T15:58:50.970Z
Answers.Text: 10 with the same person? I'd limit it to 2 in my site, one as black, and one as white.
Answers.UserDisplayName: MikhailTal
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2014-08-13T15:36:51.687Z
Answers.LastActivityDate: 2014-08-13T16:11:24.040Z
Answers.LastEditDate: 2014-08-13T16:11:24.040Z
Answers.UserDisplayName: Cleveland
Answers.Body: <p>If you were modeling after the USCF system, you would be looking at scenario 2. 1650 played against 1680. I experienced this myself in the USCF rating system wherein I played a 10 week league tournament with the rating at 1953. And I played a Wednesday night game in my area around Week 6 and lost the game and my rating became 1929. After the 10th week, my USCF rating showed my increase from 1929=>1995 and not 1953=>x and x=>y. </p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2014-08-13T15:12:33.877Z
Answers.LastActivityDate: 2014-08-13T15:12:33.877Z
Answers.UserDisplayName: RingMaster
Answers.Body: <p>The most correct way would be to use the starting rating. Why? Because that was the rating they agreed to start the match upon, and knowing what they would win or lose made them decide to start it, after the evaluated the risk vs reward. So I think the starting rating of both players is the best solution.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2014-08-13T15:28:48.113Z
Answers.Text: OTOH, to discourage rating-hunting and encourage enjoying chess, the same argument could be applied in the opposite way. ;)
Answers.UserDisplayName: JiK
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2014-08-13T20:17:17.703Z
Answers.Text: Ratings are not coins that are traded between players: they're attempts to measure the players' relative strengths.
Answers.UserDisplayName: David Richerby
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2014-08-13T13:34:41.923Z
Answers.LastActivityDate: 2014-08-13T13:50:37.297Z
Answers.LastEditDate: 2014-08-13T13:50:37.297Z
Answers.UserDisplayName: MikhailTal
Answers.Body: <p>Remember what a rating is: it's an estimate of the relative strengths of the players. The more information you include in your rating calculation, the more accurate it will be and the faster it will converge. At the end of an OTB game, the only new information you have is the result of that game. However, on a correspondence site, you also have the information from both players' results while the game was in progress. Why would you not want to use that information?</p>
  
  <p>To update the players' ratings based on their ratings at the start of the game is to say that you think their ratings at the start of the game are a better estimate of their relative strength than their ratings at the end of the game. In other words, it's saying that you believe the ratings are becoming <em>less</em> accurate with time. If that's what you believe, you shouldn't update them at all!</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-02-10T22:18:57.877Z
Answers.Text: On the other hand, it's possible for a player to significantly improve after the critical part of the game. If I'm rated 1300 and blunder a few pawns in the opening of a game that becomes very drawn out, maybe 8 months later I'm legitimately 200 points stronger and my rating reflects it (due to some games that resolved quicker).
Answers.UserDisplayName: D M
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-02-11T10:36:51.663Z
Answers.Text: @DM That's not "on the other hand" -- it's exactly the point I'm making. In correspondence, you should update based on the players' rating at the moment the game ended.
Answers.UserDisplayName: David Richerby
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-02-11T12:18:26.080Z
Answers.Text: No, my point was, from my opponent's perspective, he is getting credit for beating a 1500, when all he really did was take advantage of the blunders of a 1300. (Not that I'm saying the rating system needs to make a correction for this; any correction would probably just add more error.)
Answers.UserDisplayName: D M
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-02-11T12:24:05.883Z
Answers.Text: @DM Ah, I see what you're saying, now. Fair point.
Answers.UserDisplayName: David Richerby
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2014-08-13T20:50:41.870Z
Answers.LastActivityDate: 2014-08-13T20:50:41.870Z
Answers.UserDisplayName: David Richerby
Body: <p>I'm building a chess app which will have a Elo rating system.</p>
  
  <p>Would it be more appropriate to update player's rating based on their rating at the beginning of the game, or their rating at the end of the game?</p>
  
  <p>For example, Player A (1600) plays against Player B (1700), and it took a week to complete the game (correspondence chess). During this week Player A won some other games and their rating become 1650. Player B lost some games, and their rating become 1680. Now, the game between Player A and Player B ends.</p>
  
  <p>Should I update the ratings as if:</p>
  
  <ol>
  <li>1600 played against 1700, or</li>
  <li>1650 payed against 1680, or</li>
  <li>something else</li>
  </ol>
  
  <p>What would be more appropriate, and why?</p>
  
Tags: <rating><elo>
Title: How to update Elo rating?
ThreadText: # How to update Elo rating?
  
  (Asked by: username_0 on 2014-08-13)
  
  I'm building a chess app which will have a Elo rating system.
  
  Would it be more appropriate to update player's rating based on their rating at the beginning of the game, or their rating at the end of the game?
  
  For example, Player A (1600) plays against Player B (1700), and it took a week to complete the game (correspondence chess). During this week Player A won some other games and their rating become 1650. Player B lost some games, and their rating become 1680. Now, the game between Player A and Player B ends.
  
  Should I update the ratings as if:
  
  1. 1600 played against 1700, or
  2. 1650 payed against 1680, or
  3. something else
  
  What would be more appropriate, and why?
  
  **Tags:** rating, elo
  
  
  ---
  
  ## 5 answers
  
  ### Answer by username_3 on 2014-08-13. Score: 7 | Accepted answer
  
  Remember what a rating is: it's an estimate of the relative strengths of the players. The more information you include in your rating calculation, the more accurate it will be and the faster it will converge. At the end of an OTB game, the only new information you have is the result of that game. However, on a correspondence site, you also have the information from both players' results while the game was in progress. Why would you not want to use that information?
  
  To update the players' ratings based on their ratings at the start of the game is to say that you think their ratings at the start of the game are a better estimate of their relative strength than their ratings at the end of the game. In other words, it's saying that you believe the ratings are becoming *less* accurate with time. If that's what you believe, you shouldn't update them at all!
  
  > **Comments:**
  > **username_7**: On the other hand, it's possible for a player to significantly improve after the critical part of the game. If I'm rated 1300 and blunder a few pawns in the opening of a game that becomes very drawn out, maybe 8 months later I'm legitimately 200 points stronger and my rating reflects it (due to some games that resolved quicker).  
  > **username_3**: @DM That's not "on the other hand" -- it's exactly the point I'm making. In correspondence, you should update based on the players' rating at the moment the game ended.  
  > **username_7**: No, my point was, from my opponent's perspective, he is getting credit for beating a 1500, when all he really did was take advantage of the blunders of a 1300. (Not that I'm saying the rating system needs to make a correction for this; any correction would probably just add more error.)  
  > **username_3**: @DM Ah, I see what you're saying, now. Fair point.  
  
  ---
  
  ### Answer by username_1 on 2014-08-13. Score: 4
  
  Neither is "correct". You need to consider the effects of any strategy, and determine what's right *for your app*. Personally I think you should always plan for your app to be popular--and once it's popular, people *will* attempt to game whatever system you've put in place. So you need to consider the abuse cases in each scenario, as well as how the system serves both new and established users, and decide what factors of the system are most important to you.
  
  Of course within each system, you've got a wide range of options for the actual implementation, which can help to enhance or mitigate the factors laid out below, but I'm going to skip all that since it's not what you asked about.
  
  I think the question as it stands is a little too opinion-based to be answered definitively, so all I'm going to do here is lay out some of the major points of each system. Like I said, it's up to you to decide what's important to you and your user base.
  
  ---
  
  ## Calculating Using Starting Ratings
  
  In this system, the main abuse case you need to look at is someone starting a hundred games at once against a dummy account (or several), to win them all and inflate their rating. This is fairly detectable and easy to engineer against (in fact the Elo system already contains some restrictions on such manipulation), but you do need to watch out for it.
  
  The downside to this system is that new players will have very unstable ratings for a time, and take a while to reach their true rating. Most systems already deal with this by vastly increasing the [K-factor](http://en.wikipedia.org/wiki/Elo_rating_system#Most_accurate_K-factor) for new players, so that their ratings change very quickly for their first 20-50 games or so.
  
  On the other hand, say you have an established player with a high rating (say 1900), up against a new player with a lower, provisional rating (say 1200). If the new player's true strength is actually 2000+, the established player may lose many more points for a loss (1900 vs 1200) than he would have if the score was calculated using the most recent scores. Of course, if the new player is only playing against high-rated players, *someone* is going to have to foot the bill no matter what system you're using.
  
  * Easy to spot potential abuse
  * Slow rating convergence
  
  ---
  
  ## Calculating Using Current Ratings
  
  In the most-recent-ratings system, the main abuse case is likely to be people dragging out games or prematurely resigning them in order to take advantage of dips or spikes in their or their opponent's ratings. For instance, if I've been on a losing streak, so that I'm below my true average rating, this system actually gives me an *incentive* to immediately resign every other game where I'm not *winning*, because I'll lose fewer points now, by resigning them all at once while my rating is already low, than I would if I waited until my rating recovered. Alternately, if my opponent's rating drops while the game progresses, I have a strong incentive to make the game last *as long as possible* in real time, no matter whether I'm winning or losing--because either way, when my opponent's rating recovers, I'll come off better. This sort of gaming of the system is much harder to detect conclusively.
  
  However, as others have pointed out, the individual results are more accurate, and people's ratings therefore converge faster. You'll also lessen the effect of the game played by a provisional 1200 against an established 1900, though personally I think this is not at all a big deal--established players, in my experience, don't care so much about temporary rating losses as newer players do.
  
  * Hard to spot potential abuse
  * Faster rating convergence
  
  > **Comments:**
  > **username_2**: "e.g. when a game ends, calculate new ratings rather than calculating a rating change to apply" this sounds good. How do you propose to calculate the new ratings?  
  > **username_1**: @username_2 Of course you can't implement raw ratings directly; that's the whole problem: otherwise you could have people losing points when they win. So instead, you can use the "raw" elo to limit the amount gained or lost, or even just use it as an indicator of possible abuse. I'll expand the answer a bit when I'm not on my mobile.  
  > **username_3**: This is the wrong approach. Why *shouldn't* a new user be able to start a large number of games? If a legitimate new user does start, say, 20 simultaneous games, why should the rating change at the end of the 20th of those games be based on the bogus assumption they're at the default level, rather than on the valuable information that they won X and drew Y of the first 19 games? Running a rating system this way means that ratings converge very slowly because information is deliberately omitted from the calculation.  
  > **username_3**: And your prioritization makes no sense. You're recommending a scheme that makes the ratings of new players wildly inaccurate (by tens or hundreds of points) because the alternative is to allow established players to game the system for a couple of points here and there. Also, note that, with Elo, you cannot possibly lose points by winning a game.  
  > **username_1**: @username_3 You seem to have misunderstood the intent of my answer, which is probably my fault for posting on a mobile and not providing as much detail as I should have. I will attempt to clarify this answer this evening.  
  > **username_3**: @username_1 OK but you still don't mention that the potential inaccuracy in calculating with starting ratings is huge (potentially hundreds of points for a strong, active newcomer) whereas the potential for gaming most-recent ratings by established players is very small (probably only a few points here and there).  
  
  ---
  
  ### Answer by username_2 on 2014-08-13. Score: 4
  
  I would use option 2 for a variety of reasons. Maybe the most important one is the potential for abuse of option 1.
  
  Two players start out at the same level in the USCF or FIDE system. They play a long match with one player scoring the vast majority of the points. Eventually the ratings will stabilize at about the loser being (start-400) and the winner being (start+400).
  
  Under option 1, a 2000 player could start 100 games against a similarly-rated friend, win them all, and suddenly be the highest rated person on the site at 3000+. This will, among other things, make your site look bad. The player that lost will fall below 1000, but those points are easily gained back, particularly if he starts 100 games against 1200 players.
  
  Option 2 is much more stable. It is used by all major correspondence sites that I know of (chess.com, redhotpawn etc.)
  
  Edit: More scenarios. An 1800 player accepts the challenge of an 800. A month later, the former 800 is at 1700 and trouncing the 1800. When the 1800 resigns, he loses the maximum rather than what he would have lost against his opponent's true strength.
  
  A 2000-strength player, through some black magic, acquires a rating of 1200. They start a bunch of games against 1400s and win close to all of them. The 1400s will be universally disenchanted at having to lose 20+ points to such a scoundrel.
  
  > **Comments:**
  > **username_4**: If this behavior was allowed in a site, that wouldn't be a real chess site. If I saw this behavior in my site, I would limit his ability to play games with the same player to 2 or less. That is cheating. Not real gaming.  
  > **username_2**: If the site becomes big enough, this kind of thing will start happening every single day-if not more frequently. Manual policing isn't a viable solution.  
  > **username_4**: Total limiting. I don't see how a site can allow people to play 100 games to the same player in the first place.  
  > **username_2**: I would be fairly annoyed at a site that didn't let me play a match against a friend because they chose a bad ratings algorithm.  
  > **username_4**: I would be fairly annoyed by that site too, but 100 games in the same time?  
  > **username_2**: Let's say 10 games. Is that unreasonable? It's still enough to become the highest-rated player on the site if you have a decently close race at the top.  
  > **username_4**: 10 with the same person? I'd limit it to 2 in my site, one as black, and one as white.  
  
  ---
  
  ### Answer by username_5 on 2014-08-13. Score: 2
  
  If you were modeling after the USCF system, you would be looking at scenario 2. 1650 played against 1680. I experienced this myself in the USCF rating system wherein I played a 10 week league tournament with the rating at 1953. And I played a Wednesday night game in my area around Week 6 and lost the game and my rating became 1929. After the 10th week, my USCF rating showed my increase from 1929=>1995 and not 1953=>x and x=>y.
  
  
  ---
  
  ### Answer by username_4 on 2014-08-13. Score: 0
  
  The most correct way would be to use the starting rating. Why? Because that was the rating they agreed to start the match upon, and knowing what they would win or lose made them decide to start it, after the evaluated the risk vs reward. So I think the starting rating of both players is the best solution.
  
  > **Comments:**
  > **username_6**: OTOH, to discourage rating-hunting and encourage enjoying chess, the same argument could be applied in the opposite way. ;)  
  > **username_3**: Ratings are not coins that are traded between players: they're attempts to measure the players' relative strengths.  
  
  ---
  
  