Inspiration

Formula 1 teams make race-by-race decisions under intense financial pressure. A costly crash can consume the budget for an aerodynamic upgrade, while saving too much can leave the car underdeveloped.

We wanted to turn that tension into an interactive management experience: F1 Budget Operations, an exact 2025 season replay where users act as a team principal managing a CAD $215M gameplay cost cap.

What it does

Users select one of the ten 2025 constructors and progress through the real 24-round calendar.

Each weekend reveals:

  • Qualifying or Sprint Qualifying
  • Sprint sessions
  • Grand Prix Qualifying
  • Grand Prix classification
  • Recorded gaps, statuses, points, penalties, and DNFs
  • Actual drivers for each race weekend, including mid-season roster changes

Users can also:

  • Allocate preseason spending across seven categories
  • Set aside crash contingency funding
  • Fund upgrades and future-car development
  • Review historical incidents, weather, tyre stints, and pit stops
  • Choose minimum repairs, full repairs, custom repair amounts, or eligible older-spec components
  • Continue spending above the cap and review audit consequences
  • Complete a final FIA & Board Audit

The separate Budget Workspace provides historical spend tracking and a diminishing-returns what-if lab.

How we built it

The application was built with Python, Streamlit, SQLite, Pandas, NumPy, Plotly, Altair, JSON, HTML, and CSS.

Historical classifications are bundled locally using Jolpica F1 data. OpenF1 provides tyre, pit-stop, and session-weather records, while Open-Meteo provides historical weather-grid reanalysis for race windows.

SQLite stores the active simulation, financial ledger, repairs, reserve allocation, sessions, standings, and audit results. CSS-generated carbon fibre, finish-line dividers, driver portraits, and team livery colours create the race-operations visual identity.

Challenges we ran into

  1. Combining multiple historical data sources into one stable offline schema.
  2. Preserving accurate driver rosters across the season.
  3. Supporting Streamlit 1.12 and Python 3.9 locally while deploying reliably to Streamlit Cloud.
  4. Designing repair choices with meaningful financial consequences without changing historical race results.
  5. Making a data-heavy dashboard feel like an F1 race-operations interface.
  6. Handling missing public data honestly without inventing strategy, weather, damage costs, or responsibility.

Accomplishments that we're proud of

  • Built an exact 24-round replay with 60 sessions and six Sprint weekends.
  • Preserved historical gaps, statuses, points, penalties, DNFs, and constructor standings.
  • Added real 2025 driver changes, including Lawson/Tsunoda and Doohan/Colapinto.
  • Added source-backed weather, tyre-stint, and pit-stop context.
  • Added crash-contingency planning, repair bands, safety gates, over-cap warnings, and audit sanctions.
  • Created a formal post-season FIA & Board Audit.
  • Preserved the original Budget Workspace alongside the replay system.
  • Added a team-aware visual system with local driver portraits and carbon-fibre styling.

What we learned

The most important lesson was that historical accuracy and interactivity need to be separated carefully. If financial decisions modified race results, the simulator would become alternate history rather than a replay.

Keeping classifications immutable allowed the budget system to remain meaningful without inventing sporting outcomes. We also learned how much complexity is hidden in a season replay: driver substitutions, Sprint formats, penalties, DNFs, source limitations, weather observations, and safe repair decisions all need to work together consistently.

What's next for F1 Budget Allocator

  • Add richer source-backed incident and strategy coverage as public data becomes available.
  • Add optional multi-season replay support.
  • Improve CSV import and export for real team-style budget planning.
  • Add richer comparative dashboards for constructor efficiency and spending.
  • Add configurable regulations and cost-cap scenarios for future seasons.
  • Improve deployment onboarding and provide sample simulations for new users.

The long-term goal is to make F1 Budget Allocator a transparent, replayable strategy tool for exploring the financial decisions behind a modern Formula 1 season.

Built With

Share this project:

Updates

Submission history