Inventory anomaly library
Six catalogued anomaly patterns for the inventory domain — low-stockout, SKU velocity drift, supplier delivery lag, dead stock, dead-on-arrival rate, and safety-stock breach — each with the same sample-event shape the demo ingests and a drafted corrective-action plan your team can approve or amend.
- Each pattern lists the affected_system — Inventory Management, every time — that ClearOps routes the deviation to when the live detector runs.
- The sample JSON matches the demo PLACEHOLDER shape: one key per stream, a baseline array trailing into the detected value, and a top-level detected_value field.
- The drafted corrective-action plan follows the same affected-systems + root-cause-hypothesis + next-three-steps structure the pilot ships by default.
Pattern catalogue
6 patterns
Anomaly pattern
Per-SKU units on hand dropped well below baseline — refill window missed before the next inbound shipment.
Sample event
{
"inventory_units_on_hand_SKU-1042": [
320,
318,
325,
322,
319,
321,
58
],
"detected_value": 58
}Stream: inventory_units_on_hand_SKU-1042 · detected_value: 58
Drafted corrective-action plan
Trigger emergency replenishment for SKU-1042 and pause dependent promotions until the inbound shipment is confirmed.
- Affected systems: Inventory Management — SKU-1042 is below the reorder point for the third consecutive scan.
- Root-cause hypothesis: the scheduled inbound shipment slipped past its expected arrival date without an updated ETA.
- Next three steps: (1) pull the supplier ASN and confirm the new delivery window, (2) rebalance demand from the SKU-1042 promotion until the next receiving scan, and (3) flag the SKU for the daily on-call queue so the inbound slip is visible to ops at the next stand-up.
Anomaly pattern
Scan-to-scan sell-through diverges from the seasonal baseline — either collapsing or spiking without a campaign trigger.
Sample event
{
"inventory_sku_velocity_scan_to_scan": [
1.2,
1.18,
1.22,
1.19,
1.21,
1.2,
0.64
],
"detected_value": 0.64
}Stream: inventory_sku_velocity_scan_to_scan · detected_value: 0.64
Drafted corrective-action plan
Tune the velocity baseline for SKU-1042 and review whether the dip explains the stockout signal flagged earlier this week.
- Affected systems: Inventory Management — sell-through velocity has drifted off seasonal baseline for two consecutive scans.
- Root-cause hypothesis: the recent stockout starved the SKU of the demand it would normally absorb this time of cycle.
- Next three steps: (1) cross-reference the velocity-breach scan window with the low-stockout pattern above, (2) re-fit the baseline once the SKU is back in stock, and (3) add velocity drift to the weekly review so the two patterns don’t duplicate a page in the next quarter.
Anomaly pattern
Days between PO and receipt ran long overdue — supplier ETA slipped past the accepted tolerance band.
Sample event
{
"inventory_supplier_delivery_lag_days": [
3,
4,
3,
5,
4,
3,
12
],
"detected_value": 12
}Stream: inventory_supplier_delivery_lag_days · detected_value: 12
Drafted corrective-action plan
Open a delivery-lag ticket with the supplier, escalate per the contract SLA, and broaden the safety-stock buffer on dependent SKUs.
- Affected systems: Inventory Management — supplier delivery lag for the active purchase order is 12 days, well past the 5-day tolerance.
- Root-cause hypothesis: the supplier’s most recent carrier handoff confirmation is delayed and the inbound ASN has not been updated.
- Next three steps: (1) ping the supplier logistics contact for an updated ASN, (2) raise a contract-SLA escalation per the procurement playbook, and (3) widen the safety-stock buffer on the three dependent SKUs until two on-time deliveries restore baseline.
Anomaly pattern
No units sold in the last 90 days — capital tied up in stock that contributes neither revenue nor buffer.
Sample event
{
"inventory_units_sold_last_90d": [
6,
5,
5,
4,
4,
3,
3,
3,
2,
2,
2,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1,
1
],
"detected_value": 0
}Stream: inventory_units_sold_last_90d · detected_value: 0
Drafted corrective-action plan
Mark the SKU as dead stock, route it to the liquidation channel, and reclaim the warehouse slot for a faster-moving item.
- Affected systems: Inventory Management — SKU has recorded zero units sold across the last 90 days while carrying 240+ units on hand.
- Root-cause hypothesis: the SKU fell off the active merchandising rotation and has no inbound demand signal in the order queue.
- Next three steps: (1) confirm the SKU is flagged for the monthly dead-stock review, (2) route the on-hand units to the liquidation channel for partial capital recovery, and (3) free the warehouse slot for an active SKU that will move in the next 30 days.
Anomaly pattern
Receiving scan flagged an above-baseline share of damaged or non-functional units — inbound quality slipped.
Sample event
{
"inventory_doa_units_received": [
2,
1,
2,
2,
3,
1,
14
],
"detected_value": 14
}Stream: inventory_doa_units_received · detected_value: 14
Drafted corrective-action plan
Hold the affected inbound shipment, open a quality incident with the supplier, and quarantine the DOA units pending RMA.
- Affected systems: Inventory Management — DOA share on the latest inbound shipment is 14 units, six times baseline.
- Root-cause hypothesis: a packaging change on the supplier line introduced a transport defect that the receiving scan is now catching in volume.
- Next three steps: (1) quarantine the affected units and pause them from pickable inventory, (2) open a quality incident with the supplier and request an RMA, and (3) broaden the receiving scan threshold for the next two shipments so the defect does not land on the shelf undetected.
Anomaly pattern
Per-SKU buffer slipped below the configured safety-stock floor — the stream has no slack to absorb the next deviation.
Sample event
{
"inventory_safety_stock_buffer": [
120,
118,
122,
119,
121,
120,
22
],
"detected_value": 22
}Stream: inventory_safety_stock_buffer · detected_value: 22
Drafted corrective-action plan
Raise the safety-stock incident to the on-call queue and lock any new outbound allocations to the SKU until the buffer is restored.
- Affected systems: Inventory Management — SKU-1042 safety-stock buffer is at 22 units, well below the configured 100-unit floor.
- Root-cause hypothesis: a combination of the supplier delivery lag above and the velocity drift has drained the buffer faster than the inbound pipeline can refill it.
- Next three steps: (1) page the on-call owner with the safety-stock breach flagged as CRITICAL, (2) hold any new outbound allocations to the SKU until the buffer recovers above floor, and (3) escalate the combined supplier lag + velocity drift upstream so the buffer breach does not recur next cycle.
See this on your inventory stream
The pilot connects one of your inventory streams, learns its baseline, and turns the same drafted-action-plan step above into a live ticket your team reviews in-channel.