Case study 4 · BI & dashboard design

Designing a supplier & inventory performance dashboard

Taking stakeholder questions through to KPI definitions, a data model and a Power BI layout.

Open the live dashboard View the data, SQL and DAX on GitHub

ContextPortfolio project, synthetic data
My roleRequirements, KPI design, data model, dashboard build
ArtefactsQuestion log, KPI dictionary, star schema, wireframe, SQL, DAX, working dashboard
ToolsPower BI, DAX, SQL, Python, Excel

The business problem

Procurement and planning teams often work from separate reports. Buyers see supplier data, planners see stock data, and nobody sees how a late supplier turns into a stockout two weeks later. The goal is one view that connects supplier performance to inventory health.

Starting from questions, not charts

StakeholderQuestion they need answered
Head of ProcurementWhich suppliers are consistently late or short-shipping, and how much spend is at risk?
Supply plannerWhich SKUs are heading for a stockout, and is a supplier the cause?
FinanceHow much working capital is tied up in excess or slow-moving stock?

KPI dictionary

KPIDefinitionTarget (example)
On-time in-full (OTIF)Supplier deliveries received on or before the due date with full quantity ÷ total deliveries≥ 95%
Supplier lead-time varianceStd. deviation of actual vs. agreed lead time (days)≤ 2 days
Days of coverOn-hand stock ÷ average daily forecast demandBy SKU class
Stockout rateSKU-days with zero stock ÷ total SKU-days≤ 2%
Excess stock valueValue of stock above the maximum days-of-cover bandTrending down

Data model

I used a star schema so the measures stay simple and the report stays fast:

Dashboard layout

Wireframe, overview page

OTIF %KPI card with trend vs. last month
Stockout rateKPI card
Days of coverKPI card
Excess stock £KPI card
Supplier scorecardTable: OTIF, lead-time variance, spend. Conditional formatting flags the worst performers.
At-risk SKUsProjected days of cover vs. supplier lead time; click a SKU to see its supplier
TrendOTIF vs. stockout rate over 12 months, showing the link between supplier delays and availability

Slicers: date range, category, location, supplier. Drill-through from any supplier to its open POs.

What the data showed

I generated a year of synthetic data (8 suppliers, 40 SKUs, 3 distribution centres) and ran every KPI in SQL:

What this shows as a BA

Reflection

A good KPI dictionary prevents most dashboard arguments. When finance and procurement disagree about "on time", the fix is an agreed definition, not a new chart.