Skip to main content
Card class: HeroCategory: Ecommerce Platform
Listings showing on a channel with stock_level=0, direct revenue blocker per channel.

At a glance

The count of catalogue listings on each BigCommerce channel where inventoryLevel = 0 and availability = 'available'. These are listings the customer can still see but cannot buy, a direct revenue blocker that costs the merchant attention every minute it persists.
What it countsCOUNT(products WHERE inventoryLevel = 0 AND availability != 'disabled') GROUP BY channel_id. Per-channel because OOS impact differs by channel: a hero SKU OOS on Stencil web blocks the storefront’s primary funnel; the same SKU OOS on a marginal Facebook Shop is less urgent.
VAT / tax treatmentn/a, inventory metric.
Shippingn/a.
Discountsn/a.
Refundsn/a, this is an inventory snapshot.
Currencyn/a, count metric.
Channels / sourcesPer-channel breakdown is the entire point of the card. Each channel_id shows its own OOS count and the dollar-velocity weight (revenue per day this SKU usually generates on this channel).
Incomplete / Declined ordersn/a.
OOS definition gotchaWe count listings where inventoryLevel = 0 but availability is not disabled. A merchant who toggles availability = disabled properly when stock runs out is correctly hidden from this count; merchants who leave OOS items live with availability = available are surfaced here. The latter is the failure mode, customers see the listing, click through, find it unavailable, and bounce.
Velocity-weighted rankingWithin each channel, OOS listings are sorted by historical revenue velocity (30-day average revenue per day pre-OOS). The top OOS by velocity is the most urgent to restock or hide; the long tail is less material.
Time windowRT (real-time, refreshed each catalogue sync; typically every 15-30 minutes)
Alert trigger>0, any positive count fires the alert. The Vortex IQ Nerve Centre treats OOS-on-live-listing as always-actionable, OOS items should be hidden, restocked, or marked as preorder, never left in zombie state.
Sentiment keyout_of_stock_count
Rolesowner, operations, marketing

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.
channel_idChannelOOS countTop OOS SKU (by velocity)Daily lost revenue
1Stencil web14”Linen 4-piece bedding set, King” ($340/day)~$1,180
1019847Amazon Channel Manager6”Towel set 6pk, ivory” ($180/day)~$420
1019850Facebook Shop2”Throw cushion 18inch” ($35/day)~$50
1020114POS Terminal A0n/an/a
Store total22~$1,650/day
What’s interesting:
  1. **1,650/dayofrevenueblockedbyOOS,1,650/day of revenue blocked by OOS**, 50k/month, 600k/yearifthesituationpersists.ThesinglehighestleverageoperationalfixonmostBCstoresis"gohideyourOOSlistings".Itcosts15minutes;itgenerates600k/year if the situation persists. **The single highest-leverage operational fix on most BC stores is "go hide your OOS listings".** It costs 15 minutes; it generates 1k+/day back.
  2. Web carries the most urgent OOS. A bedding set at 340/dayisaheroSKU;everyhouritslistedbutunbuyablecosts 340/day is a hero SKU; every hour it's listed-but-unbuyable costs ~14. Customers who came specifically for this SKU bounce and don’t return.
  3. Amazon OOS is structurally different. Amazon penalises sellers for OOS listings (the listing’s BSR drops, the buy box may be lost to a competitor seller). The cost is not just lost direct revenue but reduced future ranking. Set Channel Manager → Amazon to auto-hide OOS items; do not leave them visible.
  4. Facebook Shop OOS is low-urgency. Two items at low velocity, fix during the next merchandising review. Don’t drop everything for it.
  5. POS Terminal A shows zero OOS because POS-only catalogue is typically smaller and tightly managed by the in-store team. Healthy pattern.
