LapByLap
A full-stack web application that provides data-driven F1 Fantasy team recommendations through Monte Carlo simulations and race data analysis. The platform uses statistical modelling to help users make informed fantasy team decisions.

Monte Carlo Simulations

Executes 5,000+ simulations per race, implementing probabilistic sampling of driver performance distributions. Models lap-by-lap progression with stochastic position changes, tyre degradation effects, fuel load impacts, and probabilistic race events including safety car periods.

Team Optimisation

Employs linear programming via PuLP library to solve constrained multi-objective optimisation problems. Balances expected value maximisation with risk-adjusted portfolio theory, incorporating variance analysis and upside potential metrics within F1 Fantasy budget constraints.

Historical Race Data

Processes official F1 timing data via FastF1 library to extract driver performance distributions, track-specific parameters, and race dynamics. Computes statistical parameters including mean qualifying pace, race pace distributions, tyre degradation rates, and DNF probabilities from aggregated historical data.

Interactive Visualisations

Renders position progression distributions, value analysis quadrants plotting expected points versus cost, and animated lap-by-lap race simulations. Utilises Three.js for visualisations and statistical charting libraries to visualise probability distributions and simulation outcomes.

Technologies

React FastAPI PostgreSQL Monte Carlo Python Three.js Docker NumPy Pandas