← All projects

Interactive F1 Data Web App

Purpose

After analyzing a few specific moments in Formula 1, I noticed my friends kept asking for more charts and insights from other races. That's when I realized I could turn this growing interest into an opportunity: to build a web app that allows anyone to explore F1 data throughout each race weekend.

The purpose of this tool is to analyze F1 session data with precision, through highly interactive visualizations built with Plotly. It offers an intuitive and interactive experience, making the data accessible to both enthusiasts and analysts looking to dive deeper into the sport.

Landing Page

The app allows users to explore different Formula 1 events by selecting the year, Grand Prix and session type they wish to analyze.

To ensure a smooth and intuitive experience, users are guided through the process with helpful messages and instructions, making the app easy and efficient to use.

More technical information

Available sessions range from 2018 to the current season. For the ongoing season, only Grand Prix events with available data are shown - ensuring users don't attempt to load sessions that haven't yet occurred or been processed.

Depending on the event format, users can choose between the following session types: Race, Qualifying, Sprint, or Sprint Qualifying.

Typically, data is made available by the API shortly after the end of each session, enabling users to analyze and explore the session almost in real time.

Once the user selects the desired event settings, the app loads the corresponding session data using a caching mechanism to ensure faster and more efficient performance.

After the data is successfully loaded, a set of interactive tabs becomes available, allowing users to explore various aspects of the session - including event overview, session results, position changes or qualifying results (depending on the session type), lap telemetry, pace analysis, driver performance and tyre strategy.

Watch the video below to understand how the landing page works.

More technical information

Depending on the session type selected (e.g., Qualifying or Sprint Qualifying vs. Race or Sprint), the third tab will show either "Qualifying Results" or "Position Changes" - to better reflect the structure of the event.

Each of these tabs will be explained in more detail in the sections below.

Video - Explaining how to select a Grand Prix session

Tab 1 - Grand Prix Overview

In the Grand Prix Overview tab, users can access essential details about the event, especially regarding the circuit and the meteorological conditions under which the session took place.

Regarding the circuit, the following information is presented:

  • Round number
  • Country and location of the Grand Prix
  • Total track distance (in kilometers)
  • Number of corners on the circuit
  • A track layout visualization with numbered corners

As for the weather conditions, the app displays:

  • Track and air temperature over the course of the session
  • Humidity levels, shown on a secondary axis
  • Rainfall presence, indicated with shaded areas on the chart if any rain occurred during the session
Grand Prix Overview

Tab 2 - Session Results

The Session Results tab presents a detailed summary of the official classification for the selected session. This tab gives users a structured overview of driver performance in each session and acts as a base for deeper exploration through the other tabs.

The information displayed varies depending on the type of session.

For Race or Sprint sessions:

  • Final position of each driver
  • Driver name and team
  • Starting grid position
  • Positions gained or lost during the session
  • Race status (e.g., finished, retired, disqualified)
  • Points scored

For Qualifying or Sprint Qualifying sessions:

  • Final qualifying position
  • Driver name
  • Team
  • Recorded lap times in each phase (Q1, Q2, Q3)
  • Missing lap times are displayed as "N/A", either due to elimination or session format
Race Session Results
Qualifying Session Results

Tab 3 - Qualifying Results & Position Changes

As explained before, depending on the session type selected, the third tab will show either "Qualifying Results" or "Position Changes".

Tab 3.1 - Qualifying Results

The Qualifying Results becomes available when a qualifying session is selected. It gives a session-by-session breakdown of qualifying performance across Q1, Q2 and Q3. It helps users analyze which drivers advanced to later qualifying stages, how close the qualifying margins were and who was dominant or underperformed in each session.

Qualifying Results

Tab 3.2 - Position Changes

The Position Changes tab becomes available when a race session is selected. It displays how each driver's position evolved from the starting grid to the final classification. Users can quickly identify who gained or lost the most positions during the race, offering insight into strong performances and strategic moves.

Position Changes

Tab 4 - Fastest Lap Telemetry

The Fastest Lap Telemetry enables detailed telemetry comparison between two drivers during their fastest lap of the selected session. Once the user selects the drivers from the dropdown menu they can explore a series of synchronized line charts. The goal is to help users analyze driving style, car behavior and performance differences along the lap.

More technical information
  • Speed: Highlights speed differences at each segment of the track
  • Delta Time: Shows where one driver gained or lost time compared to the other
  • Throttle: Reveals aggressiveness or caution in acceleration zones
  • Braking: Helps identify braking points and trail braking tendencies
  • Gear: Provides insight into gear choice in each part of the circuit
Fastest Lap Telemetry

Tab 5 - Overall Pace

The Overall Pace tab analyzes race pace consistency and performance across all drivers using box plots of lap times. Users can filter by tyre compound and apply a customizable lap time threshold to exclude unusually slow laps (e.g., due to traffic, pit stops, or weather conditions).

How does threshold work?

Not all laps are equal - some are significantly slower due to traffic, pit stops, or weather conditions. To maintain clarity, a threshold (relative to the fastest lap) is applied to exclude these laps.

By default, FastF1 uses a 107% threshold, but the app gives the user the opportunity to adjust it using a slider and check why it influences the chart.

Overall Pace

Tab 6 - Driver Performance

The Driver Performance tab analyzes race pace consistency and performance over a specific driver using a scatter plot of lap times. Users can filter by driver and apply a customizable lap time threshold to exclude unusually slow laps (e.g., due to traffic, pit stops, or weather conditions).

How does threshold work?

Not all laps are equal - some are significantly slower due to traffic, pit stops, or weather conditions. To maintain clarity, a threshold (relative to the fastest lap) is applied to exclude these laps.

By default, FastF1 uses a 107% threshold, but the app gives the user the opportunity to adjust it using a slider and check why it influences the chart.

Driver Performance

Tab 7 - Tyre Strategy

The Tyre Strategy tab shows the tyre compounds used by each driver throughout the race. Each bar represents a driver's stint on a specific tyre type. It helps users quickly understand pit stop strategies, stint lengths and compound choices.

Tyre Strategy

Data Source

This project relies heavily on the data provided by the FastF1 package.