Logo Lanfrica

oluwabusola-may/Retail-Sales-Performance-Analysis

Domain:

socioeconomic

Record type:

project
Creator:
olu
Host:
A simulated end-to-end analyst project for NovaMart, a multi-channel retailer operating across Nigeria and Ghana. Built to mirror real analyst work: synthetic data generation, data cleaning, SQL analysis, and a two-dashboard Power BI story. # novamart-analysis README (1).md # NovaMart: Multi-Channel Retail Analytics (2021–2024) A simulated end-to-end analyst project for **NovaMart**, a fictional multi-channel retailer operating across Nigeria and Ghana. Built to mirror real analyst work: synthetic data generation, data cleaning, SQL analysis, and a two-dashboard Power BI story — not a tutorial exercise. ## Business Context NovaMart sells across In-Store, Online, and Marketplace channels in two markets. Leadership wants to understand where growth is coming from, whether it's sustainable, and whether the customer loyalty program is actually working. This project answers both questions using four years of order, payment, customer, and product data. ## Tools & Stack - **Python** — synthetic data generation - **Microsoft Excel** — initial data cleaning and validation - **MySQL Workbench** — SQL analysis on a star schema - **Power BI** — dashboarding and DAX measures ## Data Model Star schema with the following tables: | Table | Type | Purpose | |---|---|---| | `orders` | Fact | Order-level transactions | | `order_items` | Fact | Line-item detail, includes outlier flags | | `payments` | Fact | Payment method and status | | `dim_date` | Dimension | Calendar attributes, joins on `full_date` | | `dim_customers` | Dimension | Customer profile, loyalty tier | | `dim_products` | Dimension | Product category, pricing | | `dim_employees` | Dimension | Staff attribution | | `dim_stores` | Dimension | Store location, channel, market | **A note on outliers:** rather than deleting anomalous values in `order_items`, each was kept and tagged with `outlier_flag` and `outlier_treatment` columns. The reasoning, and the original values, stay visible — a real analyst documents judgment calls instead of erasing them. ## Workflow 1. Generate realistic synthetic transaction data with Python 2. Clean and validate in Excel (data types, duplicates, missing values) 3. Load into MySQL and build a star schema 4. Write SQL to …