Action priority order:
  1. Hide / disable all OOS items on Stencil web (14 listings, biggest revenue blockers). Most BC themes have a one-click “hide if inventoryLevel = 0” rule, ensure it’s enabled.
  2. Restock the top 3 by velocity, the bedding set, top Amazon SKU, and any other items above $100/day velocity.
  3. Consider preorder / backorder tagging for items with known restock dates, customers will commit if they see “ships 12 May 26” rather than just “out of stock”.
  4. Set per-channel auto-hide rules in Channel Manager so this card always reads zero on marketplaces (Amazon and eBay penalise sellers harshly for OOS-but-listed).
  5. Audit your inventory sync if OOS counts are persistently high, the underlying issue is usually a sync gap between BC and your warehouse / ERP.

Sibling cards merchants should reference together

CardWhy pair it with OOS Listings per Channel
Inventory AlertsThe store-wide inventory headline. This card disaggregates by channel.
BC Stock vs SalesThe velocity-weighted view. Tells you which OOS items are urgent (high velocity) and which are tail-end (can wait).
BC Inventory DistributionThe healthy-stock baseline. Lets you see whether OOS is concentrated or distributed across the catalogue.
BC Alert OOS SpikeThe trend alert. Fires when OOS count grows quickly, often signalling a supplier outage.
BC Top SKUsCross-reference: if your top-selling SKUs appear in this card, that’s a five-alarm event.
BC Top SKUs RevenueThe revenue-impact view. Multiply OOS days by daily velocity for the lost-revenue estimate.
BC Channel Revenue MixContext for prioritisation, OOS on a 70%-of-revenue channel matters more than OOS on a 1% channel.
BC XC Ads on OOSThe cross-connector overlap with Google Ads, paying to drive traffic to OOS items is double-burn.

Reconciling against the vendor’s own dashboard

Where to look in BigCommerce Control Panel: Products → View, filter by Inventory level = 0, exclude items with Visibility = Disabled. The list should match the store-wide OOS count to within 1-2 (boundary timing). For per-channel breakdown, Channel Manager → per-channel listings shows OOS at the channel-listing layer. Other BC views that look adjacent:
  • Catalogue → Categories: groups products into categories, doesn’t surface OOS directly.
  • Settings → Inventory: configures inventory tracking; doesn’t surface counts.
  • Reports → Inventory snapshot (Plus / Pro): partial overlap, runs on a daily cadence rather than real-time.
Why our number may legitimately differ from BC Catalogue:
ReasonDirection
Variant-vs-product semantics. BC supports product-level and variant-level inventory; we count at the variant level for products with variants. BC’s product list shows “1 product” for a multi-variant item even if 3 of 5 variants are OOS.Vortex IQ HIGHER count than naive product-level filter
Channel publication state. A product can exist in BC catalogue but not be published to a specific channel. We count only published listings per channel.Vortex IQ LOWER count per channel than total catalogue OOS
Sync lag. Inventory updates from warehouse / ERP take 5-30 minutes to propagate to OpenSearch. Recent stock-ins may still show as OOS.Vortex IQ slightly LAGS BC for short windows
Disabled / Visibility = false. We exclude availability = disabled. Some merchants use this state to “soft-hide” OOS items.Vortex IQ LOWER count if merchant uses disable correctly
Backorder / Preorder. Items configured as preorder may carry inventoryLevel = 0 but should not count as urgent OOS. We surface them with a flag; some merchants want to exclude them entirely.Mixed
Cross-connector reconciliation (when ad / marketplace integrations are connected):
CardExpected relationshipWhat causes legitimate divergence
google_ads.ga_oos_itemsGoogle Ads merchant-feed OOS items should overlap with the web channel_id = 1 slice of this cardGoogle Ads runs its own inventory feed; sync lag can cause mismatches.
amazon_sp.amazon_oos_listingsAmazon SP-API exposes inventory-level data per listing; should match the Amazon channel sliceAmazon’s “currently unavailable” includes more states than just OOS (e.g. account-level suppression).
google_analytics.ga_no_inventory_clicksGA4 ecommerce events fire view_item on OOS items; cross-checking shows wasted-traffic dollarsGA4 doesn’t differentiate OOS view from in-stock view by default; requires custom event configuration.
The per-channel OOS view is BC-aligned with similar cards on Shopify (per salesChannelIds) and Adobe Commerce (per website_id); the field shapes differ but the merchant-facing semantics are equivalent.

