I want to create a program for personal use but also maybe for publishing it on the web, in order to detect the top players with respect to elo and age. There will be two cases:

A) In this case, someone will choose one of top players. There will be an output - answer: What was the first elo rating that he passed by being the youngest player ever to reach that rating or maybe a list of all these numbers, because there may be many and on which date and at which age age.

Example: Magnus Carlsen.

Output (not real-true): At the age of 8 years and 3 months old, in February 2002, he was the youngest player ever that passed the elo 2098. At the age of 11 years and 7 months old in June 2005, he was the youngest player ever that passed the elo 2202. Etc... (maybe in that case there will also be a choice to show the dates and elo numbers in which he was the second youngest or third etc.. .).

B) In this case, someone will choose an elo number, for example 2804. There will be an output - answer: Who was the youngest player who passed this number and on which date - age. Or maybe a list with all the players who passed this number sorted from youngest to oldest.

Example: 2804

Output (not real - true):

1) Magnus Carlsen, 21 years and 2 months old, in August 2012. 2) Garry Kasparov, 27 years and 5 months old, in January 1990. etc..

Can you give me some guidelines and advice how to go on? Maybe there is already something like that? Are there some resources I can take some historical databases from? I think it needs (relatively) easy programming or not so much? Also is it possible to use the live numbers from live 2700, including decimal digits and dates (for example, 2758.7 in 9 October 2015), or it should be better to start with the official fide round ratings per month?

In any case, if I create this program do you think it will be good to publish it on a website? Nonprofit or there can be a respectful low income from ads on it?


2 Answers 2


Are there some resources I can take some historical databases from?

You need two sets of data:

  • Rating data for the players going back as far as possible in time
  • Date of birth data for the players

There are two very good sources which will help a lot with ratings and help a little with dates of birth. The bad news regarding dates of birth is that in the modern age full dates of birth are generally not published because of security risks. If you are going to try and steal somebody's identity with a view to stealing their money then full date of birth is one of the key components.

FIDE published about 19 years of rating data which is available for download. Olimpbase have data available for download going back another 30 years.

The Olimpbase data has both ratings and full date of birth data but is very "dirty". You will need to "clean" it before you can use it to remove duplicate data and resolve players with the same name, the same player with different names (women players who got married, perhaps more than once, and changed their names and also just typos in the data).

The FIDE data is also a bit "dirty" in the early years but gets cleaner in later years. You will have much less data to "clean". It has year of birth only so getting the full date of birth for players will involve a lot more work digging through resources like Wikipedia.

I think it needs (relatively) easy programming or not so much?

A major task will be extracting the data you need from your data sources. This will be a massive task. I would suggest you design a relational database for your needs and populate it from your data sources after first cleaning the data. Once this is done answering the questions you want is a relatively straightforward matter of writing some simple database queries and running them.


Assuming you can find a database with the data you want, this is a very straightforward programming exercise. In particular, Python is made for this kind of stuff.

If you are successful in making it, then by all means publish it on a website, but there's absolutely no way ad revenue will come anywhere near offsetting the cost of the domain name, not to mention the time/energy you spend on it.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.