Retail Sales Analytics Dashboard
Built a real-time Power BI dashboard tracking 2M+ sales records across 50 retail locations, reducing report generation time by 90%.

The Challenge
A multi-location retail chain with 50 stores was running on manually compiled weekly Excel reports. Each report took 3 hours to build, was always 5–7 days behind, and the format differed by analyst. Leadership had no real-time view into which stores were performing, which SKUs were moving, or where inventory gaps were appearing.
What We Built
We built a Power BI reporting stack on Azure. SQL pipelines pull sales, inventory, and staff data from each store's POS system hourly into Azure SQL Database. Power BI connects live to the database, rendering dashboards that refresh every 60 minutes. Regional managers get store-level drill-through; executives get the P&L summary. All in a standardised, branded format.
How It Works
Before the project, the regional managers' Monday morning ritual was waiting for a spreadsheet that arrived — if they were lucky — by noon. The spreadsheet covered last week's data, mixed different data formats from each store, and required manual interpretation. Strategic decisions were being made on stale, inconsistent data.
We started by standardising the data layer. Each store's POS system exports sales data in slightly different formats; we built SQL transformation pipelines that normalise all 50 feeds into a single Azure SQL schema — covering transactions, returns, SKU movement, and staff hours.
Power BI connects directly to Azure SQL with live DirectQuery, meaning the dashboards always reflect the latest data load. We built three views: an executive summary with overall revenue, margin, and top/bottom-performing stores; a store manager view with their own location's hourly sales, top-selling products, and inventory alerts; and a SKU-level analysis for the buying team.
The result is that Monday morning reports are now live by 8am automatically — no human involvement. Regional managers check dashboards on their phones throughout the week, and the board has removed the manual reporting role from three analyst positions, redeploying those hours to actual analysis.



