Roadmap¶
A living checklist of the project's phases. Updated as work progresses.
✅ Phase 0 — Foundation¶
- [x] Decide dataset, language, tooling (see Decisions)
- [x] Create repository structure
- [x] Python pipeline skeleton (
download_data.py,prepare_star_schema.py) - [x] Knowledge base scaffold (MkDocs Material)
- [x] Licensing (MIT for code; document CC BY-NC-SA for data)
- [x] Git repository (local + GitHub, public)
- [x] CI to publish docs to GitHub Pages
✅ Phase 1 — Data¶
- [x] One-time Kaggle API setup (token via
.env→KAGGLE_API_TOKEN) - [x] Run
download_data.py(fetched 9 raw Olist CSVs, 42.6 MB) - [x] Run
prepare_star_schema.py(built 4 dims + 4 facts) - [x] Sanity-check: PKs unique, 0 orphan keys, KPIs match known Olist figures (revenue R$ 13.59M, avg review 4.09, on-time 93.2%)
🚧 Phase 2 — Power BI model (authored as code)¶
- [x] Author the semantic model as PBIP/TMDL text (no GUI clicking)
- [x] 8 tables with Power Query (M) partitions reading the processed CSVs
- [x] Define relationships (star schema) — 10 fact→dim relationships
- [x] Author core DAX measures (revenue, orders, AOV, on-time %, avg review, …)
- [x] Validate all TMDL + PBIP structure locally (0 errors)
- [x] Enable 3 preview features in Power BI Desktop (PBIP, TMDL, PBIR) — you
- [x] Open
powerbi/OlistAnalytics.pbip, setDataFolder, refresh — you (first successful refresh: 2026-07-30,fact_order_items= 112,650 rows; Desktop upgraded the model to compatibilityLevel 1606) - [ ] Turn off auto date/time (File ▸ Options ▸ Current file ▸ Data Load).
Desktop had it on during the first save, so it generated 7
LocalDateTable_*tables + aDateTableTemplate_*and attached avariationtodim_date[date]— dead weight, since we ship an explicitdim_date. - [ ] Mark
dim_dateas the date table (for time-intelligence DAX). Do this after turning auto date/time off, otherwise the two fight.
🚧 Phase 3 — Report (authored as code)¶
- [x] Sales Overview page: title, 5 KPI cards, line/column/bar charts (PBIR)
- [x] Custom theme (OlistTheme.json) — palette, fonts, card styling
- [ ] Customers & geography page (+ Brazil map)
- [ ] Products page
- [ ] Delivery performance page
- [ ] Polish: tooltips, data labels, per-visual tweaks
🔜 Phase 4 — Polish & present¶
- [ ] Screenshots in the README and docs
- [ ] "How to reproduce" walkthrough
- [ ] Final review for a portfolio audience
Learning notes to write along the way¶
- [ ] Power BI Desktop & PBIP format
- [ ] Power Query basics
- [ ] Relationships & star schema
- [ ] DAX: measures and time intelligence
- [ ] Report design principles