Part of our Supply Chain & Procurement series
Read the complete guidePower BI Supply Chain Dashboard: Visibility & Performance Tracking
Supply chain visibility is not a luxury --- it is the difference between a delayed shipment that costs a customer and one that is rerouted before the customer knows there was a problem. Organizations with mature supply chain analytics reduce inventory carrying costs by 15--25%, improve order fulfillment rates by 10--20%, and cut logistics spending by 8--15%. Power BI makes this visibility possible by connecting data from ERP systems, warehouse management systems, transportation management systems, and supplier portals into a single analytical view.
The challenge is not connecting the data. The challenge is designing dashboards that surface the right metrics at the right granularity for each audience --- from the warehouse floor manager tracking today's pick accuracy to the VP of Supply Chain evaluating quarterly supplier performance and capacity planning.
This guide covers the complete architecture of a supply chain analytics dashboard in Power BI, including the data model, KPI definitions, DAX measures, visualization design for inventory management, supplier performance, order fulfillment, demand planning, logistics costs, and warehouse operations.
Key Takeaways
- Supply chain dashboards require data integration across ERP, WMS, TMS, and supplier systems --- start with the ERP as the backbone and add complementary sources incrementally
- Inventory turns, days of supply, and stockout rates are the three essential inventory health metrics that every supply chain dashboard must include
- Supplier lead time tracking enables proactive reorder point adjustment --- a supplier whose lead time drifts from 14 days to 21 days silently creates stockout risk
- Order fulfillment rate must be measured as perfect order rate (on time, in full, damage-free, correct documentation) to capture the true customer experience
- Demand vs. supply visualization identifies both current gaps and future imbalances, enabling inventory positioning decisions weeks in advance
- Warehouse utilization metrics (space, labor, equipment) prevent both the cost of excess capacity and the bottlenecks of constrained operations
Data Model for Supply Chain Analytics
Core Tables
Supply chain data models are broader than financial or HR models because they span multiple operational systems.
Product dimension (DimProduct). Product master data including ProductID, SKU, ProductName, Category, SubCategory, UnitOfMeasure, Weight, Volume, UnitCost, ReorderPoint, SafetyStock, LeadTimeDays, ABCClassification (A items represent 80% of value, B items 15%, C items 5%), and IsActive.
Supplier dimension (DimSupplier). Supplier master data including SupplierID, SupplierName, Country, Region, Category (raw materials, components, finished goods, packaging), QualityRating, OnTimeDeliveryRating, LeadTimeDays (contracted), PaymentTerms, and IsCritical (boolean for single-source or high-value suppliers).
Location dimension (DimLocation). Warehouses, distribution centers, and store locations including LocationID, LocationName, LocationType (warehouse, DC, store, cross-dock), Address, Country, Region, Capacity (units or cubic feet), and OperatingCost.
Inventory snapshot fact table (FactInventorySnapshot). Daily snapshots of inventory levels. Columns include SnapshotDate, ProductID, LocationID, QuantityOnHand, QuantityAllocated, QuantityAvailable, QuantityOnOrder, UnitCost, and TotalValue.
Purchase order fact table (FactPurchaseOrder). Purchase orders with line-level detail. Columns include POID, POLineID, SupplierID, ProductID, OrderDate, RequestedDeliveryDate, ActualDeliveryDate, QuantityOrdered, QuantityReceived, UnitPrice, IsOnTime (boolean), IsInFull (boolean), and QualityPassRate.
Sales order fact table (FactSalesOrder). Customer orders with fulfillment tracking. Columns include SOID, SOLineID, CustomerID, ProductID, LocationID, OrderDate, RequestedShipDate, ActualShipDate, ActualDeliveryDate, QuantityOrdered, QuantityShipped, IsOnTime, IsInFull, IsDamageFree, and IsDocumentCorrect.
Shipment fact table (FactShipment). Transportation records including ShipmentID, CarrierID, OriginLocationID, DestinationLocationID, ShipDate, DeliveryDate, Weight, Volume, FreightCost, Mode (truck, rail, ocean, air), and ServiceLevel (standard, expedited, overnight).
Date dimension (DimDate). Standard date table.
Inventory Management Metrics
Essential Inventory KPIs
Inventory Value =
SUM(FactInventorySnapshot[TotalValue])
Inventory Turns =
DIVIDE(
CALCULATE(SUM(FactSalesOrder[QuantityShipped]) * AVERAGE(DimProduct[UnitCost])),
AVERAGE(FactInventorySnapshot[TotalValue]),
0
)
Annualized Inventory Turns =
VAR MonthsInPeriod =
DATEDIFF(MIN(DimDate[Date]), MAX(DimDate[Date]), MONTH) + 1
RETURN
[Inventory Turns] * (12 / MonthsInPeriod)
Days of Supply =
VAR AvgDailyDemand =
DIVIDE(
CALCULATE(SUM(FactSalesOrder[QuantityOrdered])),
DATEDIFF(MIN(DimDate[Date]), MAX(DimDate[Date]), DAY) + 1,
0
)
RETURN
DIVIDE(
SUM(FactInventorySnapshot[QuantityAvailable]),
AvgDailyDemand,
0
)
Stockout Rate =
DIVIDE(
CALCULATE(
COUNTROWS(FactInventorySnapshot),
FactInventorySnapshot[QuantityAvailable] <= 0
),
COUNTROWS(FactInventorySnapshot),
0
)
Overstock Rate =
DIVIDE(
CALCULATE(
COUNTROWS(FactInventorySnapshot),
FactInventorySnapshot[QuantityAvailable] > DimProduct[ReorderPoint] * 3
),
COUNTROWS(FactInventorySnapshot),
0
)
Inventory Accuracy =
-- Requires cycle count data
DIVIDE(
CALCULATE(COUNTROWS(FactCycleCount), FactCycleCount[SystemQty] = FactCycleCount[ActualQty]),
COUNTROWS(FactCycleCount),
0
)
Inventory Visualization Design
Dashboard page 1: Inventory Health.
Top row: KPI cards for Total Inventory Value, Inventory Turns, Days of Supply, Stockout Rate, and Overstock Rate. Conditional formatting flags stockout rates above 2% and turns below target in red.
Middle section: A scatter plot with inventory value on the Y-axis and turns on the X-axis, with each bubble representing a product category. Products in the upper-left quadrant (high value, low turns) are the biggest optimization opportunity --- they tie up capital without contributing proportional revenue.
Bottom section: A table listing products sorted by days of supply (ascending) showing the items closest to stockout. Include columns for product name, current stock, daily demand rate, days of supply, reorder point, and on-order quantity. Apply conditional formatting: red for below safety stock, amber for below reorder point, green for adequate.
ABC Analysis Visualization
ABC classification segments products by their contribution to total inventory value or sales. Visualize this as a Pareto chart showing the cumulative percentage of inventory value by product, sorted from highest to lowest. A lines marks the 80% threshold (A items) and 95% threshold (B items). The remaining are C items.
Cumulative Value % =
VAR CurrentProduct = MAX(DimProduct[ProductID])
VAR CurrentValue = [Inventory Value]
VAR AllProducts =
ADDCOLUMNS(
SUMMARIZE(DimProduct, DimProduct[ProductID]),
"@Value", [Inventory Value]
)
VAR TotalValue = SUMX(AllProducts, [@Value])
VAR CumulativeValue =
SUMX(
FILTER(AllProducts, [@Value] >= CurrentValue),
[@Value]
)
RETURN
DIVIDE(CumulativeValue, TotalValue, 0)
Supplier Performance
Supplier Scorecard Metrics
Supplier On-Time Rate =
DIVIDE(
CALCULATE(COUNTROWS(FactPurchaseOrder), FactPurchaseOrder[IsOnTime] = TRUE()),
COUNTROWS(FactPurchaseOrder),
0
)
Supplier In-Full Rate =
DIVIDE(
CALCULATE(COUNTROWS(FactPurchaseOrder), FactPurchaseOrder[IsInFull] = TRUE()),
COUNTROWS(FactPurchaseOrder),
0
)
Supplier OTIF Rate =
DIVIDE(
CALCULATE(
COUNTROWS(FactPurchaseOrder),
FactPurchaseOrder[IsOnTime] = TRUE(),
FactPurchaseOrder[IsInFull] = TRUE()
),
COUNTROWS(FactPurchaseOrder),
0
)
Average Lead Time (Actual) =
AVERAGEX(
FactPurchaseOrder,
DATEDIFF(FactPurchaseOrder[OrderDate], FactPurchaseOrder[ActualDeliveryDate], DAY)
)
Lead Time Variance =
[Average Lead Time (Actual)] - AVERAGE(DimSupplier[LeadTimeDays])
Quality Pass Rate =
AVERAGE(FactPurchaseOrder[QualityPassRate])
Supplier Dashboard Design
Supplier scorecard matrix. A table showing each supplier with columns for OTIF rate, average lead time, lead time variance, quality pass rate, and total spend. Sort by OTIF rate to highlight underperformers. Apply traffic light conditional formatting.
Lead time trend. A line chart showing actual lead time versus contracted lead time by month for the selected supplier. A widening gap between actual and contracted lead times signals deteriorating supplier performance that will eventually cause stockouts.
Supplier risk assessment. Build a risk matrix plotting supplier spend concentration (percentage of your total procurement from each supplier) against performance (OTIF rate). High-spend, low-performance suppliers are critical risks. Single-source suppliers with declining performance require immediate contingency planning.
Supplier Comparison
A radar chart (spider chart) comparing 3--5 key suppliers across multiple dimensions --- on-time delivery, quality, price competitiveness, lead time consistency, and responsiveness --- provides a holistic view during supplier review meetings.
Order Fulfillment
Perfect Order Rate
The perfect order rate is the gold standard for customer fulfillment measurement. It counts only orders that meet all four criteria simultaneously.
Perfect Order Rate =
DIVIDE(
CALCULATE(
COUNTROWS(FactSalesOrder),
FactSalesOrder[IsOnTime] = TRUE(),
FactSalesOrder[IsInFull] = TRUE(),
FactSalesOrder[IsDamageFree] = TRUE(),
FactSalesOrder[IsDocumentCorrect] = TRUE()
),
COUNTROWS(FactSalesOrder),
0
)
On-Time Delivery Rate =
DIVIDE(
CALCULATE(COUNTROWS(FactSalesOrder), FactSalesOrder[IsOnTime] = TRUE()),
COUNTROWS(FactSalesOrder),
0
)
Fill Rate =
DIVIDE(
SUM(FactSalesOrder[QuantityShipped]),
SUM(FactSalesOrder[QuantityOrdered]),
0
)
Order Cycle Time =
AVERAGEX(
FactSalesOrder,
DATEDIFF(FactSalesOrder[OrderDate], FactSalesOrder[ActualShipDate], DAY)
)
Backorder Rate =
DIVIDE(
CALCULATE(
COUNTROWS(FactSalesOrder),
FactSalesOrder[QuantityShipped] < FactSalesOrder[QuantityOrdered]
),
COUNTROWS(FactSalesOrder),
0
)
Fulfillment Dashboard
KPI cards showing Perfect Order Rate, On-Time Rate, Fill Rate, Order Cycle Time, and Backorder Rate across the top.
Fulfillment funnel showing the breakdown of perfect vs. imperfect orders, with the imperfect orders decomposed into late, short-shipped, damaged, and documentation errors. This waterfall-style visualization answers "Why are we not at 100%?"
Fulfillment by customer or channel in a matrix. Different customers or sales channels may have different fulfillment performance, revealing capacity or process issues specific to certain order types.
Daily fulfillment trend as a line chart showing on-time rate and fill rate over the trailing 90 days. Add reference lines at your target levels. Daily granularity reveals operational patterns (dips on specific days of the week, impacts of promotions or seasonal surges).
Demand vs. Supply Planning
Demand Forecasting Visualization
Power BI excels at visualizing the gap between demand and supply, enabling planners to make proactive inventory positioning decisions.
Forecasted Demand =
SUM(FactDemandForecast[ForecastedQuantity])
Actual Demand =
SUM(FactSalesOrder[QuantityOrdered])
Forecast Accuracy =
1 - ABS(
DIVIDE(
[Actual Demand] - [Forecasted Demand],
[Forecasted Demand],
0
)
)
Supply Gap =
SUM(FactInventorySnapshot[QuantityAvailable]) +
SUM(FactInventorySnapshot[QuantityOnOrder]) -
[Forecasted Demand]
Demand vs. supply chart. An area chart showing forecasted demand as a line, actual demand as bars (for historical periods), available supply as a shaded area, and on-order supply as a secondary shaded area. Where the demand line exceeds the combined supply areas, a gap exists that requires procurement action.
Product-level gap analysis. A table showing each product with current inventory, on-order quantity, forecasted demand for the next 30/60/90 days, and the resulting gap or surplus. Sort by the 30-day gap to prioritize immediate action items.
Forecast Accuracy Tracking
Track forecast accuracy by product category, planner, and time horizon. Forecasts become less accurate further into the future --- measuring accuracy at 1-week, 4-week, and 13-week horizons reveals the reliable planning window for each product category.
Logistics Cost Analysis
Transportation Cost Metrics
Total Freight Cost =
SUM(FactShipment[FreightCost])
Cost per Shipment =
DIVIDE([Total Freight Cost], COUNTROWS(FactShipment), 0)
Cost per Unit Shipped =
DIVIDE([Total Freight Cost], SUM(FactShipment[Weight]), 0)
Freight as % of Revenue =
DIVIDE([Total Freight Cost], SUM(FactSalesOrder[Revenue]), 0)
Cost by Mode =
CALCULATE([Total Freight Cost])
-- Filter by DimShipment[Mode] in visualization
Logistics Dashboard
Cost breakdown by mode using a donut chart showing the distribution of freight costs across truck, rail, ocean, and air. An increasing share of air freight often indicates reactive logistics (rushing shipments due to poor planning).
Lane analysis showing the top 20 shipping lanes (origin-destination pairs) by volume and cost. A map visual with lines connecting origin and destination locations, with line thickness representing shipment volume and color representing cost per unit, provides geographic context.
Carrier performance comparison in a matrix showing each carrier with columns for on-time delivery rate, damage rate, average transit time, cost per shipment, and cost per pound. This enables data-driven carrier selection and negotiation.
Cost trend as a line chart showing monthly logistics costs with a secondary axis for cost as a percentage of revenue. The percentage metric normalizes for business volume changes and reveals whether logistics efficiency is improving or deteriorating.
Warehouse Utilization
Space and Labor Metrics
Space Utilization =
DIVIDE(
SUM(FactWarehouse[UsedCapacity]),
SUM(DimLocation[Capacity]),
0
)
Labor Productivity (Units per Hour) =
DIVIDE(
SUM(FactWarehouse[UnitsProcessed]),
SUM(FactWarehouse[LaborHours]),
0
)
Pick Accuracy =
DIVIDE(
CALCULATE(SUM(FactWarehouse[CorrectPicks])),
CALCULATE(SUM(FactWarehouse[TotalPicks])),
0
)
Dock-to-Stock Time =
AVERAGEX(
FactWarehouse,
DATEDIFF(FactWarehouse[ReceiptTime], FactWarehouse[PutawayTime], HOUR)
)
Order Processing Time =
AVERAGEX(
FactWarehouse,
DATEDIFF(FactWarehouse[PickStartTime], FactWarehouse[ShipTime], HOUR)
)
Warehouse Dashboard
Utilization gauge. A gauge visual showing current space utilization against target (typically 80--85%). Below 70% suggests excess capacity cost. Above 90% indicates constrained operations that slow throughput.
Labor productivity trend. A bar chart showing units per labor hour by week, with a target reference line. Productivity dips during peak periods (holiday season) reveal when temporary staffing or overtime is needed.
Operational efficiency heatmap. A matrix with hours of the day on rows and days of the week on columns, with color intensity representing throughput volume. This reveals operational patterns --- which shifts are most productive, which times have idle capacity, and when bottlenecks occur.
Frequently Asked Questions
What systems need to be integrated for a comprehensive supply chain dashboard?
At minimum, you need your ERP system (for orders, inventory, and procurement data), warehouse management system (for operational metrics), and transportation management system (for shipment and logistics data). Additional valuable sources include supplier portals (for real-time lead time and quality data), demand planning systems, IoT sensors (for real-time inventory and condition monitoring), and customer feedback systems. Start with the ERP as your backbone and add complementary sources incrementally.
How often should supply chain dashboards refresh?
Inventory and fulfillment dashboards benefit from daily or twice-daily refresh --- operational decisions depend on current stock levels and order status. Supplier performance and logistics cost dashboards can refresh weekly or monthly since these metrics are analyzed at longer intervals. Warehouse operational dashboards in high-volume environments may need near-real-time refresh (every 15--30 minutes) using DirectQuery or streaming datasets. Match refresh frequency to decision frequency.
What is a good inventory turns target?
Inventory turns vary dramatically by industry. Grocery and perishable goods: 20--50 turns per year. Fast-moving consumer goods: 8--15 turns. Industrial and B2B manufacturing: 4--8 turns. Heavy equipment and specialty products: 2--4 turns. Compare your turns to industry benchmarks and your own historical trend. Improving turns by even 1--2 points can free significant working capital.
How do I handle data quality issues in supply chain analytics?
Data quality is the top challenge in supply chain analytics. Common issues include missing receipt dates, inconsistent product codes between systems, and incomplete shipment records. Address these at the data pipeline level: implement validation rules in your ETL process, create exception reports for missing data, and establish data governance processes that assign ownership for each data domain. In Power BI, use conditional formatting to highlight rows with missing or suspicious data so users know which numbers to trust.
Can Power BI handle real-time supply chain monitoring?
Power BI supports real-time and near-real-time scenarios through DirectQuery (queries the source database live), streaming datasets (push API for IoT and event data), and Power BI Premium automatic page refresh (as frequent as every second for Premium capacity). For monitoring warehouse operations or tracking in-transit shipments, configure a streaming dataset that receives updates from your WMS or TMS. For most analytical dashboards, scheduled refresh every 1--4 hours provides sufficient currency.
What is the difference between fill rate and perfect order rate?
Fill rate measures quantity fulfillment only --- the percentage of ordered units that were shipped. A 95% fill rate means you shipped 95 out of every 100 units ordered. Perfect order rate is stricter --- it measures the percentage of orders that were on time, in full, damage-free, and with correct documentation simultaneously. A company might have a 95% fill rate but only a 75% perfect order rate because some of those filled orders arrived late or with wrong paperwork. Perfect order rate is the more meaningful customer experience metric.
How do I build supply chain risk visibility into the dashboard?
Create a risk scorecard that combines supplier concentration (single-source risk), geographic concentration (regional disruption risk), inventory days of supply (buffer adequacy), supplier financial health (if available), and lead time volatility (unpredictable suppliers). Score each risk factor and aggregate into a composite supply chain risk index. Visualize this as a risk heatmap by product category or supplier, with drill-through to the underlying data. Alert thresholds trigger notifications when risk scores exceed acceptable levels.
Expert Supply Chain Analytics
Supply chain dashboards that drive real operational improvement require domain expertise in logistics, inventory management, and procurement --- not just Power BI technical skills. The metrics must align with your operational reality, and the visualizations must serve the specific decision-makers in your supply chain organization.
ECOSIRE's Power BI services provide dashboard development for supply chain and logistics analytics, ERP integration for connecting Odoo, SAP, and other operational systems, and performance optimization for dashboards handling large transactional datasets.
Supply chain visibility is not about having more data --- it is about having the right data presented in the right context at the right time. A warehouse manager needs today's pick accuracy. A procurement director needs next quarter's supplier risk assessment. A CFO needs this month's inventory carrying cost. Build your dashboard to serve each audience with the metrics that drive their decisions, and the entire supply chain improves.
Written by
ECOSIRE TeamTechnical Writing
The ECOSIRE technical writing team covers Odoo ERP, Shopify eCommerce, AI agents, Power BI analytics, GoHighLevel automation, and enterprise software best practices. Our guides help businesses make informed technology decisions.
Related Articles
AI for Supply Chain Optimization: Visibility, Prediction & Automation
Transform supply chain operations with AI: demand sensing, supplier risk scoring, route optimization, warehouse automation, and disruption prediction. 2026 guide.
Data Warehouse for Business Intelligence: Architecture & Implementation
Build a modern data warehouse for business intelligence. Compare Snowflake, BigQuery, Redshift, learn ETL/ELT, dimensional modeling, and Power BI integration.
ERP for Automotive Parts: Fitment Data, Cross-Reference & Distribution
How ERP systems manage automotive part number cross-referencing, VIN lookup, fitment data, core returns, warranty claims, and multi-warehouse distribution.
More from Supply Chain & Procurement
AI for Supply Chain Optimization: Visibility, Prediction & Automation
Transform supply chain operations with AI: demand sensing, supplier risk scoring, route optimization, warehouse automation, and disruption prediction. 2026 guide.
How to Write an ERP RFP: Free Template & Evaluation Criteria
Write an effective ERP RFP with our free template, mandatory requirements checklist, vendor scoring methodology, demo scripts, and reference check guide.
Machine Learning for Demand Planning: Predict Inventory Needs Accurately
Implement ML-powered demand planning to predict inventory needs with 85-95% accuracy. Time series forecasting, seasonal patterns, and Odoo integration guide.
Odoo Purchase & Procurement: Complete Automation Guide 2026
Master Odoo 19 Purchase and Procurement with RFQs, vendor management, 3-way matching, landed costs, and reorder rules. Full automation guide.
Supply Chain Resilience: 10 Strategies to Survive Disruptions in 2026
Build supply chain resilience with dual sourcing, safety stock models, nearshoring, digital twins, supplier diversification, and ERP-driven visibility strategies.
Blockchain for Supply Chain Transparency: Beyond the Hype
A grounded analysis of blockchain in supply chains—what actually works, real-world deployments, traceability use cases, and how to evaluate blockchain for your business.