Skip to content

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 .envKAGGLE_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, set DataFolder, 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 + a DateTableTemplate_* and attached a variation to dim_date[date] — dead weight, since we ship an explicit dim_date.
  • [ ] Mark dim_date as 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