Grocery Retail Analytics
24-check data-quality gate → DuckDB star schema → 13 SQL analyses → difference-in-differences with placebo tests → 5-page Power BI report (44 DAX measures) + Streamlit app with a cite-or-refuse “ask the data” assistant.
- Top 10% of households drive 34.2% of sales; 318 lapsing regulars hold 13.4%
- Placebo checks failed → campaign ROI unmeasurable; recommended a 10% random holdout
- SQL-vs-DAX reconciliation caught 3 DAX bugs before they reached the report










