Plotting the 2020 Tour de France

The Tour de France was postponed by the pandemic this year, but finally kicked off in late August. Although there were worries that the race would have to be stopped in the middle, it made it all the way to the final sprint on the Champs-Élysées in Paris. In this post, just like last year’s, I will use plots to explore how the Tour unfolded.

The code that generated the plots can be found here (rendered on Github). The data is here.

The Race for Yellow

The most prestigious award at the Tour is the yellow jersey, which is awarded to the rider with the lowest combined time across all 21 stages of the race. Egan Bernal was the favorite going into this year as he had won last year’s race. His team, Ineos, had also decided to dedicate all of their resources to him and left former winner and previous co-leads Chris Froome and Geraint Thomas off the roster.

Primož Roglič was another favorite. He had won last year’s Vuelta a España, taken 4th in a previous Tour, and his team, Jumbo–Visma, included a star-studded support roster.

After three weeks of racing, here is how the top five riders fared through the stages:

A line plot showing how far behind the leader each top-finishing rider was after each stage of the 2020 Tour de France.

Stage 7 stands out in this plot. Although large time gaps normally occur during mountain finishes, this completely flat stage shook up the race for yellow. Instead of a steep climb, strong winds split the peloton in two and several top riders were stuck in the chasing group where they lost 1′21″.

After leading for most of the race, Roglič lost nearly a minute to Tadej Pogačar, a young Slovenian riding his first Tour ever, on the penultimate stage. Roglič had defended the jersey since stage 9, possibly as part of a strategy to take the jersey early in case the race had to be canceled midway through.

But the long defense left Roglič vulnerable. In a ride that caused 17-time Tour rider George Hincapie to declare it “the greatest Tour I have ever seen”, Pogačar stormed back on La Planche des Belles Filles, taking first on the stage by 1′21″. Every other top rider lost time on the stage as well, even Richie Porte who came in third for the stage and knocked Miguel Ángel López out of the top three overall.

Disappointing Results

Many riders set their sights on the yellow jersey but ultimately fall short. Crashes, illness, and simply not being in form can drag down even top riders. Here are the riders who went for the glory but could not keep it up for the full three weeks:

A line plot showing how some of the under-performing riders fell in the rankings.

Notice that the y-axis now extends to over two hours behind the leader, not the minutes behind in the first chart.

It might be hard to call a top 6 finish a disappointment, but for Lopez is was. He was on the podium in 3rd place when he started stage 20, but he lost over 6 minutes in a disastrous time trial.

Guillaume Martin finished 11th, his highest ever place, but he had been in the top three for much of the early race, keeping up with favorites Bernal and Roglič. He lost time during stage 13 after holding strong during the first real test in the Pyrenees.

Both Bernal—last year’s winner—and Nario Quintana—two time runner up to Chris Froome—defended well in the early mountains but lost time in the high Massif Central. They were suffering from injuries incurred during crashes earlier in the race. In a controversial move, Bernal withdrew from the race after he lost time.1 Quintana fought on and finished in Paris, but lost lots of time in the Alps.

Thibaut Pinot crashed on stage 1. Emanuel Buchmann crashed in a previous race and his ability to start was in question. Both lost time in the first mountains and never recovered, but nevertheless stayed in the race through the end.

The Rest of the Race

More than 100 riders finished the Tour, but most of them were not competing for the yellow jersey. Here are the paths taken by all 146 riders who finished in Paris:

A line plot showing how far behind the leader every rider was for each stage.

Buchmann, the lowest placed rider in our previous plot, is actually ahead of most of the riders! We can also see the race started out tough, probably due to the chance that it might be canceled after the first rest day, with large time gaps opening up even before the first mountains.

The latter half of the second week was also tough with the hilly Massif Central and mountainous Alps. By the last few stages, the time gaps were pretty much set and most riders maintained their relative positions.

Two riders of note are Peter Sagan and Sam Bennett, who were competing for the green jersey. Both of them saved their energy, and hence lost time, on mountainous stages so they could give it their all in the sprints. Even though Sagan finished about an hour ahead of Bennett, he lost the Jersey. Bennett had done a better job of managing his energy and using it where it counted.

Finally, Roger Kluge won the lanterne rouge, finishing six hours behind Pogačar. His job in the race had been to escort his team’s sprinter, Caleb Ewan, through the race. This often meant falling back on climbs and waiting for Ewan so they could tackle the mountains together and avoid being cut for being too slow.

This year’s Tour was unique due to needing to adjust to the COVID pandemic, but it turned out to be one of the most exciting races in the history of the sport! And what’s more, it gave us some much-needed entertainment during these dark time.


  1. Ineos said Bernal dropped out to “focus on recovery”, but many fans felt that Bernal—who had won last year, placed as high as second this year, and worn the white jersey for the best young rider—was abandoning the most prestigious race of the season to avoid embarrassment at the hands of his opponents.