request_status
LoadingLoading live explorer
modeled_rows
request_status
LoadingLoading live explorer
modeled_rows
Walk through every dbt model in the project — from bronze sources to gold presentation marts — with annotated SQL and explanations of key techniques.
Curriculum
25 steps
7 modules
24 models
Each step pairs the actual SQL from the dbt model with a narrative explanation covering what the model does, key SQL patterns it demonstrates, and where it fits in the overall data lineage. Progress is saved in your browser — pick up where you left off anytime. Use arrow keys or the buttons below to navigate.
1. Foundation
Bronze Sources
1. Foundation
Bronze Sources
Lineage
These four tables are the only external sources in the dbt DAG. All silver models ref them via {{ source('garmin_raw', '...') }}.
All analytical models trace back to four bronze tables that mirror the structure of the original Garmin data rather than following an analytical model. These tables are source-shaped, not transformed.
Three FIT tables — garmin_fit_sessions, garmin_fit_records, and garmin_fit_events — are parsed from .fit binary files produced by a Garmin watch during a run. garmin_health_daily_payloads stores raw JSON blobs from the Garmin Connect API, keyed on calendar_date and payload_type. The raw JSON is preserved so the pipeline can recover health metrics without re-downloading.
The dbt source contract (shown in the code pane) declares these four tables and enforces required identifiers via source tests. Every silver model references them with {{ source('garmin_raw', '...') }}.
Key Technique
Bronze tables carry source_file_name, source_file_path, source_file_modification_time, and ingested_at on every row for full traceability back to the original S3 objects.
Tip: Use ← and → arrow keys to navigate between steps.