Ratings Database and the NWSRS

With the death of Ollie Lafreniere, it has been necessary to write a new ratings program. The program Ollie was using was written a number of years ago and Ollie never had the source code for the computer program, so I didn't know exactly how it worked. In addition, I was aware that many people complained that the ratings changed too slowly. In fact without Ollie's long-standing policy of adjusting WSRS ratings to match USCF ratings, and his occasional bump of everybody in the system by 100 points, some have questioned whether his system would ever have produced a player above 1800.

There were other issues with the WSRS. Some tournament directors wanted to “dual-rate” (rate the event in both the USCF and WSRS systems). As it stood when Ollie died, there was no easy way to cross-reference players in the USCF and WSRS systems. Dual rated tournaments involved massive efforts to manually look up each player's USCF ID number, expiration date and other data.

Finally, the issue of fairness cropped its ugly head. Ollie had the policy of updating individual ratings to match USCF ratings if two conditions were true: 1) the USCF rating had to be higher, and 2) the USCF rating had to be established (i.e.; not provisional). This practice makes sense, since we want the WSRS rating to reflect the player's true playing strength, and for players who have played a lot of USCF chess and improved, their WSRS rating should also reflect that improvement. But there were problems with this practice too. First off, Ollie only did the USCF update if the player (or his parent) requested it. He did a few selected others as well, if they were unusually high rated. But many students in the database did not know of this practice or didn't know how to make such a request. Also, the issue of what to do if the USCF rating went down was never addressed. And then there's more complicated issues illustrated by the following example:

Player John Chessnurd has an established USCF rating of 1500. His WSRS rating is 1400, so he asks Ollie to adjust his WSRS rating to match his USCF. Ollie complies and John Chessnurd plays in several WSRS tournaments and loses. His WSRS rating falls back to 1400. But in this same time he hasn't played a single USCF games, so his USCF rating is still 1500. He again asks Ollie to update his WSRS rating to match the USCF rating. Unless Ollie remembers that he already updated this person, and the specific ratings at the time he did it, he might comply and bump the student back up to 1500.

Moving forward to 2005, chess organizers in Oregon indicated the desire to establish a rating system, and we all agreed it made most sense to have a combined rating system for both Oregon and Washington. Since we have players in the database from BC and Idaho, it has truly evolved into a northwest rating system, hence the change of the name in the summer of 2005 to the NWSRS. This expansion allows from growth in the Washington as well, since we were size limited in the old system to 9000 players.

In response to all of these issues, I have developed an entirely new rating system that will be the basis for the NWSRS system in the coming years. Externally, it will appear very similar to the students in the system. But it will be very different internally and will be more flexible and fair. Summarized here is a list of the major changes.

1. A New Algorithm

The Algorithm is the mathematics that actually determine the change in rating when a player competes in a rated tournament. Because we don't have the source code for Ollie's rating program, I am uncertain how it worked. I know that it is different from the USCF's algorithm because it produces different results. Fortunately for us, the USCF publishes their ratings algorithm on their website:

http://math.bu.edu/people/mg/ratings/rs/rs2.html

I have adapted their algorithm for use in the NWSRS.

2. Existing Fields in the Database

Ollie's ratings database had the following fields for each student:

  • Last name
  • First name
  • 3-letter school code
  • 1-letter grade code
  • 4-digit ID number (entirely numerical)
  • current rating
  • number of games played in the WSRS system (total)
  • number of games played in the WSRS system scholastic year-to-date
  • highest rating ever achieved in the WSRS
  • lowest rating ever in the WSRS
  • starting rating in the WSRS

In the new database, I have kept all of Ollie's fields (although I don't know what practical use I will make of the last three fields). In addition, the expansion of the system in the summer of 2005 to the NWSRS involved the change of the 4-digit ID field from a purely numeric field to an alpha-numeric where the first of these 4 digits can now be either a number of a letter. This change expands the capacity of the system from 9,000 players to 35,000 players and allows ample room for Washington growth as well as the inclusion of Oregon, Idaho and British Columbia.

3. Additional Fields in the database

In addition to the original fields from Ollie's system, I have added the following fields:

  • 1-digit code stating whether all a student's games have been wins or all have been loses. The coding is 0 = mixture of wins and losses, 1 = all games in database have been wins, 2 = all games in database have been losses. The USCF algorithm needs this information, since it uses a different formula for unrated or provisionally rated players if all games are losses or wins.
  • The last active date stating the last date on which a player was active in the system. Most players in the system have been set to 9-1-02 for the start of the new system but these dates will be updated by the ratings program, each time a player appears in an event. The purpose of this date is to keep track of players who have fallen out of chess so they can be culled from the database after several years of inactivity.
  • 1-letter code identifying whether a player's current rating is based on WSRS activity, or has been updated to match USCF rating. If the code = “W” the player's rating is based on WSRS activity. If the code is “U”, the player's WSRS rating has been set to match his USCF rating. Note that if a player's rating is adjusted to USCF and he/she subsequently plays in a WSRS event, his code will be automatically reset to “W” by the ratings program.
  • Student's last name in the USCF database (only if the player is in the USCF database — this field is blank otherwise).
  • Student's first name in the USCF database (only if the player is in the USCF database — this field is blank otherwise).
  • USCF ID number (only if the player is in the USCF database - this field is blank otherwise).
  • USCF membership expiration date (only if the player is in the USCF database — this field is blank otherwise).
  • USCF rating (only if the player is in the USCF database — this field is blank otherwise).
  • USCF codes for provisional players — typically this is a slash followed by the number of games upon which the provisional rating is based. For example, a provisional code might be “/15” indicating the rating is provisional and based on 15 USCF games. This field will be blank if the USCF rating is established, not provisional. (this field is only present if the player is in the USCF database — this field is blank otherwise).
  • Last active in the USCF system. The USCF does not provide this information, so we base this date on changes in USCF rating. If the USCF rating remains unchanged, we assume no activity has taken place in the USCF system. All players with USCF ratings presently in the system have been set to 10-01-02. If, during one of our regular updates, we see this rating has changed, we will reset this date to match the date of the update from USCF.
  • The state of residence for the player (note: these are determined from the state of the school code, but can be changed upon request).

Kirk Winges, 2008