Skip to main content
Card class: HeroCategory: Ecommerce Platform

At a glance

Number of active products currently with zero or negative inventory. Every out-of-stock product is a missed sale, an SEO impression with no payoff, and an ad click that pays the merchant nothing. The card surfaces the OOS pool size at any moment so the merchant can prioritise reordering, supplier escalation, or pulling ad spend off the affected SKUs. OOS on a long-tail product is recoverable; OOS on a bestseller during a peak window is unrecoverable revenue lost permanently.
What it countsThe count of active products with inventory_level <= 0 (zero or negative) at the time of the most recent ingestion. Includes products configured to allow back-orders unless the profile filters them out.
Sample typeBackend API data from BigCommerce inventory, refreshed on the standard data refresh.
Why OOS count mattersOOS represents three compounding revenue leaks: (1) direct missed sales from shoppers landing on the OOS PDP and bouncing; (2) SEO drag as Google sees product pages with no available inventory and downranks them; (3) ad spend waste as paid traffic lands on OOS PDPs and converts at near-zero. A single OOS bestseller during a peak demand window can cost £1,000s per day in foregone revenue plus £100s in wasted ad spend.
Reading the value(1) 0: ideal; entire active catalogue available. (2) 1-5: typical operational state for any non-trivial catalogue; address bestsellers urgently, long tail at normal cadence. (3) Above 5: alert state; either a supplier issue, demand surge, or systemic restocking process gap. (4) Cross-reference bc_revenue_by_brand and bc_revenue_by_category to identify whether the OOS items are revenue-critical. (5) Pair with bc_low_stock (about-to-OOS) for early warning.
Currencyabsolute count + revenue-at-risk estimate.
Time windowsnapshot (current state).
Alert triggerout_of_stock_count > 0 (BAD threshold at 5).
Sentiment keyout_of_stock_count (LOWER_IS_BETTER in SentimentClassifier; GOOD = 0, BAD ≥ 5).
Rolesowner, operations, merchandising

Calculation

out_of_stock_count = COUNT(products WHERE
                       inventory_level <= 0
                       AND status = 'active'
                       AND inventory_tracking != 'none')
Note: products with inventory_tracking = 'none' are not subject to OOS counting (they are infinitely available by configuration). Variant-level inventory: a product is OOS only if all variants are OOS.

Worked example

A UK-based BigCommerce home-and-garden store, OOS count reading on Wednesday 15 May 26.
MetricValueStatus
Total active tracked products552,448-
Products with inventory_level <= 010,000-
OOS count10,000Alert
Bestseller OOS (top 100 by 90D revenue)12Critical
Long-tail OOS9,988Triage
Estimated weekly revenue at risk (bestsellers)£8,400-
Estimated weekly ad spend waste (paid traffic to OOS PDPs)£1,200-
OOS count: 10,000 (well above the BAD threshold of 5). Card flags as Action Needed in red. What the inventory health reading is telling us:
  1. The headline 10,000 OOS is a function of a very large catalogue. A 552K catalogue with 10K OOS is a 1.8% OOS rate, which is operationally typical. The percentage matters less than the revenue concentration: if the 12 bestseller OOS items represent £100K of monthly revenue, that’s the urgent fix.
  2. Triage by revenue, not by count.
    • Tier A (top 100 by 90D revenue, 12 OOS): urgent. Each day OOS is £700 lost on average per item (£8,400/day across the cohort). Reorder same-day; if supplier lead time exceeds 7 days, pull ad spend off these PDPs immediately.
    • Tier B (top 1,000, additional ~80 OOS): high priority. Reorder this week; consider substitute-product cross-sell on the OOS PDP.
    • Tier C (long tail, 9,900+ OOS): low priority. Auto-restock from supplier feed if integration exists; otherwise schedule for monthly review.
  3. The ad-spend waste angle. Of the 12 bestseller OOS items, 7 likely have active Google Shopping or Meta ads pointing at them. Each click on an ad to an OOS PDP costs the merchant the CPC and earns nothing. Auto-pause logic for OOS PDPs (via Vortex Mind actions or manually via Google Ads inventory feed sync) saves £1,200/week in ad spend at this scale.
  4. The SEO angle. Google demotes product pages that show “out of stock” repeatedly; ranking recovery after restock takes 1-3 weeks. Long-OOS products lose organic position permanently unless explicitly canonicalised to a parent or alternative. For products OOS more than 30 days, consider hiding from the catalogue or 301-redirecting to an alternative.
  5. Recommended response, in priority order:
    • Hour 1: Identify Tier A OOS list. Pause ads on those PDPs.
    • Day 1: Reorder Tier A from suppliers; escalate if lead time is unusable.
    • Day 1-2: Add “notify-me” capture forms on Tier A PDPs to retain demand.
    • Day 3-7: Add substitute-product cross-sell on Tier A PDPs.
    • Week 2: Audit Tier B; reorder.
    • Week 4: Long-tail review; consider hiding products OOS > 30 days.
    • Result: Tier A bestsellers restocked; bestseller OOS count drops from 12 to 0-2; weekly revenue at risk drops below £1K.
  6. Cross-reference cards:
    • bc_low_stock, products at risk of going OOS in the next 7-14 days. Use as the leading indicator.
    • bc_revenue_by_category, confirms which OOS categories are revenue-critical.
    • bc_xc_ads_on_oos, explicitly identifies ad spend going to OOS PDPs.
    • gads_wasted_spend, broader ad waste view.