Known limitations / merchant FAQs

Why does the alert trigger fire on >0? Even one OOS item? Because OOS-on-live-listing is always actionable. The right state for a stocked-out item is either (a) hidden, (b) marked preorder, or (c) restocked. Leaving items live-but-unbuyable wastes traffic, hurts SEO ranking signals, and degrades customer experience. The alert is a nudge, not an emergency, but it should always result in either resolution or an explicit “yes, leave it visible” decision, never a “we’ll deal with it later”. My OOS list keeps showing the same items, what’s wrong? Either (a) you don’t have an auto-hide rule configured on your theme, OR (b) your inventory sync to BC is broken, the warehouse says “we have stock” but BC still reads zero. Check the BC Inventory Distribution view to see whether the count is real OOS or a sync artefact. Why does Amazon penalise me for OOS more than other channels? Amazon’s algorithm treats OOS as a buyer-experience failure. The listing’s BSR (Best Sellers Rank) drops; the buy box may move to competitor sellers; the product can be temporarily delisted from search. For Amazon, OOS-but-listed is materially worse than OOS-but-hidden. Set Channel Manager → Amazon to auto-hide on OOS, full stop. My theme auto-hides OOS items, but they still show up in this card? The auto-hide rule on most BC themes only hides items from category browse pages and search; the direct product URL still loads. We count any product where inventoryLevel = 0 regardless of theme-side hiding. To fully hide an OOS item, set availability = disabled in the BC admin (Channel Manager will then exclude it from listings on every channel). Should I leave items as preorder instead of hiding? Yes for items with known restock dates within 14-21 days. Customers commit to preorder at meaningful rates (often 50-80% of in-stock conversion); for delayed-restock items it’s a way to capture demand instead of losing it. For items with uncertain restock dates, hide rather than preorder, broken promises hurt brand more than missed orders. Why is my POS Terminal A showing zero OOS? POS catalogues are typically smaller and tightly managed; inventory is checked physically at the till. POS systems also commonly use a “decrement on sale” model that keeps inventory more accurate than warehouse-fed web channels. Zero OOS on POS is the healthy norm. My Channel Manager OOS count is much higher than BC catalogue, why? Channel Manager listings can drift out of sync with BC catalogue. Common causes: (1) marketplace-specific listing variants that don’t exist in BC catalogue (Amazon-only variant SKUs, Walmart-specific bundles); (2) Channel Manager queue backlog after bulk inventory updates; (3) marketplace approval delays where BC pushed an availability change but the marketplace hasn’t ack’d yet. Run Channel Manager → Activity log to see sync state. The lost-revenue figure looks high, is it accurate? It’s an estimate based on the SKU’s pre-OOS 30-day average daily revenue. Treat it as ±30% accurate, the actual lost revenue depends on whether customers substitute to a similar in-stock item, switch to a competitor, or just walk away. For most homewares / fashion stores ~30-50% of would-be OOS demand substitutes; the rest is genuine lost revenue. Should I notify customers when OOS items come back? Yes, restock-notify lists convert at 12-25% on average. BC’s native back-in-stock email (Plus / Pro plans) or third-party apps like Klaviyo back-in-stock flow capture customer emails on OOS pages and email when restocked. This is the highest-ROI single action on a high-OOS catalogue. My multi-warehouse store shows OOS even though stock exists in another warehouse, why? BC’s inventory model historically aggregated across warehouses; Multi-Location Inventory (MLI) in newer BC versions tracks per-location stock. We follow whatever BC indexes; if your channel is configured to fulfill from a specific location and that location is at zero, the listing shows OOS even if other locations have stock. Configure your channels with multi-location fulfilment fallback to avoid this.

Tracked live in Vortex IQ Nerve Centre

OOS Listings per Channel 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.