> ## Documentation Index
> Fetch the complete documentation index at: https://offthepace.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Off The Pace app: browser-native F1 analytics

> A zero-server React app powered by DuckDB-Wasm and ONNX. Parquet files load in your browser; every SQL query runs locally in under 10 ms.

Off The Pace is a browser-native F1 analytics application deployed at [off-the-pace.web.app](https://off-the-pace.web.app). There is no compute server when you open the app, your browser downloads Parquet files, loads them into DuckDB-Wasm running in WebAssembly, and executes SQL queries locally in under 10 ms. The ML models (XGBoost quantile regressors, cliff classifiers, stint-life regressors) are bundled as ONNX and scored in-browser. Nothing you interact with touches a backend at runtime.

<Note>
  **For a reviewer:**

  * **Decision:** a zero-server React app; DuckDB-Wasm and ONNX Runtime Web run every query and every inference on the client.
  * **Trade-off:** a larger initial download and no row-level authorization, in exchange for free, offline-capable serving.
  * **Proof:** Playwright E2E drives the live production bundle and a bundle-size budget gates every build.
</Note>

## Architecture

Data loads in your browser no server processes your queries. Three layers run entirely inside your browser tab:

```
Parquet files  ·  ONNX model bundles
      ↓
DuckDB-Wasm  (WebAssembly, sub-10 ms SQL)
      ↓
Charts, simulators, and query editor
```

The Parquet files are the same gold-mart tables produced by the dbt pipeline `fct_lap_residuals`, `fct_driver_skill_features`, `fct_cliff_prediction_features`, `dim_compounds_season`, and a handful of dimension tables. A manifest resolves every table path at runtime so you always query the latest published build.

## Available visualizations

The app is organized into content pillars. The following are **live** and available today:

| Pillar                | Path                 | What you get                                                           |
| --------------------- | -------------------- | ---------------------------------------------------------------------- |
| **Ghost Car**         | `/ghost-car`         | Compare simulated optimal laps vs actual laps                          |
| **Lap Decomposition** | `/lap-decomposition` | Decompose any lap into its eight additive causes                       |
| **Tyre Strategy**     | `/tyre-strategy`     | Dial a compound and conditions to watch the degradation models         |
| **Aero & Conditions** | `/aero`              | Analyze track temperature and dirty air impacts                        |
| **Drivers**           | `/drivers`           | Driver consistency charts and era-normalized skill ratings             |
| **Constructors**      | `/constructors`      | Team structural pace contribution and trends                           |
| **The Machine**       | `/ml`                | ML model metrics, blind-test scoreboard, and the degradation simulator |
| **Query Lab**         | `/query`             | A full SQL editor run any query against the gold mart in-browser       |
| **Data Quality**      | `/data-quality`      | Data pipeline invariants and telemetry reliability checks              |

<Note>
  The following pillars are deployed as placeholders and are **coming soon**: Races, Race Craft, Energy & Telemetry.
</Note>

## How to use the app

1. Navigate to [off-the-pace.web.app](https://off-the-pace.web.app).
2. Use the **filter bar** at the top of every page to select a season and, where relevant, a specific race.
3. Pick a pillar from the sidebar to explore the visualization you want.
4. The **engine status indicator** in the top bar shows when DuckDB-Wasm has finished loading queries run as soon as it turns green.

## Explore by pillar

<CardGroup cols={2}>
  <Card title="Ghost Car" icon="ghost" href="/app/families/ghost-car">
    Driver skill in equal machinery ghost recombination, counterfactual championships, and hidden strong drives.
  </Card>

  <Card title="Lap Decomposition" icon="chart-gantt" href="/app/families/lap-decomposition">
    The seven-term identity at every scale per-lap waterfall, full-race totals, and per-sector splits.
  </Card>

  <Card title="Tyre & Strategy" icon="timer" href="/app/families/tyre-strategy">
    Survival curves, degradation timelines, pit-strategy Gantts, and recovery forecasts.
  </Card>

  <Card title="Aero & Conditions" icon="wind" href="/app/families/aero-conditions">
    Dirty-air cost and lap maps, track rubber buildup, and the field pace baseline.
  </Card>

  <Card title="Drivers" icon="user" href="/app/families/drivers">
    Nine angles on driver skill ratings, circuit affinity, wet-weather edge, corner technique, and teammate duels.
  </Card>

  <Card title="Constructors" icon="car" href="/app/families/constructors">
    Car pace isolated from the driver structural pace and the circuit interaction heatmap.
  </Card>

  <Card title="The Machine" icon="cpu" href="/app/families/the-machine">
    Live ONNX-scored degradation simulator, model metrics dashboard, and held-out blind-test scoreboard.
  </Card>

  <Card title="Data & Validation" icon="shield-check" href="/app/families/data-validation">
    Query the gold marts directly in SQL, and audit per-race lap exclusions from the pipeline.
  </Card>
</CardGroup>
