flowchart LR A[Stock-on-hand<br/>by SKU x Location] --> B[Compute<br/>annual value] B --> C[Sort descending<br/>and accumulate] C --> D[A: top 80% value<br/>B: next 15%<br/>C: bottom 5%] D --> E[Differentiated<br/>review cadence<br/>and safety stock] style D fill:#FFF7E6,stroke:#F4B400 style E fill:#E6F4EA,stroke:#137333
51 Operations Analytics: Supply Chain and Forecasting
51.1 Why Operations Analytics Matters
A two-day reduction in inventory days releases working capital that finance can see in the next bank reconciliation; a one-percentage-point cut in stockouts shows up in next month’s revenue.
Operations is the function where analytical decisions show up most quickly in cash. The feedback loop is short, the metrics are physical, and the audience — plant managers, planners, logistics heads — has no patience for a chart that does not lead to a load list, a reorder, or a route change.
Operations analytics on a BI desk clusters into three jobs. Supply chain visibility answers where is the inventory, where is it moving, and where is it stuck? Forecasting answers how much will we sell, by SKU, by week, by location? Service-level analytics answers are we delivering on time, in full, in spec? — On-Time-In-Full (OTIF), perfect-order rate, fill rate. Sunil Chopra & Peter Meindl (2016) frame the supply chain as a series of flow and stock decisions — inventory, transportation, facility, and information — and argue that visualisation is what binds the four together for managers operating across them. Rob J. Hyndman & George Athanasopoulos (2018) make the case that effective forecasting in operations is less about chasing the lowest error and more about producing forecasts that downstream planners actually use.
- Show the location. Every operations dashboard answers where? — plant, warehouse, lane, store. Maps and faceted views are not decoration.
- Show the time-to-act window. Operations decisions have horizons — today, this week, this month. The dashboard must collapse to the planner’s horizon.
- Show the consequence. Stockouts cost revenue; excess costs working capital. Every metric needs a financial translation.
51.2 Supply Chain Visibility: Where Is the Inventory?
A supply chain dashboard makes flows and stocks visible across nodes — suppliers, plants, warehouses, distribution centres, retail. The visualisation lens is unusually rich because the data has both a spatial dimension (locations on a map) and a flow dimension (movement between locations).
| Visual | What it shows | Tool path |
|---|---|---|
| Network map with flow arrows | Plants, DCs, warehouses as nodes; lane volume as arrow width. | Power BI ArcGIS map; Tableau filled map with paths; Excel 3D Map. |
| Inventory heatmap by SKU and location | Stock-on-hand intensity across the SKU x location grid. | Power BI matrix with conditional formatting; Tableau heatmap; Excel conditional format. |
| Days-of-Cover small-multiples | Days-of-cover trend per SKU; lines below 7 days flagged red. | Power BI small-multiples line; Tableau Trellis line. |
| Sankey of order-to-delivery | Order placement to receipt, with each step’s median cycle time as link width. | Power BI Sankey from AppSource; Tableau Sankey extension. |
Inventory is the most heavily analysed working-capital line. Three views run on every operations dashboard.
- ABC analysis sorts SKUs by annual consumption value and divides them into A (top 70-80 percent of value, often 10-20 percent of SKUs), B (next 15 percent), and C (long tail). The visualisation is a Pareto chart — bars sorted descending with a cumulative line — and it tells the planner where to spend attention.
- Days-of-cover divides current stock by average daily demand. A line chart with target bands (7-14 days as green, less as amber, less than 3 as red) for each SKU-location combination shows runway risk at a glance.
- Inventory ageing buckets stock by how long it has sat: 0-30 days, 31-60, 61-90, 91-180, 180+. Stacked bars per warehouse let the operations head see write-off risk before it becomes a finance problem.
Hau L. Lee et al. (1997) showed that a small variation in retail demand amplifies as orders move upstream — distributors order more aggressively than retailers, plants more aggressively than distributors, suppliers more aggressively than plants — producing the bullwhip of escalating order swings. The classic visualisation overlays four time-series — retail point-of-sale, distributor orders, plant production, supplier shipments — on the same chart. The amplitude grows visibly upstream. When operations leaders see the bullwhip in their own data, the conversation about information sharing across the chain becomes much shorter.
Many supply chain dashboards report only average lead time per supplier or lane. The average hides everything dangerous — a supplier whose lead time is 14 days on average but ranges from 7 to 45 will stock-out the warehouse on the long tail. Always pair the average with the 95th percentile and a histogram. Sunil Chopra & Peter Meindl (2016) call the standard deviation of lead time the second variable that determines safety stock, after demand variability.
51.3 Forecasting: How Much Will We Sell?
Forecasting is the operations function that touches every other one. A bad forecast cascades into stockouts, excess inventory, expedited freight, and missed promotions. A good forecast is one that planners trust and use; technically sophisticated forecasts that nobody trusts are not used and therefore not good.
| Family | Best when | Visualisation lens |
|---|---|---|
| Naive and seasonal naive | Stable demand, baseline benchmark. | Actual vs forecast line chart. |
| Moving average and exponential smoothing | Smooth trend or seasonal patterns. | Smoothed line over points, with prediction band. |
| ARIMA and SARIMA | Established time series with clear autocorrelation. | Time-series chart with residual diagnostics. |
| Regression with calendar and promo features | Demand driven by promotions, holidays, weather, price. | Coefficient bar chart and SHAP-like contribution view. |
| Machine learning (gradient boosting, NN) | Many SKUs, rich features, large training sets. | Importance plot, partial dependence, residual heatmap. |
| Hierarchical reconciliation | Forecasts must add up across a hierarchy. | Coherent line charts at each hierarchy level. |
Rob J. Hyndman & George Athanasopoulos (2018) argue that the first visualisation in any forecasting workflow should be a simple time-series plot with the eye looking for trend, seasonality, cycles, and anomalies. Skipping that step in favour of running an algorithm is the most common mistake.
A forecast is judged by error. The standard metrics are:
- MAPE (Mean Absolute Percentage Error) — symmetric across scales but breaks for near-zero actuals.
- WAPE (Weighted Absolute Percentage Error) — total absolute error divided by total actuals; volume-weighted.
- MAE (Mean Absolute Error) — same units as the data.
- Bias — mean error; positive bias means the forecast over-predicts.
The right visualisation is a small-multiples line chart of actual vs forecast per SKU group, with the residuals plotted below. A second view — a forecast accuracy table by SKU class with WAPE and bias columns — drives the planner’s attention to the SKUs that need a manual override.
A forecast that is 12 percent off but unbiased is easier to plan around than one that is 8 percent off but consistently over-predicts. Build a bias page that shows positive vs negative bias by SKU, location, and salesperson. Patterns of structural bias usually point to a behaviour issue — the sales team padding numbers — that no algorithm can fix.
51.4 Service-Level Analytics: Are We Delivering?
Service-level analytics binds the operations chain to the customer experience. Four metrics dominate.
| Metric | Definition | Visualisation lens |
|---|---|---|
| On-Time-In-Full (OTIF) | Orders delivered on time and in full quantity, as a share of all orders. | Bullet chart against target, trended over time. |
| Fill rate | Units delivered as a share of units ordered, regardless of timing. | Stacked bar of fill, partial, stockout per SKU. |
| Perfect Order Rate | Orders that meet all of OTIF, complete documentation, no damage, accurate invoice. | Funnel chart from order count down to perfect orders. |
| Customer order cycle time | Hours or days from order placement to receipt at the customer. | Histogram with median and 95th percentile markers. |
The Perfect Order Rate is a useful diagnostic because it multiplies the four sub-rates: 95 percent on-time × 95 percent in-full × 95 percent damage-free × 95 percent invoice-accurate = 81 percent perfect orders. Each sub-rate looks healthy; the compound number tells a different story. The funnel chart that decomposes it is one of the most decision-changing visuals on an operations dashboard.
51.5 Common Pitfalls
- Inventory dashboards without ageing. A days-of-cover number looks healthy when half the stock has been sitting for nine months and is about to be written off.
- Forecast charts without prediction intervals. A point forecast is a single number that pretends to know more than it does. Always show the band.
- Average-only lead time. The 95th percentile is what causes stockouts.
- Fragmented OTIF definitions. Sales, ops, and customer-service teams calculating OTIF differently. Reconcile to a single definition before building the chart.
- Over-aggregated views. A national fill rate of 96 percent hides four warehouses at 78 percent. Always default to facility-level views with national totals as a reference line.
- Forecast comparisons without a naive baseline. Sophisticated models that beat naive forecasts by less than 5 percent are not worth the operating cost. The naive line should be on every accuracy chart.
- Maps without flow. A map of warehouses with no arrows showing volume between them tells the audience nothing about the network.
- Currency-of-the-realm vs unit-of-the-realm confusion. A planner thinks in cases; finance thinks in rupees. Operations dashboards need both, side by side, with conversion factors visible.
- No financial translation. We had 412 stockouts last week is a number; we had 412 stockouts costing 2.1 crore in lost revenue is a decision-driver.
- Updating once a month for an operations function that runs daily. The cadence of the dashboard must match the cadence of the decision.
51.6 Illustrative Cases
Yuvijen Forge Components Ltd. days-of-cover dashboard. The plant analytics team builds a Power BI dashboard that shows days-of-cover by raw-material SKU and supplier, with red flags below 5 days. The dashboard runs hourly off the ERP and pages the procurement manager when any A-class SKU breaches the threshold. Within three months unplanned production stoppages from material shortage drop from a monthly average of 14 to 2.
Yuvijen Stores forecast accuracy turnaround. Demand planning team replaces a single national SKU forecast with a Tableau dashboard showing forecast accuracy at SKU x store-cluster level, plus a bias page. The bias page reveals that the bakery category is structurally over-forecast by 18 percent, traced to a planner habit of cushioning against weekend stock-outs. After the conversation, bakery waste drops from 6.4 percent of sales to 2.9 percent within two quarters — accuracy itself improves only marginally, but the bias is removed.
Yuvijen Telecom logistics OTIF programme. Network rollout team uses an Excel-and-Power-BI hybrid dashboard for tower-equipment delivery OTIF. Funnel chart decomposes Perfect Order Rate into its four components and reveals that invoice accuracy — not on-time or in-full — is the binding constraint. A new invoice-validation step at the warehouse improves Perfect Order Rate from 71 to 88 percent in one quarter, which is enough to release the next milestone payment from a regulator-watched contract.
51.7 Hands-On Exercise: Build an Operations Control Tower
Aim. Build a three-page operations control tower in Power BI that combines inventory visibility, forecast accuracy, and service-level monitoring on a single dataset, with a daily refresh cadence. Tableau equivalents are noted.
Scenario. You are the BI lead in supply chain at Yuvijen Forge Components Ltd. The COO has asked for a dashboard that lets him see, by 8 a.m. each morning, where stock is at risk, how the forecast performed yesterday, and which lanes are missing OTIF.
Deliverable. A three-page Power BI report — Inventory, Forecast, Service — with a daily scheduled refresh, mobile layout, and data-driven alerts wired to the COO’s phone.
51.7.1 Step 1 — Load and model the data
Use Get Data in Power BI to load five CSVs from the workshop pack:
-
inventory_daily.csv— Date, SKU, Location, OnHand, OnOrder, AverageDailyDemand. -
forecast.csv— Date, SKU, Location, ForecastUnits, ActualUnits. -
orders.csv— OrderID, CustomerID, OrderDate, PromisedDate, ShipDate, ReceivedDate, OrderedQty, ShippedQty. -
lanes.csv— LaneID, OriginLocation, DestinationLocation, ModeOfTransport. -
lane_events.csv— LaneID, Date, ShipmentID, LeadTimeDays.
In Power Query, type the columns and ensure all dates are Date. Build a DimDate table; mark it as the date table. Build a DimSKU table with SKU, Class (A/B/C, computed by Pareto rank in Power Query), Category, and UnitCost.
51.7.2 Step 2 — Page 1: Inventory visibility
Drop four visuals on a single page.
Days-of-cover heatmap. A matrix visual with SKU on rows, Location on columns, and DaysOfCover as values, conditionally formatted from red (under 3) through amber to green (target band 7-14). Add a slicer for Class so the planner can filter to A-class SKUs first.
ABC Pareto. A combo chart with SKU (sorted descending by annual value) on the x-axis, value as bars, cumulative percentage as a line. A reference line at 80 percent marks the A/B boundary.
Inventory ageing stack. A stacked column chart with Location on the x-axis and ageing buckets (0-30, 31-60, 61-90, 91-180, 180+) on the colour series.
Map with flow arrows. A Power BI ArcGIS map showing locations as bubbles sized by total stock value and a path layer showing the previous day’s flow volumes between locations as line widths.
Tableau alternative: heatmap (use a calculated field for the bands), Pareto (combine bars and a line on dual-axis), stacked column, and a path map using path-aware geometry.
51.7.3 Step 3 — Page 2: Forecast accuracy
Build three views.
Actual vs forecast line. Small-multiples line chart with one panel per SKU class (A / B / C). Each panel shows daily actual and forecast lines with a shaded prediction band.
Accuracy table. A table visual with rows = SKU, columns = WAPE, MAPE, Bias, Last 30 days vs prior 30, conditionally formatted.
Bias map. A geographic map of locations coloured by mean bias over the last 30 days. Persistent positive bias is one colour, negative bias the other. Locations with structural bias jump out.
DAX measures:
WAPE_30d =
DIVIDE(
SUMX(
FILTER(forecast, forecast[Date] >= TODAY() - 30),
ABS(forecast[ActualUnits] - forecast[ForecastUnits])
),
SUMX(
FILTER(forecast, forecast[Date] >= TODAY() - 30),
forecast[ActualUnits]
)
)
Bias_30d =
AVERAGEX(
FILTER(forecast, forecast[Date] >= TODAY() - 30),
forecast[ForecastUnits] - forecast[ActualUnits]
)
Tableau alternative: small-multiples via Trellis chart trick; bias map with a calculated colour field.
51.7.4 Step 4 — Page 3: Service levels and lanes
Build four views.
OTIF bullet trend. A bullet chart per Customer Tier (Strategic, Key, Standard) against a 95 percent target, with a sparkline of the last 12 weeks beside each bullet.
Perfect Order Rate funnel. A funnel showing total orders → on-time → in-full → damage-free → accurate-invoice → perfect orders, with the compound percentage in the title.
Lead-time histogram. A histogram of lane lead times for the last 30 days with the 50th and 95th percentiles marked. A slicer for LaneID lets the lane manager isolate one route.
Stockout cost ticker. A card visual showing rolling 7-day stockout cost in rupees, computed as the sum across SKUs of MAX(ForecastUnits - ActualUnitsAvailable, 0) * UnitMargin. This is the financial translation the COO asked for.
Tableau alternative: bullet charts with reference-line tricks; funnel as a sorted bar; histogram via binned dimension; card as a single big-number worksheet.
51.7.5 Step 5 — Daily refresh and alerts
Publish to a Power BI workspace. Schedule a daily refresh for 6 a.m. so the dashboard is current before the 8 a.m. operations stand-up. Configure two data-driven alerts on the COO’s phone:
- Any A-class SKU with days-of-cover below 3 at any location.
- OTIF below 90 percent for any Strategic Tier customer in the rolling 7-day window.
Use Power Automate to chain a third alert: if the stockout cost ticker exceeds 50 lakh in any 7-day window, post a card to the operations Microsoft Teams channel.
51.7.6 Step 6 — Mobile layout
In Power BI Desktop, switch to Phone Layout (per Chapter 47) and build a phone-specific view of the dashboard with a single column of the three highest-priority visuals: stockout cost ticker, top-5 SKUs at days-of-cover risk, and OTIF bullet for Strategic customers. Test it on the Power BI Mobile app before publishing.
Operations analytics relies on almost every chart family from Modules 2 and 3. Pareto charts from Chapter 11 drive ABC. Heatmaps and small-multiples from Chapter 12 carry the inventory and forecast views. Maps with flow paths render the network. Bullet charts (Chapter 12, Chapter 50) replace the gauges that operations dashboards inherit from old plant-floor displays. Reference bands and confidence intervals (Chapter 21, Chapter 24) wrap forecasts. Mobile layouts from Chapter 47 deliver the dashboard to the COO’s phone for the 8 a.m. stand-up. The financial translation — stockout cost in rupees — is the bridge that makes operations conversations land in the boardroom; without it, the COO is the only one in the room speaking in cases.
Power BI three-page operations control tower (yuvijen-forge-control-tower.pbix), Tableau equivalent (yuvijen-forge-control-tower.twbx), workshop dataset (yuvijen-forge-ops-data.xlsx), and a screen recording of the dashboard tour (yuvijen-forge-control-tower-walkthrough.mp4) will be embedded here.
Summary
| Concept | Description |
|---|---|
| Operations Contract | |
| Show the Location | Operations dashboards must answer plant, warehouse, lane, store |
| Show the Time-to-Act Window | Operations decisions have horizons — today, this week, this month |
| Show the Consequence | Stockouts cost revenue; excess costs working capital — translate to rupees |
| Three Operations Jobs | |
| Supply Chain Visibility | Where is inventory, where is it moving, where is it stuck? |
| Forecasting | How much will we sell, by SKU, by week, by location? |
| Service-Level Analytics | Are we delivering on time, in full, in spec? |
| Supply Chain Visuals | |
| Network Map with Flow Arrows | Plants, DCs, warehouses as nodes; lane volume as arrow width |
| Inventory Heatmap | Stock-on-hand intensity across SKU x location grid |
| Days-of-Cover Small-Multiples | Days-of-cover trend per SKU; lines below 7 days flagged red |
| Order-to-Delivery Sankey | Order placement to receipt with median cycle times |
| Inventory Analytics | |
| ABC Pareto | Sort SKUs by annual value; A is top 80 percent, B is next 15 percent |
| Days-of-Cover Bands | Target band 7-14 days, amber under 7, red under 3 |
| Inventory Ageing Stacked Bars | Stack ageing buckets per warehouse to surface write-off risk |
| Bullwhip Overlay | Overlay retail, distributor, plant, supplier orders to show amplification |
| Lead-Time 95th Percentile | Average lead time hides the long tail; show 95th percentile and histogram |
| Forecasting Families | |
| Naive Baseline | Naive and seasonal naive forecast as benchmark for any model |
| Smoothing Methods | Moving average and exponential smoothing for smooth or seasonal data |
| ARIMA and SARIMA | Established time series with clear autocorrelation |
| Regression with Features | Regression with calendar, promo, holiday, weather, price features |
| Machine Learning | Gradient boosting and neural networks for many SKUs and rich features |
| Hierarchical Reconciliation | Reconcile forecasts so they add up across hierarchy levels |
| Plot Before Algorithm | First visualisation should be a simple time-series plot |
| Forecast Evaluation | |
| MAPE | Mean Absolute Percentage Error — symmetric but breaks at zero actuals |
| WAPE | Weighted Absolute Percentage Error — total error over total actuals |
| MAE | Mean Absolute Error in same units as the data |
| Bias over Accuracy | Unbiased forecast 12 percent off easier to plan than 8 percent biased |
| Prediction Intervals | Always show prediction intervals around forecasts |
| Naive Baseline on Chart | Always include a naive baseline on every accuracy chart |
| Service-Level Metrics | |
| OTIF | Orders delivered on time and in full as a share of all orders |
| Fill Rate | Units delivered as a share of units ordered, regardless of timing |
| Perfect Order Rate | Compound rate combining OTIF, complete documentation, no damage, accurate invoice |
| Order Cycle Time | Hours or days from order placement to receipt at customer |
| Service Visualisation | Bullet chart for OTIF, funnel for Perfect Order Rate decomposition |
| Common Pitfalls | |
| Pitfall: Inventory Without Ageing | Days-of-cover looks healthy while half the stock is six months old |
| Pitfall: Forecast Without Bands | A point forecast pretends to know more than it does |
| Pitfall: Average-Only Lead Time | The 95th percentile is what causes stockouts, not the mean |
| Pitfall: Fragmented OTIF | Sales, ops, customer-service teams calculating OTIF differently |
| Pitfall: Over-Aggregated Views | National fill rate of 96 percent hides four warehouses at 78 percent |
| Pitfall: No Naive Baseline | Sophisticated models that beat naive by less than 5 percent are not worth it |
| Pitfall: Maps Without Flow | A map of warehouses with no arrows shows nothing about the network |
| Pitfall: No Financial Translation | 412 stockouts is a number; 412 stockouts costing 2.1 crore is a decision |
| Pitfall: Cadence Mismatch | Monthly dashboard for an operations function that runs daily |
| Hands-On Control Tower | |
| Page 1 — Inventory | Days-of-cover heatmap, ABC Pareto, ageing stack, ArcGIS map with flows |
| Page 2 — Forecast | Small-multiples actual versus forecast, accuracy table, bias map |
| Page 3 — Service | OTIF bullet, Perfect Order funnel, lead-time histogram, stockout-cost ticker |
| Daily Refresh | Schedule 6 a.m. refresh so dashboard is current before 8 a.m. stand-up |
| Phone Alerts | Alerts on A-class days-of-cover under 3 and Strategic OTIF under 90 |
| Mobile Layout | Phone-specific Power BI layout with three highest-priority visuals |