When you look at the standings table, you have to examine the number of points in detail for each driver or constructor to get a good idea of how far each is behind the leader, or indeed, how far the leader is in front of the rest. This F1 representation is a variant of mapping football league tables and more detail can be found on the about pages.

The responsive design templates used on this site are based on a simple bootstrap template.


When I first started creating these maps, I could not find a source of XML data to obtain the information to create the race. XML data is much better for feeding applications as the information does not change when the site changes. After searching for a while, I decided to parse the table from the BBC web site using jsoup. jsoup can use styles and ids in tables to determine which is the correct content to parse. This works quite well but you are always exposed to changes on the site. A re-brand, for example, might throw my use of jsoup into confusion and that's exactly what happened. Rather than try to work out all the fancy nesting on the BBC's site (which, no doubt corresponds to some even fancier JavaScript), I found an XML source of F1 data. I am now using ergast who provide their information free for non-commercial use.

I could not find a site that would show how many races had taken place. It's not surprising really as there is never any variation in the number of races that have taken place, that is, drivers never have races-in-hand where they can catch up at a later date. The number of races that have taken place is required as it is used to calculate the maximum potential points a driver might obtain. As there are a fixed number of points for each position in each race, it is easy enough to divide the total number of points for all drivers by 101 to get the number or races. There might be some complications with partially completed races but hopefully this won't happen. Alternatively, I could be a bit more creative with the data from the ergast drivers standings data and work it out from there as they have a record of how many races each driver has won.

As an aside, some people have created some excellent data representations from the ergast data as you can see in thier application gallery.

How all these figures generate a map is explained on the general about page for the racing maps section of this site.


Although the source information I use is available on public web sites so in the public domain, I still like to obtain permission to use it. I started with F1 tables comes from f1mix.com. I have email confirmation from the site that I can parse their tables to use in my application that generates the race files. I am in the process of obtaining permission from ergast.

On the data section of this page it mentions calculating the total number of races by dividing by 101. The value of 101 comes from the sum of all the points awarded to drivers for each race, that is: first place 25 points, second place 18; third place 15; fourth place 12; fifth place 10; sixth place 8; seventh place 6; eighth place 4; nineth place 2; and tenth place 1.

Races occur about every two weeks, however some (China and Bahrain) are separated by one week and some (Canada and UK) are separated by three weeks. My server that updates all these races runs every day but the scripts for updating the F1 races will run on Mondays only in the F1 season.

Notes that detail the way in which the race files are created can be found on the general about page for the racing maps section of this site.