- Analyzed profiles of 100,000+ chess players
- Created a linear regression model to calculate FIDE standard ratings from online ratings
- Available for free for all ChessMonitor.com users
Online Rating vs. FIDE rating
Ever wondered what your FIDE rating would be? I've done the math for us and below I will explain the full process! Today, the ChessMonitor database contains information about more than 70 million games and 7 million players. I've used the data to find players that have entered their FIDE ranking and will use that data in addition to the FIDE list of players to create a model to predict the FIDE standard rating for players playing on Chess.com or Lichess.
The full process involved analyzing over 7 million player profiles. I executed the following steps
- Limit the full list of users to those who have entered a FIDE rating
The data of these accounts was refreshed in March to have up-to-date information, result:
- 31,420 users for Chess.com
- 69,677 users for Lichess
For each user, only time controls fullfilling the following requirements were considered:
- Must have played at least 10 games.
- The last game must not be older than one year.
- The rating deviation must be smaller than 110.
- Lichess only: The rating must be considered non-provisional.
This left me with the following datasets:
For each of the datasets listed above, I then repeated the following steps.
- Removed profiles with FIDE ratings above 2800 (there is only a single person above 2800). While officially there are no FIDE ratings below 1000, I left these values in as people might want to report their inofficial rating (after falling below 1000 or after playing against other rated players).
- As a lot of users are obviously "guesstimating" their rating (the visual plateaus in the graph...), I removed all ratings ending with "00" (1000, 1100, 1200, etc.).
- I then used a simple linear regression model to apply a corridor to filter out heavy outliers (mainly people exaggerating their ratings).
I repeated these step for each of the datasets. In the following I will exemplarily show the process for the biggest (the Lichess/Blitz dataset).
Matching with the official FIDE player list
In addition to the first dataset above, I created a second dataset that contains only accounts with a matched FIDE account. For this, I downloaded the official FIDE dataset of players (from March 2023) containing 1.2 million ranked players with rating, name and federation/country.
For each player with a unique name in the list, I tried to find a player in the ChessMonitor.com database with a unique name and the federation matching their provided country (if provided). In addition, I filtered out all players who provided a FIDE rating (on the website) that was more than 100 points apart from their actual rating.
The resulting dataset is much smaller. As an example: The Lichess/Blitz dataset only contains 603 profiles (compared to 29,184 users in the cleaned dataset).
Based on the dataset, I was able to create a trendline via a simple linear regression model. Comparing the trendlines from the filtered dataset and from the accounts matched with official FIDE data shows how similar both are.
The model based on the real FIDE ratings has a r²=0.65 with a 95% confidence interval at ±118 meaning that the predictions ±118 should be correct for 95% of players.
The layed out process was repeated for all time controls and websites. The models I'm using on ChessMonitor.com are based on the dataset matched against the offical FIDE ratings. Only in rare cases, where a dataset did not contain a sufficient number of points (like for the Lichess/Correspondence) I relied on the cleaned dataset.
See your rating
If you want to checkout your own rating, create yourself an account or visit your own page. I've created a visual component showing your estimate in a range from 0 to 2500.
Weighted Rating Calculation
To give an overall FIDE rating estimate based on different time controls, ChessMonitor.com will not include all time controls you have ever played but only the ones you have played in your past 100 games.
So, for each time control and website with at least 50 games, the latest rating is mapped to the corresponding FIDE value. After that, based on how much you played the time control on the website, the value is proportionately used to create the overall rating.
Example: If you have played 90 blitz games and 10 rapid games, your overall FIDE estimate will be created base on 90% of your blitz estimate and 10% of your rapid estimate.
The player page also shows a comparison value which is the average taken from your ratings 50 games ago (for each time control and website) even if that game is not in your list of your most 100 recent games.
Please keep in mind that the provided ratings are estimates! Especially, the correlations in faster time controls (like Bullet) have a great uncertainty and do not allow for a precise mapping to the FIDE standard rating. In addition, FIDE ratings can vary between countries and continents due to different player pools. Therefore, please interpret the provided rating as a rough estimate.
I'm not the first to do this. You can find previous attempts by others listed here:
- dudeski_robinson in September 2017 based on 3,000 Lichess profiles
- www.chessratingcomparison.com by David Reke based on ~14,000 ratings
- u/unrealduck in March 2021 based on 28,000 Lichess profiles
- u/dryguy in March 2021 based on 5,957 Lichess profiles matched against the FIDE list
As all approaches use very similar methodologies the overall results are quite similar to my results.
Feedback or ideas?
Thanks for reading! Do you have an official FIDE rating? I would be happy to hear if the estimate works for you! Also, if you have any feedback or ideas, feel free to reach out. I'm developing this website based on community feedback.
Things you can do right now: