logo
Back to Projects
Marketing Performance Analysis Platform
CompletedDLTPolarsSnowflake+5 more

Marketing Performance Analysis Platform

End-to-end marketing analytics stack for Maven Fuzzy Factory using DLT, Snowflake, dbt, Dagster, Elementary, and Metabase.

Timeline

Q1 2026

Role

Data Engineer

Team

Solo Project

Status
Completed

Technology Stack

DLT
Polars
Snowflake
dbt
Dagster
Elementary
Metabase
Python

Key Challenges

  • Building a reliable CSV-to-warehouse ingestion flow while preserving data quality.
  • Designing KPI marts that stay fresh with incremental logic and recompute windows.
  • Coordinating ingestion, transformations, and quality checks through an automated orchestration layer.

Key Learnings

  • Asset-based orchestration with Dagster simplifies dependency management across data workflows.
  • Incremental marts with targeted recompute windows balance freshness and cost.
  • Combining dbt tests with Elementary monitoring improves confidence in business-facing metrics.

Executive Summary

This project delivers an end-to-end analytics platform for marketing performance analysis on the Maven Fuzzy Factory e-commerce dataset.

The stack ingests CSV data with DLT, models data in Snowflake using dbt, orchestrates jobs with Dagster, and exposes KPI outputs in Metabase for business consumption.

Business Questions Addressed

  • How are sessions and orders trending over time?
  • What is the session-to-order conversion rate?
  • Which acquisition channels (utm_source) drive the best outcomes?
  • How do revenue, gross margin, and refunds evolve daily?
  • What are revenue-per-order and revenue-per-session dynamics?

Architecture Overview

CSV (data/)
  -> DLT ingestion -> Snowflake (raw)
  -> dbt (staging -> intermediate -> marts)
  -> KPI models + tests + Elementary report
  -> Metabase dashboard

Modern Data Stack Architecture

Data Modeling Strategy

The dbt project follows a layered and modular design:

  • Staging (stg_*) for source normalization
  • Intermediate (int_*) for business joins and reusable transformations
  • Marts for core entities and KPI reporting

Core marts include fct_sessions, fct_orders, fct_order_items, fct_refunds, dim_products, and dim_users.

KPI marts include kpi_daily_overview and kpi_daily_marketing_channels with incremental builds and a rolling 3-day recompute window.

Orchestration and Delivery

Dagster is used to orchestrate ingestion and transformation with explicit job dependencies:

  • dlt_pipeline_job for ingestion
  • dbt_build_job triggered after successful DLT completion
  • Daily schedule at 06:00 UTC

This setup keeps execution deterministic and easier to operate in production-like conditions.

Data Quality and Observability

Quality controls are implemented at multiple layers:

  • dbt schema and relationship tests in schema.yml
  • Elementary monitoring for freshness and anomaly signals
  • Dagster sensors for workflow triggering and failure visibility

Operational Runbook

Recommended execution order:

  1. Run DLT ingestion.
  2. Execute dbt build and tests.
  3. Generate the Elementary report.
  4. Validate KPI outputs in Metabase.

Repository Highlights

  • ingestion/ - DLT pipelines (CSV to Snowflake raw layer)
  • dbt_marketing_perf/ - dbt models, tests, and exposures
  • infra/ - Dagster orchestration and operational scripts
  • dashboard/ - Metabase dashboard export
  • docs/ - user guide, optimization notes, and KT checklist

Repository