dbt · Snowflake · Analytics engineering
Sales Conversion Data Pipeline
The project started as sales-conversion SQL used for reporting. I helped turn that logic into a maintained Bronze–Silver–Gold dbt pipeline, with a defined Gold reporting grain, incremental processing, Airflow orchestration, and outputs used in QuickSight and Streamlit.
Starting point: useful SQL, but not yet a maintainable pipeline
The reporting logic already answered business questions, but keeping it as a large SQL workflow made it harder to isolate transformations, test changes, and understand which step was responsible when a number moved.
The goal was to preserve the business logic while giving the workflow explicit layers and ownership boundaries.
Modeling decision: define the reporting grain first
Before splitting the logic into models, I focused on the shape of the Gold output: one unified reporting grain, additive fields that behave predictably in BI, and a RATE_BASIS flag so rate calculations could be interpreted correctly.
Operationalization: 13 models instead of one opaque workflow
I converted the transformation logic into 13 dbt models across Bronze, Silver, and Gold. Incremental strategies were used where recurring loads did not need a full rebuild, and Airflow orchestrated the sequence.
- Separated source-aligned transformations from business logic.
- Made dependencies visible through dbt rather than hidden inside a single script.
- Used model definitions, contracts, and data-quality checks to catch structural issues earlier.
- Kept the BI-facing Gold layer focused on fields that could be aggregated consistently.
Validation before BI handoff
I checked the modeled output before treating the dashboard as proof that the pipeline was correct. That meant comparing row populations, validating key fields and expected grain, and checking that the Gold output behaved correctly when consumed by the reporting layer.
maintained dbt models replaced a more monolithic transformation path and became the scheduled source for downstream analytics.
Result: the reporting logic became easier to operate
The main improvement was not a visual change in the dashboard. It was that the transformation path became inspectable: source-aligned data, cleaned logic, business-ready output, and scheduled execution could be reasoned about separately.