The diagnostic flow:
  1. Read OOS count. Triage by revenue tier, not by count.
  2. Identify Tier A bestseller OOS. Pause ads, reorder same-day.
  3. Add notify-me + substitute cross-sell on Tier A PDPs.
  4. Audit and reorder Tier B next week.
  5. Review long-tail monthly; hide or redirect products OOS > 30 days.
Rapid-response playbook:
Time horizonAction
First 1 hourIdentify Tier A OOS. Pause ads.
First dayReorder Tier A; deploy notify-me forms.
First weekReorder Tier B; long-tail review scheduled.
Day 14Confirm Tier A restocked.
Day 30Long-tail OOS hidden or canonicalised.

Sibling cards merchants should reference together

CardWhy merchants reach for it
bc_low_stockAbout-to-OOS products; leading indicator.
bc_revenue_by_categoryCategory revenue concentration; identifies critical OOS.
bc_xc_ads_on_oosAd spend pointing at OOS PDPs.
gads_wasted_spendTotal ad waste view.
bc_inventory_distInventory distribution across catalogue.
unfulfilled_countOrder backlog; OOS contributes to fulfilment delays.

Reconciling against the vendor’s own dashboard

Where to look in BC: Products → Product list filtered to inventory ≤ 0; Inventory → Stock Levels. Why our number may differ:
ReasonDirectionWhat to do
Inventory tracking setting. BC distinguishes products with tracking on vs off; Vortex IQ excludes tracking-off products.Vortex IQ lowerConfirm tracking-on filter.
Variant-level vs product-level. A product with 5 variants where 4 are OOS is product-level not OOS.Match to filterDecide on policy.
Pre-order / back-order. BC shows OOS even for back-orderable products; Vortex IQ may exclude.VariableCheck profile setting.
Cross-connector: shopify.out_of_stock_count, adobe_commerce.out_of_stock_count for cross-platform parity. Quick rule: when disputes arise, confirm tracking-on filter and back-order configuration first.

Known limitations / merchant FAQs

Q: Our OOS count is 10,000. We can’t reorder 10,000 products. How do we prioritise? By revenue contribution, not by count. The top 100-1,000 OOS products typically represent 80% of foregone revenue. Address those first; treat the long tail as a monthly hygiene task or auto-restock via supplier feed. Q: Should I delete OOS products? Generally no, deleting breaks SEO equity, customer wishlist links, and email links. Better options: (a) keep visible with “notify when back” capture, (b) hide from catalogue (preserves URL but excludes from search/listings), (c) 301-redirect to a substitute or parent collection if discontinued permanently. Q: We allow back-orders. Should those count as OOS? Configurable per profile. Default behaviour: a product with is_back_orderable = true is considered “in stock” even at zero inventory because the customer can still buy it. Override to count back-orderable products as OOS if your business does not actually fulfil back-orders quickly. Q: Variant-level inventory, when does the parent product count as OOS? Only when all variants are at zero inventory. A shirt with 5 sizes where size M is OOS but other sizes have stock is in-stock at the product level. Variant-level OOS is tracked separately (cross-reference variant-level inventory cards if the merchant tracks at that grain). Q: We restocked 50 products yesterday but the OOS count hasn’t moved. Why? The card refreshes on the standard data refresh (typically 30-60 minutes). Force a manual refresh from the dashboard or wait one cycle. If it still shows the old count after 2 hours, raise a sync issue. Q: How does this card differ from bc_low_stock? bc_low_stock is the leading indicator, products approaching zero inventory based on burn rate (e.g., expected to OOS in 7 days at current velocity). This card is the trailing indicator, products already at zero. Use low-stock to prevent the OOS event; use this card to remediate after. Q: Some of our OOS products have been OOS for months. Should we keep them? Audit monthly. If a product is OOS more than 30 days with no restock plan, options are: (1) hide from catalogue, (2) 301-redirect to a substitute, (3) mark discontinued with a “we no longer stock this” page. Long-OOS visible products erode site trust and waste crawl budget. Q: We have 0 OOS but our category pages show “out of stock” filters as empty. Is something off? That’s likely a filter UI display, not actual OOS. The card uses inventory_level directly from the API; the storefront filter may include hidden, draft, or no-tracking products. Cross-check the BC product list directly.

Tracked live in Vortex IQ Nerve Centre

Out of Stock Products is one of hundreds of KPI pulses Vortex IQ tracks across BigCommerce 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 or book a demo to see this metric running on your own data.