The project covers the complete data workflow:
**Odoo → Python ETL → PostgreSQL → Star Schema → Power BI**
* Extracted and processed raw Odoo inventory exports.
* Cleaned and transformed data using **Python and Pandas**.
* Handled data quality and encoding issues.
* Validated product and location data across different sources.
* Built an analytical database using **PostgreSQL**.
* Designed a **Star Schema** using Fact and Dimension tables.
* Prepared the data model for scalable Power BI reporting.
### Power BI Dashboard
The solution includes multiple analytical pages covering:
**Executive Overview**
* Current Stock
* Received & Delivered Quantities
* Stock Distribution by Branch
* Top Slow-Moving Products
* Inventory Movement Trends
**Slow-Moving Analysis**
* Last Movement Date
* Days Since Last Movement
* Product movement across branches
* Identification of slow-moving products
**Inventory Movement Analysis**
* Incoming vs. Outgoing quantities
* Movement trends
* Movement by operation type
* Top incoming products
* Top outgoing products
* Branch-level movement analysis
**Branch Performance**
* Stock by branch
* Branch contribution to total inventory
* Net movement by branch
* Incoming vs. outgoing movement
* Product distribution across branches
### Business Value
The dashboard helps management answer key operational questions:
* Where is the inventory?
* How is inventory moving?
* Which products are moving quickly or slowly?
* Which branches have the highest activity?
* How is inventory distributed across branches?
* Which products and locations require further investigation?
### Technologies
**Python | Pandas | PostgreSQL | SQL | Power BI | DAX | Power Query | Odoo**
The project demonstrates the complete transformation of **raw operational data into a structured data warehouse and interactive Business Intelligence solution**, rather than simply creating a Power BI report.
**Data quality limitations were also documented**, including the absence of Opening Balance, instead of making assumptions that could lead to misleading inventory balances.