How Max Verstappen snatched pole position away from Fernando Alonso in Monaco

Sanjeev Lingam-Nattamai
Deep Dives with Data
3 min readAug 4, 2023
From Motor Sport Magazine

It’s summer break in the Formula 1 calendar which means that teams and drivers get some well-deserved rest before they make their way to Zandvoort for the Dutch Grand Prix. The only Dutchman on the grid, Max Verstappen, will be elated to return home and continue his dominant season.

2023 Driver’s Championship standings for Top 10

Verstappen is comfortably leading his teammate by a whopping 125 points. To put this in context, Verstappen could take a break for the next four races and still maintain his lead in the driver’s championship. The season has been exceptionally remarkable for both him and his team — Red Bull Racing. While reflecting on his 2023 season, one moment stands out in particular: the astonishing Monaco Grand Prix qualifying session.

During a normal race weekend, the qualifying session takes place on Saturday, while the race itself occurs on Sunday. The purpose of the qualifying session is to determine the starting grid order for the race with the driver who sets the fastest lap securing the pole position — the front position at the start of the race.

It’s incredibly important to start higher up on the grid as it eliminates the need to overtake other cars during the initial moments in the race. This is crucial in Monaco where overtaking is notoriously challenging since it is a narrow street circuit.

Verstappen narrowly beat Alonso by 0.084 second after being down 0.204 seconds after the first two sectors! Here is the video for a lap comparison:

Verstappen vs. Alonso: Qualifying Laps Compared | 2023 Monaco Grand Prix

I wanted to visualize both of these qualifying laps in a graph. I found the fastf1 python library which has timing and telemetry data for all Formula 1 sessions which include practices, qualifying sessions, and races.

import fastf1 as ff1
from matplotlib import pyplot as plt
import fastf1.plotting

# Loading 2023 Monaco Qualifying Session
quali = ff1.get_session(2023, 'Monaco', 'Q')
quali.load()

# Getting Verstappen's fastest lap of the session
ver = quali.laps.pick_driver('VER').pick_fastest()
ver_car_data = ver.get_car_data()
ver_t = ver_car_data['Time']
ver_vcar = ver_car_data['Speed']

# Getting Alonso's fastest lap of the session
alo = quali.laps.pick_driver('ALO').pick_fastest()
alo_car_data = alo.get_car_data()
alo_t = alo_car_data['Time']
alo_vcar = alo_car_data['Speed']

# Setting up the comparison plot
fastf1.plotting.setup_mpl()
fig, ax = plt.subplots()
ax.plot(ver_t, ver_vcar, label='VER')
ax.plot(alo_t, alo_vcar, label='ALO')
ax.set_xlabel('Time')
ax.set_ylabel('Speed [Km/h]')
ax.set_title('VER vs. ALO')
ax.legend()
plt.show()

Verstappen reached faster speeds in the last few corners and made tighter turns which saved him precious hundredths of seconds on the last stretch of the track.

The next day, Verstappen won the Monaco Grand Prix by almost 28 seconds for one of his ten wins this year so far. While the weekend was bookended with the Dutch national anthem roaring as Verstappen was on the top step of the podium, I will never forget that special, jaw-dropping qualifying session.

--

--

Sanjeev Lingam-Nattamai
Deep Dives with Data

SDE @ AWS | Graduate of Computer Science + Statistics @ Purdue University