For a reviewer:
- Decision: Bronze stores source data verbatim and computes nothing; every derived value lives downstream where it is version-controlled and tested.
- Trade-off: raw data keeps its rough edges (nanosecond integers, undocumented enums, telemetry gaps), which the transform layer must absorb.
- Proof: every write passes a data-quality gate and records a schema fingerprint, so source-side drift is detectable rather than silent.
Two sources, two purposes
FastF1
The primary timing source lap times, telemetry, weather, and race-control messages for every session.
Jolpica
The Ergast-compatible reference client official driver/constructor standings and classified pit stops.
What Bronze stores
Ingestion writes four fully-documented datasets per session, each Hive-partitioned byseason and race:
Laps
One row per driver per completed lap sector times, compound, stint, pit timing, track status.
Telemetry
Continuous per-car samples within each lap speed, throttle, brake, gear, DRS state, position.
Weather
Periodic session-level atmospheric readings air and track temperature, humidity, wind, pressure.
Race Control
Every race-control broadcast flags, safety car and VSC deployments, incidents, penalties.
data/bronze/reference/jolpica/. Each writer is independent and isolated by its own try/except, so one failing dataset never blocks the others. The full per-writer walkthrough lives on Architecture.
Bronze is dumb. Ingestion renames columns to
snake_case but never computes a derived value, joins a table, or applies a business rule. Every physics term, every feature, every model lives downstream in transform/ and ml/, where it’s version-controlled, tested, and re-runnable without touching the API again.Schema drift detection
FastF1’s own schema shifts between seasons a column renamed, a type changed, a field added. Every write computes a schema fingerprint: a SHA-1 hash of the sorted column names, recorded on the run manifest. Comparing fingerprints across runs turns silent drift into a detectable, queryable event instead of a downstream surprise see Manifest Report.Neither source requires credentials. FastF1 caches to
data/cache/ on disk; Jolpica is a public REST API with a politeness contract, not an auth contract.Next
Sources
FastF1 and Jolpica in depth.
Bronze Schemas
Every column, every dataset.
Quality & Coverage
What’s checked, what blocks a write.
Get Started
Ingest your first race.