Data Engineering

Analytics Engineering Pipeline for Retail

Independent Project · Analytics Engineer

Read a deep dive into the problem, approach, and results.

The Problem

Raw transactional data from a multinational retailer spanning 5 regions, 4 product categories, and 3 pricing tiers existed across siloed CSV files. There was no unified view of revenue performance, customer behavior, or regional trends, making it impossible for stakeholders to answer basic business questions.

My Approach

I designed a three-layer dbt transformation pipeline (Staging, Intermediate, Marts) to clean, enrich, and model raw data into a star schema. A Python ETL layer converts CSV to Parquet and loads it into PostgreSQL. Power BI connects directly to pre-computed mart tables for zero-latency dashboarding.

What I Built

  • Python ETL pipeline for CSV-to-Parquet conversion and PostgreSQL ingestion
  • dbt staging views: 4 models cleaning and type-casting raw source tables
  • dbt intermediate views: enriched models with derived business logic
  • dbt mart tables: 6 star-schema tables (1 fact, 5 dimensions) for reporting
  • Custom singular tests enforcing business rules (discount range, revenue integrity)
  • 5-page Power BI dashboard: Overview, Revenue, Category, Region, Customers
  • dbt documentation with auto-generated lineage DAG
  • Custom generate_schema_name macro for clean schema separation

Impact & Results

50,000
Transactions processed
8,000
Customer records modeled
327
Products catalogued
6
Star-schema mart tables

Tech Stack

PythondbtPostgreSQLPower BIPyArrow

Want to discuss data architecture, pipelines, or analytics? Let's connect.