Blog
Tutorial

Estimate your FIDE rating

Post Preview Image

Estimate your FIDE rating

Calculate your ELO based on your Chess.com or Lichess online ratings

Tutorial

March 18, 2023

TL;DR

  • 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
From initial dataset to model, Lichess/Blitz (animated GIF)
From initial dataset to model, Lichess/Blitz (animated GIF)

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.

Data Gathering

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 fulfilling 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. The table shows the number of profiles in each dataset:

Time ControlChess.comLichess
Bullet14,26431,084
Blitz19,46139,849
Rapid12,84121,127
Classical-3,457
Daily/Corresp.4,071930

Data Cleaning

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 unofficial 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).

Model Creation

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.

Steps with trend lines (animated GIF)
Steps with trend lines (animated GIF)

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 described 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 official 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.

Example how the rating is displayed
Example how the rating is displayed

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.

Limitations

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.

Previous Approaches

I'm not the first to do this. You can find previous attempts by others listed here:

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.

New to ChessMonitor?

ChessMonitor is an analytics platform for chess players providing lots of free chess statistics. We are working hard on improving it.

Here are some things you can do right now: