At a glance
The store-wide count of BigCommerce catalogue products with zero or negative stock that are still publicly listed. The hero-tier inventory-hygiene metric: any positive number is direct revenue blocker, fix-or-hide.
| What it counts | COUNT(products WHERE inventoryLevel <= 0 AND availability != 'disabled'). Both zero-stock items and “negative-stock” items (over-sold, BC’s inventory went below zero before sync caught up) are counted. |
| VAT / tax treatment | n/a, inventory metric. |
| Shipping | n/a. |
| Discounts | n/a. |
| Refunds | n/a. |
| Cancelled orders | n/a. |
| Currency | n/a (count metric). |
| Channels / sources | Store-wide store catalogue. The per-channel breakdown lives at BC Channel OOS per Channel. |
Incomplete / Declined orders | n/a. |
| Negative stock quirk | A product can show inventoryLevel = -3 if BC sold 3 units after stock hit zero (over-selling tolerance). This is a fulfilment-emergency signal, customers are buying items that won’t ship. Negative stock is more urgent than zero stock. |
Definition matches bc_channel_oos_per_channel | The two cards count the same items; this card is the store-wide headline, the channel card is the per-channel slice. |
| Time window | RT (real-time, refreshed each catalogue sync) |
| Alert trigger | >0 (any OOS SKU still listed), fires on any positive count. Always actionable. |
| Sentiment key | out_of_stock_count |
| Roles | owner, operations |
Calculation
Calculated automatically from your BigCommerce 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 BigCommerce Enterprise. Snapshot at 09:00 UTC on 13 Apr 26. Total catalogue: 1,840 products.| Status | Count | Share |
|---|---|---|
In stock (inventoryLevel > 0) | 1,798 | 97.7% |
| Zero stock, listed (this card counts) | 22 | 1.2% |
| Negative stock, listed (over-sold; this card also counts) | 3 | 0.2% |
| Disabled / hidden | 17 | 0.9% |
| Inventory Alerts (this card) | 25 | 1.4% |
- 1.4% of catalogue is unbuyable but visible. Healthy stores sit 0-2%; above 5% suggests either a sync problem or a merchandiser not actively managing OOS hygiene. The 25-item count is workable, an hour of merchandiser time can resolve.
- 3 negative-stock items are the urgent priority. These are over-sold, customers placed orders that won’t ship. Each negative-stock entry needs immediate action: either reach out to refund the customer, or expedite restock. Negative stock is a customer-experience emergency, not just a hygiene issue.
- The 22 zero-stock items split by velocity. High-velocity zero-stock items are top-priority restocks; low-velocity items can be hidden until restock. Use BC Stock vs Sales for the velocity ranking.
- The 17 disabled items don’t count toward the alert. Correct hygiene. Merchants who use
availability = disabledproperly are punished by neither this card nor the per-channel OOS card.
- Investigate the 3 negative-stock items immediately. Customer-service contact list, refund-or-expedite decisions per customer.
- Hide low-velocity zero-stock items (
availability = disabled). - Restock high-velocity zero-stock items (use BC Top SKUs to find which).
- Audit inventory sync if the count is persistently above 5%, the sync gap is a structural issue, not just a merchandising oversight.
Sibling cards merchants should reference together
| Card | Why pair it with Inventory Alerts |
|---|---|
| BC Channel OOS per Channel | The per-channel breakdown of the same population. |
| BC Stock vs Sales | Velocity-weighted view; tells you which OOS items are urgent. |
| BC Top SKUs | Cross-reference: top-selling SKUs in this list = five-alarm event. |
| BC Top SKUs Revenue | Revenue impact view. |
| BC Inventory Distribution | The healthy-stock baseline; this card is the unhealthy slice. |
| BC XC Ads on OOS | Compounds the cost: paying ads to drive traffic to OOS items. |
| BC Alert OOS Spike | Trend alert; fires when OOS count grows quickly (supplier outage). |
| BC Refunded Products | Sometimes correlates: items that customers couldn’t get fulfilled and refunded. |
Reconciling against the vendor’s own dashboard
Where to look in BigCommerce Control Panel: Products → View, filter by Inventory level = 0, exclude Visibility = Disabled. The result count should match this card to within 1-2 items. Other BC views:- Settings → Inventory: configures inventory tracking; doesn’t surface counts.
- Catalogue → Categories: groups products into categories.
- Reports → Inventory snapshot (Plus / Pro): partial overlap, daily cadence.
| Reason | Direction |
|---|---|
| Variant-level vs product-level. We count at variant level for products with variants. BC’s product list shows “1 product” for a multi-variant item even if some variants are OOS. | Vortex IQ HIGHER than naive product-level filter |
| Sync lag. Inventory updates take 5-30 minutes to propagate. Recent stock-ins may still show as OOS. | Vortex IQ LAGS BC for short windows |
Disabled exclusion. We exclude availability = disabled; BC’s catalogue filter may include them. | Vortex IQ LOWER if merchant uses disable correctly |
| Negative stock. We count negative stock; BC’s filter may not. | Vortex IQ HIGHER if over-sold items exist |
| Card | Expected relationship | Notes |
|---|---|---|
google_ads.ga_oos_items | Google Shopping merchant-feed OOS items overlap with this card. | Sync lag drives small differences. |
amazon_sp.amazon_oos_listings | Amazon-side OOS state. | Channel Manager sync gaps cause discrepancies. |
Known limitations / merchant FAQs
Why does the alert fire on >0? Because OOS-but-listed is always actionable. The right state for a stocked-out item is hidden, preorder, or restocked, never visible-but-unbuyable. Even one OOS-and-visible item is worth 30 seconds of merchandiser attention. What’s negative stock and how does it happen? BC supports over-selling tolerance: a product can ship beyond its on-hand count if the merchant configured the buffer. Negative stock means BC sold N more units than it had; if your warehouse can fulfil, no problem; if it can’t, you have customers waiting on un-shippable orders. Negative stock + cannot-fulfil is a customer-service emergency. Why is my count climbing every week? Three usual causes: (1) Supplier outage, multiple SKUs going OOS simultaneously suggests one supplier stopped delivering. (2) Inventory sync drift, the warehouse-to-BC integration is dropping updates; check sync logs. (3) Merchandiser disengagement, no one’s actively hiding OOS items. Each has a different fix. Should I auto-hide OOS items? For most stores, yes. Most BC themes support anif inventoryLevel > 0 condition; setting it once means OOS items disappear automatically from category and search pages. Direct PDP URLs may still load, but the customer journey is significantly cleaner. Do this once and it’s done.
Should I keep highly-popular OOS items visible to capture restock-notify signups?
Yes for items with strong restock-notify intent. The Klaviyo back-in-stock flow converts at 12-25% when the item returns; capturing emails on a popular OOS PDP is genuinely valuable. Use preorder mode where possible, and fall back to “notify me” for indefinite-restock items.
Why doesn’t BC show a single ‘OOS dashboard’ natively?
BC’s catalogue UI is built around individual SKUs, not store-wide hygiene reports. Plus / Pro plans have partial inventory reports, but the active “what’s broken right now” view doesn’t exist natively. This card fills that gap.
My count is 0, am I done?
For inventory hygiene specifically, yes. But pair with BC Channel OOS per Channel (per-channel breakdown often reveals issues this card doesn’t), BC Inventory Distribution (low-but-not-zero stock patterns), and BC Stock vs Sales (velocity-weighted view of which OOS items hurt most). Zero alert count is necessary but not sufficient for healthy inventory.
Multi-warehouse stores: does this card respect MLI (Multi-Location Inventory)?
Yes; we count items where TOTAL inventory across all locations is zero. Items where one location has zero but another has stock don’t appear here, that’s a fulfilment-routing question, not an OOS question.
Why does the card sometimes briefly spike then resolve?
Inventory sync timing. A stock-in event takes 5-30 minutes to propagate from warehouse to BC; during that window the items show as zero. The card’s RT refresh catches the transient state and resolves at the next sync.
Should this number ever be non-zero by design?
Almost never. Sustained non-zero counts are merchant-disengagement signal. The exceptions: (1) Brief windows during stock-in events. (2) Items deliberately listed for restock-notify capture. (3) Pre-order items with inventoryLevel = 0 but availability = preorder (we exclude these correctly). Outside these, zero is the right operating state.