Blog · Board and management reporting · Distribution
Measure recorded stockout incidents, unavailable time, and unfilled order value by SKU and location. Separate later recoveries from confirmed cancellations and reconcile the exception totals.
Stock out analysis connects recorded inventory failures with the orders they affected. Measure how often an event occurred, how long the SKU was unavailable, and how much unfilled order value was later recovered or canceled. Keep these measures separate so a long outage is not mistaken for several independent failures.
Use an inventory exception log for availability and an order-line exception export for commercial impact. The availability log needs event ID, SKU, location, start timestamp, end timestamp, and a reviewed cause. The order file needs event ID, order-line ID, requested units that were unfilled, net unit price, later recovered units, and canceled units.
Define a stockout event as one continuous period when the selected SKU could not be supplied from the selected location under the promised service conditions. A second alert during the same outage updates that event; it does not create another one. Decide whether stock reserved for other orders or stock on quality hold counts as unavailable for this purpose.
This page uses recorded events. When shelf or stock records are missing, inferring an out-of-stock from selling history is a separate method. Keep that inference label visible rather than blending inferred events into a confirmed incident count.
A fictional US distributor monitors three SKU-location pairs continuously from October 1 through October 10, 2026. That is 10 calendar days for each pair, or 30 SKU-location days and 720 monitored hours. Its event log contains these four distinct incidents; all timestamps use one local time zone.
| Event | SKU/location | Start | End | Unavailable hours | Reviewed cause |
|---|---|---|---|---|---|
| E1 | A / East | October 1, 08:00 | October 1, 14:00 | 6 | Receipt arrived late |
| E2 | A / East | October 3, 08:00 | October 3, 18:00 | 10 | Reorder released late |
| E3 | B / East | October 5, 10:00 | October 5, 14:00 | 4 | Stock on quality hold |
| E4 | C / West | October 8, 08:00 | October 9, 04:00 | 20 | Transfer missed cutoff |
| Total | 40 |
In an Excel sheet named Events, use A for event ID, B for SKU, C for location, D for the start timestamp, E for the end, F for cause, and G for hours. Store timestamps as date-time values rather than text. Enter in G2 and fill through G5:
=(E2-D2)*24
The calendar-time exposure policy gives the following measures:
| Measure | Calculation | Result |
|---|---|---|
| Distinct incidents | Count E1 through E4 once each | 4 |
| Incidents per 100 SKU-location days | 4 / 30 × 100 | 13.33 |
| Share of monitored time unavailable | 40 / 720 × 100 | 5.56% |
| Average completed-event duration | 40 / 4 | 10 hours |
Round rates to two decimals. A business-hours policy is also possible, but both the event hours and exposure hours must then use that schedule. An event still open at period end contributes observed unavailable hours through the cutoff, while its completed duration remains unknown.
The order exception export below has one distinct affected order line per event. Each line's original unfilled quantity is split between later recovery and confirmed cancellation attributed to the stockout. Net unit price excludes tax and shipping.
| Event / order line | Unfilled units | Net unit price (USD) | Later recovered units | Canceled units | Original unfilled value (USD) | Canceled value (USD) |
|---|---|---|---|---|---|---|
| E1 / L101 | 10 | 40 | 2 | 8 | 400 | 320 |
| E2 / L102 | 5 | 40 | 5 | 0 | 200 | 0 |
| E3 / L103 | 8 | 25 | 0 | 8 | 200 | 200 |
| E4 / L104 | 12 | 30 | 0 | 12 | 360 | 360 |
| Total | 35 | 7 | 28 | 1,160 | 880 |
For a sheet named Orders, put event in A, order-line ID in B, SKU in C, location in D, unfilled units in E, price in F, recovered units in G, and canceled units in H. Add value columns J:L:
J2 = E2*F2
K2 = G2*F2
L2 = H2*F2
Recovered value is 2 × 40 + 5 × 40 = $280. The reconciliation is $1,160 original unfilled value = $280 recovered value + $880 canceled value. Units also tie: 35 = 7 + 28. These checks use the original net unit price for all three columns; any later price change belongs in a separate explanation.
The $880 is recorded canceled order value attributable to these stockouts. It is not an estimate of every customer who might have purchased. Customers who never placed an order are absent from the exception file. The lost lines from stockouts guide examines affected order lines by branch and account in more detail.
Put a selected SKU in N2 and location in O2. Count incidents from Events and sum hours from that same sheet:
=COUNTIFS(Events!$B$2:$B$5,N2,Events!$C$2:$C$5,O2)
=SUMIFS(Events!$G$2:$G$5,Events!$B$2:$B$5,N2,Events!$C$2:$C$5,O2)
Microsoft documents COUNTIFS for counting rows that meet multiple criteria and SUMIFS for adding values that meet multiple criteria. Apply the same SKU and location criteria to Orders when summing J or L.
SKU A at East has two incidents, 16 unavailable hours, $600 originally unfilled value, and $320 canceled value. It deserves a review of receipt timing and reorder release, rather than a blanket conclusion that all $600 was lost. The operations owner validates events, customer service confirms outcomes, and purchasing checks the reviewed cause against receipt and replenishment records.
Use out-of-stock analysis from sell-out gaps when the missing evidence is availability itself. Sell-in against sell-out addresses inventory movement through a retail channel, which is a different question from this distributor's recorded incidents.
Covirage is not affiliated with Microsoft.
Bring a sample of your own incident log and order exception file with matching identifiers. Covirage maps the columns, and its tools compute and check the recorded comparisons; the external AI model explains the results with every figure traced to its rows. Create a free Covirage account, which takes about a minute, then set up your business and bring your files.
See Covirage for distributors for the supporting workflow.
Count distinct stockout events and divide by a stated exposure measure, such as monitored SKU-location days. Keep the event definition and monitored assortment consistent. A raw incident count can rise simply because the business added warehouses or started monitoring more products.
No. Some customers accept later delivery or buy a substitute from the same distributor. Track each affected order line to its final outcome and report unresolved value separately. Confirmed stockout-related cancellations are stronger evidence of lost order value than an initial shortage notice.
A gap in sales does not establish that stock was unavailable. It may reflect lower demand, a closure, or a recording problem. Use inventory or exception records for a recorded-event analysis; treat conclusions drawn only from selling gaps as inferred availability.