> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vortexiq.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Stock-Out Burst (multiple SKUs OOS in <1h), WooCommerce

> Stock-Out Burst (multiple SKUs OOS in <1h). Unusual stock-out velocity, viral SKU, fulfilment glitch, or stock-sync plugin failure. Investigate before ad spend wastes. How to read it, why it matters, and how to act on it.

**Metrics type:** [Key Metrics](/nerve-centre/overview#metrics-types-explained)  •  **Category:** [Ecommerce Platform](/nerve-centre/connectors#connectors-by-type)

> Unusual stock-out velocity, viral SKU, fulfilment glitch, or stock-sync plugin failure. Investigate before ad spend wastes.

## At a glance

> Real-time alert that fires when a burst of WooCommerce SKUs flip to out-of-stock within an hour. Flags viral demand, fulfilment glitches, or stock-sync plugin failures before ad spend wastes.

|                                      |                                                                                                                                                                                                                                   |
| ------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **What it counts**                   | `COUNT(products WHERE stock_status changed to 'outofstock' in last 1h)`. Fires when count >5 AND >2σ above the 7D baseline of hourly OOS flips.                                                                                   |
| **REST API endpoint**                | `GET /wp-json/wc/v3/products?stock_status=outofstock&modified_after=...`. Polled every 10 minutes.                                                                                                                                |
| **VAT / tax / shipping / discounts** | Not applicable, inventory state.                                                                                                                                                                                                  |
| **Status filter**                    | Only `stock_status` transition from `instock` (or `onbackorder`) to `outofstock`.                                                                                                                                                 |
| **Variations**                       | Variations count separately. A parent product losing 5 size/colour combos in one hour can trip the alert on its own.                                                                                                              |
| **Currency**                         | Currency-agnostic.                                                                                                                                                                                                                |
| **Channels / sources**               | Inventory is global across channels. Marketplace plugin pools may not match this card.                                                                                                                                            |
| **Self-hosted vs managed-Woo**       | Self-hosted with object-cache misconfiguration can produce a false-spike pattern if cache flushes (5 SKUs become "newly OOS" because the cache caught up, not because they actually flipped). Managed-Woo with Redis is steadier. |
| **Time window**                      | `RT` (rolling-1h, polled every 10 min)                                                                                                                                                                                            |
| **Alert trigger**                    | >5 SKUs flipped to OOS in 1h AND >2σ vs 7D baseline; sentiment\_key `out_of_stock_count`                                                                                                                                          |
| **Roles**                            | owner, operations, marketing                                                                                                                                                                                                      |

## Calculation

Calculated automatically from your WooCommerce data. See the At a glance summary above for what the metric tracks and the worked example below for a typical reading.

## Worked example

A US homewares brand on managed-Woo, baseline \~1.2 OOS flips per hour. Wednesday 10 Apr 26, 16:00-17:00 UTC.

| Hour bucket | OOS flips | Cause       |
| ----------- | --------- | ----------- |
| 14:00-14:59 | 1         | Normal      |
| 15:00-15:59 | 2         | Normal      |
| 16:00-16:59 | 18        | Alert fires |

Three observations:

1. **Cause was a viral TikTok mention.** A creator featured the brand's "ceramic mushroom mug" line at 15:50 UTC; traffic spiked 8x and 12 specific mug variations sold through their stock within 50 minutes. The remaining 6 OOS flips were tangential bestsellers caught up in the surge.
2. **Self-hosted Woo would have looked similar but for a different reason.** On flaky shared hosting, the same alert can fire when an object-cache flush refreshes stock state for \~50 products at once. The 2σ baseline filter usually prevents this, but persistent alerts after host events warrant a cache audit.
3. **Plugin-induced data shape variance: ATUM Inventory Management.** ATUM stores stock in custom tables and writes to `_stock_status` on a delay (every 5 minutes by default). On ATUM-using stores the alert can lag by up to 5 minutes, which means viral demand may have already wasted ad budget before the alert fires.

## Sibling cards merchants should reference together

| Card                                                                           | Why pair it with this alert                                        |
| ------------------------------------------------------------------------------ | ------------------------------------------------------------------ |
| [WC Out of Stock](/nerve-centre/kpi-cards/woocommerce/out-of-stock-products)   | The cumulative count behind this alert.                            |
| [WC Low Stock](/nerve-centre/kpi-cards/woocommerce/low-stock-products)         | The leading indicator, often spikes 1-2 hours before this alert.   |
| [WC Ads on OOS](/nerve-centre/kpi-cards/woocommerce/ad-spend-on-oos-products)  | The action card: pause ad spend on the freshly OOS SKUs.           |
| [WC Top Products](/nerve-centre/kpi-cards/woocommerce/top-products-by-revenue) | Identifies whether the OOS spike hit revenue-leaders or long-tail. |
| [BC Alert OOS Spike](/nerve-centre/kpi-cards/bigcommerce/oos-spike-alert)      | Cross-platform peer for agencies.                                  |

## Reconciling against the vendor's own dashboard

**Where to look in WooCommerce Admin:**

[WP Admin → WooCommerce → Reports → Stock → Out of stock](/wp-admin/admin.php?page=wc-reports\&tab=stock\&report=out_of_stock) shows the cumulative OOS list. WC does not expose hourly flip velocity; this card is the only Vortex IQ view of that.

**Why our alert may fire when the merchant sees nothing:**

| Reason                                                                                                        | Direction                       |
| ------------------------------------------------------------------------------------------------------------- | ------------------------------- |
| **Time-zone**. Alert evaluated UTC; WP Admin uses WP-site timezone. Hour buckets may not align.               | Both report same events         |
| **Self-hosted server uptime**. Cache flush after a brief outage can backfill OOS state and look like a spike. | Self-resolves                   |
| **Plugin-version compatibility**. ATUM, Stock Synchronisation plugins update on a delay.                      | Alert may lag by up to 5-10 min |
| **Currency plugin behaviour**. Not relevant for inventory.                                                    | n/a                             |

**Cross-connector reconciliation:**

| Card                                                                                         | Expected relationship                                                                              |
| -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
| [`google_ads.gads_disapproved_products`](/nerve-centre/google_ads/gads_disapproved_products) | OOS spike on Woo => disapproval spike on Merchant Center within 24-48 hours unless ads are paused. |

***

<details>
  <summary><em>Same-metric documentation cross-reference</em></summary>

  * [`bigcommerce.bc_alert_oos_spike`](/nerve-centre/kpi-cards/bigcommerce/oos-spike-alert)
  * [`shopify.inventory_alerts`](/nerve-centre/kpi-cards/shopify/products-with-zero-negative-stock)
</details>

## Known limitations / merchant FAQs

**Self-hosted vs managed-Woo, false-alert risk?**
Self-hosted with object-cache misconfiguration produces occasional false spikes (cache flush backfills OOS state). Managed-Woo with Redis is steadier.

**Status-filter selection, why only `outofstock`?**
Backorder-allowed flips are not really stockouts (the customer can still buy). Including them would noise the alert.

**Refund-object accounting?**
Refunds restore stock if `_restock_refunded_items` is enabled. A bulk refund could theoretically push SKUs back to `instock`, never trips this alert.

**Plugin-induced data shape variance?**
ATUM Inventory Management updates on a 5-min delay; alert can lag. Stock Synchronisation across multiple Woo installs can produce alert clusters when sync runs. WooCommerce Subscriptions products sometimes track stock and trip alerts on renewal cycles.

**Multi-currency, does it affect this alert?**
No, inventory is currency-independent.

**Why does Woo and Stripe disagree?**
Stripe does not track inventory; the metrics are unrelated.

**Today is jumpy, why?**
Spike alerts are inherently event-driven. The 2σ baseline filter prevents most false positives; rolling-1h evaluation auto-clears once velocity returns to baseline.

**Sync-lag from self-hosted server slowness?**
Indexer running every 10 min means OOS state can be up to 10 min stale. After host recovery, watch for a delayed alert burst as catch-up reflects intervening events.

**My WP Admin shows fewer OOS flips, debug?**

1. Confirm timezone alignment.
2. Refresh WP Admin (purge object cache).
3. Check whether a custom inventory plugin overrides `_stock_status`.
4. If the gap persists, contact support.

***

### Tracked live in Vortex IQ Nerve Centre

*OOS Spike Alert* is one of hundreds of KPI pulses Vortex IQ tracks across WooCommerce and 70+ other ecommerce connectors. Nerve Centre runs the detection layer; Vortex Mind investigates the cause when something moves; Ask Viq lets you interrogate any number in plain English.

[Start for free](https://app.vortexiq.ai/login) or [book a demo](https://www.vortexiq.ai/contact-us) to see this metric running on your own data.
