ProcureFlow – Procurement Analytics (Sievo-style)
Problem
Global procurement teams struggle to unify multi-source spend data (CSV/API/ERP), normalize currencies, and produce supplier insights like budget variance, regional mix, and monthly trends. The question: “Can we deliver a reliable, explainable pipeline that transforms raw spend into business-ready analytics?”
My Approach
1) Python ETL (Clean & Enrich)
- Ingested suppliers, categories, FX rates, budgets, and transactions.
- Validated keys, deduplicated Tx, converted to EUR, clipped outliers per category.
- Produced a star schema export: FactSpend, DimSupplier, DimCategory, and a flattened spend_cleaned for quick analysis.
2) SQL Star Schema
Fact-Dimension design for reliable analytics & DAX measures:
FactSpend.Supplier_ID → DimSupplier.Supplier_ID,
FactSpend.Category_ID → DimCategory.Category_ID.
3) Power BI Dashboard
- Spend Overview (KPI cards, category mix, regional split)
- Supplier Performance (budget variance, top suppliers)
- Trends (monthly spend + category mix, slicers)
- Data Model Overview (documentation of star schema)
Live Dashboard
If the report doesn’t load, open it directly in a new tab: Open Power BI.
Impact
- Trustworthy analytics: normalized spend in EUR, clean keys, and documented lineage.
- Business value: supplier budget variance, top-N suppliers, regional/category mix.
- Scalable design: Python ETL + SQL schema, ready to swap SQLite → Azure SQL DB.
Tech Stack
Python (pandas) • SQL (star schema) • SQLite (demo warehouse) • Power BI Desktop/Service • Azure-ready architecture
Architecture
Sources
CSV: suppliers, categories, FX, budgets, transactions
ETL
Python cleanse → EUR conversion → outlier clip → export Fact/Dim
Analytics
SQL star schema → DAX measures → Power BI visuals & sharing
DimSupplier ───► FactSpend ◄─── DimCategory
Project Files
All cleaned data files, ETL scripts, SQL queries, and documentation are available on GitHub.
🔗 View Project on GitHub