Menu

Intermediate project · Project 3 of 8

E-commerce Analytics Data Platform

An online store has orders, customers, products and web sessions in separate systems. Build an ELT platform that models them into trusted marts for revenue, retention and product performance.

  • Intermediate
  • SQL warehouse (DuckDB or PostgreSQL locally, or a cloud warehouse) · dbt Core or plain SQL scripts · Python for data generation · A BI tool or notebook for charts
  • 2 min read
  • Updated Oct 2026

Requirements

  • Load four source datasets into raw tables
  • Build staging models that type, rename and deduplicate
  • Build a star schema with order-line facts and customer, product and date dimensions
  • Define revenue, orders and repeat-customer rate once and reuse them
  • Test keys, nulls and relationships on every model

Technology stack

SQL warehouse (DuckDB or PostgreSQL locally, or a cloud warehouse), dbt Core or plain SQL scripts, Python for data generation, A BI tool or notebook for charts

Dataset

Generate synthetic orders, customers, products and sessions with a script, or use a public e-commerce sample dataset whose licence permits reuse.

Business context

Teams at the store disagree about revenue because each pulls numbers differently. A single modelled layer with tested, documented metrics is how real analytics teams resolve that, and it is the core skill set of analytics engineering.

Architecture

  1. Raw schema holds orders, customers, products and sessions as loaded.
  2. Staging models clean and type one source table each.
  3. Intermediate models join and apply business rules.
  4. Marts: fct_order_lines, dim_customer, dim_product, dim_date and daily aggregates.
  5. Certified metrics feed a dashboard.
Layered SQL models from raw to marts, each with tests.

Write down metric definitions before writing SQL, for example whether revenue includes tax, shipping and refunds. Most real disagreements are about definitions, not code.

By Data Career Hub Editorial · Last reviewed Oct 2026

Progress is saved in this browser only. No account needed.

Search
Filter by type