Skip to content

selected case study

E-commerce Marketing & Web Performance Analytics

A tested analytics-engineering and BI portfolio spanning dbt/BigQuery marts, DuckDB CI, Power BI, DAX, Olist analysis, cohort/RFM SQL, and statistical testing.

Role fit

Analytics EngineerBI AnalystData Analyst

Quick technical review

The case study in four points.

Full methodology

Problem

Website and order data need to be modeled into a reporting layer that explains traffic quality, conversion behavior, and channel-level commercial performance.

Architecture

A three-layer dbt architecture produces four BI-ready marts in BigQuery. Every model is written cross-adapter through Jinja dispatch, so the same code and 57 of its tests reproduce on DuckDB with no warehouse credentials.

Results

10 dbt models + 4 BI-ready marts

Limitations & scope

The public Olist analysis adds EDA, cohort retention, RFM segmentation, delivery analysis, and T-test, ANOVA, and Chi-square workflows.

Summaries reuse the project’s documented evidence. Review the complete case study for evaluation boundaries.

Evidence-led visual review

Explore the actual work.

Actual project screenshots and repository figures are shown with source provenance.

E-commerce marketing channel performance Power BI dashboard

Power BI screenshot

Published repository image; its interface may predate current development.

Open published source

10 dbt models + 4 BI-ready marts

73 dbt tests + 57 DuckDB CI tests

Chi-square p 0.15 over 680,450 sessions

30 documented DAX measures

Approximately 99K Olist orders analyzed

Project proof

Verified external evidence

Last verified 2026-10-05

Problem and approach

Problem

Website and order data need to be modeled into a reporting layer that explains traffic quality, conversion behavior, and channel-level commercial performance.

Architecture

A three-layer dbt architecture produces four BI-ready marts in BigQuery. Every model is written cross-adapter through Jinja dispatch, so the same code and 57 of its tests reproduce on DuckDB with no warehouse credentials.

Statistical validation

The channel ranking is tested rather than assumed. A chi-square test over 680,450 sessions does not reject equal conversion across traffic sources, so the repository reports that the ranking rests on revenue and volume rather than recommending a channel to scale.

Data governance

Direct identifiers stop at the staging layer, which sits behind its own access control. The user dimension drops names, raw email, and street address, reduces email to a hash plus its domain, and rounds coordinates to roughly 11 km. A September 2026 review found that an intermediate view was still joining user attributes onto every event row, pulling names and email addresses into a view nothing downstream read; that join was removed.

Analysis scope

The public Olist analysis adds EDA, cohort retention, RFM segmentation, delivery analysis, and T-test, ANOVA, and Chi-square workflows.

Why it matters

The repository demonstrates how modeled data, BI delivery, analytical SQL, and statistical testing can remain distinct but connected proof surfaces.

Architecture and analysis

  • Builds 10 dbt models and four BI-ready marts across website performance, order marketing, customers, and products.
  • Uses 73 dbt tests, with 57 tests running in credential-free DuckDB CI.
  • Tests whether the channel ranking is real before reporting it, and states the negative result rather than recommending a channel.
  • Connects a three-page Power BI report and 30 documented DAX measures to cohort, RFM, EDA, and statistical-analysis notebooks.

Testing and validation

  • Cross-adapter dbt models for BigQuery production and DuckDB local/CI validation
  • Chi-square significance test over 680,450 sessions, packaged as a reproducible analysis query
  • A user dimension that publishes no direct identifiers, with hashed email and rounded coordinates
  • Three-page Power BI report with 30 documented DAX measures
  • Olist Python and DuckDB notebooks covering EDA, cohort, RFM, and hypothesis testing

Operational value

  • Re-reads the three Olist hypothesis tests with effect sizes: delivery speed d = 0.36, category eta-squared 0.038, payment method V = 0.035, and delivery after the promised date d = 1.45.
  • Delivers 10 dbt models, four BI-ready marts, and 73 dbt tests, including 57 that run in DuckDB CI without credentials.
  • Establishes that conversion does not differ measurably across traffic sources (chi-square 6.73, df 4, p 0.15 over 680,450 sessions), and documents the consequence for the dashboard ranking.
  • Documents 30 DAX measures across a three-page Power BI reporting surface.
  • Analyzes approximately 99K Olist orders with cohort, RFM, EDA, T-test, ANOVA, and Chi-square workflows.

How to inspect

  • Start with the hiring summary and dbt mart definitions to understand the modeled reporting layer.
  • Inspect the DuckDB CI workflow and test coverage before reviewing the Power BI and DAX proof.
  • Use the Olist notebooks to review cohort, RFM, and statistical-analysis depth separately from the BI layer.

Related case studies

All projects