Zacharias Cura← Selected work

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.

13 dbt modelsacross Bronze, Silver, and Gold
Airflowscheduled orchestration
QuickSight + Streamlitanalytics consumers of the modeled data
SnowflakedbtAirflowQuickSightStreamlit

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.

Why this mattered: if the final grain is ambiguous, a dashboard can produce a technically valid aggregation that is still wrong for the business question.
Source-aligned Bronze→Cleaned Silver→Unified Gold funnel→QuickSight / Streamlit

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.

13

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.