Skip to main content
Card class: Non-HeroCategory: Ecommerce Platform

At a glance

Distribution histogram of stock levels across the catalogue: how many SKUs have 0 stock, how many have 1-5, how many have 6-20, etc. The healthy-stock baseline that contextualises every OOS / inventory alert. A store with 5,000 SKUs and 200 OOS reads differently from a store with 100 SKUs and 200 OOS; the histogram tells you which scenario you’re in. Pairs naturally with BC’s MLI to surface per-warehouse stock distribution.
What it countsBuckets of inventoryLevel across all SKUs in the catalogue. Default buckets: 0, 1-5, 6-20, 21-100, 100+. Counts SKUs in each bucket. Optionally filterable by category, brand, or channel allocation.
API endpointGET /v3/catalog/products and GET /v3/inventory/locations/{id}/items (when MLI is active). The OpenSearch products index materialises per-SKU inventory level per location.
VAT / tax treatmentn/a, inventory metric.
Shippingn/a.
Discountsn/a.
Refundsn/a.
Cancelled ordersn/a.
Currencyn/a.
Channel coverageAll catalogued SKUs, regardless of channel availability. For per-channel inventory use BC Channel Inventory Split.
B2B Edition behaviourB2B-only SKUs (case-pack quantities) appear normally; their inventory levels are typically much higher than DTC SKUs (warehouses stock cases). The histogram often shows a bimodal distribution on B2B-active stores: small DTC inventory for retail SKUs and large B2B inventory for case packs.
Multi-Location InventoryWhen MLI is enabled, per-location distributions are available; surface per-warehouse to identify operational hot-spots. The default view aggregates across locations.
track_inventory = false SKUsExcluded by default since they have no meaningful inventory level. Configure under Settings → Inventory tracking if you want them included as a separate “untracked” bucket.
VariantsWe count at variant level when products have variants; a multi-variant product can contribute multiple rows to the histogram.
OOS bucket interpretation0-stock SKUs are the catalogue’s OOS pool. The 0-bucket count should match BC Channel OOS per Channel aggregated across channels (within sync-lag).
Time windowRT (real-time, refreshed each catalogue sync).
Alert triggerNone on this card; pairs with BC Alert OOS Spike.
Rolesowner, 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 with MLI across two warehouses (A and B), B2B Edition active, and 2,400 catalogued SKUs. Snapshot at 09:00 UTC on 18 Apr 26.
BucketAll locationsWarehouse AWarehouse B% of catalogue
0 (OOS)142381045.9%
1-536022014015.0%
6-2072048024030.0%
21-10098072026040.8%
100+198801188.3%
Total2,4001,538862
What’s interesting:
  1. Warehouse B has 104 OOS SKUs vs A’s 38. This is the operational signal: B is structurally under-stocked. Decompose by category, are the OOS items concentrated in one product family (a slow restock cycle on a specific supplier) or distributed (a general under-stocking pattern)? In this case 78 of 104 were “throw cushions, all variants”, a single supplier’s batch had been delayed; the merchant could expedite a single replenishment to fix most of B’s OOS.
  2. The 100+ bucket has 198 SKUs, with 118 of those at warehouse B. B is over-stocked on some SKUs while under-stocked on others, a classic warehouse-allocation imbalance. Investigation revealed B was the merchant’s old centralized warehouse with legacy long-tail stock; A was the newer fast-mover warehouse stocked from a fresh supplier. Action: rebalance via inter-warehouse transfer.
  3. 5.9% OOS is meaningful but not catastrophic. Healthy benchmark for BC stores in homewares is 4-8% OOS; below 4% means you’re over-stocking working capital; above 10% means you’re losing revenue to OOS. 5.9% is well-balanced.
  4. The 1-5 bucket has 360 SKUs, the “low-stock” warning band. These will become OOS within a week if not restocked. Cross-reference with BC Stock vs Sales to identify which low-stock SKUs are also high-velocity (urgent restock) vs low-velocity (can wait).
  5. Warehouse B’s distribution is bimodal (heavy 0-bucket and heavy 100+ bucket). This is the warehouse-cleanup signal: B contains both legacy slow-movers (100+) and recently-stocked-out items (0). Old warehouse + slow restock = the worst-of-both-worlds operational state. Plan a rebalance + write-off cycle for B.
Action priority order:
  1. Identify the OOS concentration. Per-product-family decomposition shows whether OOS is one supplier issue or a systemic gap.
  2. Audit the 1-5 low-stock bucket. Cross-reference with velocity to prioritise restock.
  3. For MLI stores, look for warehouse imbalance (one warehouse OOS-heavy, another over-stocked). Inter-warehouse transfers are the cheap fix.
  4. For long-tail 100+ stocks, evaluate write-off or clearance. Old slow-movers tie up working capital and warehouse space.
  5. Pair with BC Channel OOS per Channel to verify channel-level impact.

Sibling cards merchants should reference together

CardWhy pair it with Inventory Distribution
BC Channel OOS per ChannelThe OOS-bucket’s per-channel decomposition.
BC Channel Inventory SplitPer-channel allocation context.
BC Stock vs SalesVelocity-weighted view; identifies which low-stock SKUs are urgent.
BC Alert OOS SpikeReal-time OOS-bucket transitions.
BC Top SKUsCross-reference: top-SKUs in low-stock bucket = urgent.
BC Top SKUs RevenueRevenue-impact view of low-stock items.
BC Inventory AlertsStore-wide inventory alarms.
BC Alert Fulfilment DelayLow-stock at the wrong warehouse causes fulfilment delays.

Reconciling against the vendor’s own dashboard

Where to look in BigCommerce Control Panel: Products → View, filter by Inventory Level, sort by inventory ascending. The 0-stock list is the OOS bucket. Reports → Inventory Snapshot (Plus / Pro) gives a daily snapshot of inventory levels but in less granular bucketing. For MLI: Settings → Inventory → Locations → individual location shows per-location stock per SKU. Why our distribution may differ from BC’s product list:
ReasonDirection
Variant aggregation. We count at variant level; BC shows products with any variant in stock as “in stock”.Vortex IQ HIGHER granularity / different counts
Untracked SKUs. We exclude track_inventory = false; BC shows them anyway.Vortex IQ LOWER total
Sync lag. Inventory webhooks lag by 30-120 seconds during peak load.Vortex IQ slightly LAGS
MLI aggregation. Default we sum across locations; BC may show per-location only.Different denominators
Bundle treatment. We count the bundle parent; BC may count components separately.Different SKUs
Cross-connector reconciliation (when 3PL integrations are connected):
CardExpected relationshipWhat causes legitimate divergence
shipbob.sb_inventory_distributionShipBob’s per-warehouse stock buckets should match the warehouse-A/B slicesShipBob’s reporting includes some staged-but-not-receipted units that BC doesn’t see.
shippo.shippo_per_warehouse_stockShould align with warehouse slices when Shippo manages warehousesShippo’s warehouse aggregation is different per integration.
netsuite.netsuite_inventory_balancesNetSuite’s inventory balances should match within 1-2 unitsNetSuite is the upstream system-of-record for many BC stores; gap is BC sync lag.
The inventory distribution view is BC-aligned with similar cards on Shopify (per inventory_quantity buckets) and Adobe Commerce (per qty buckets); merchant-facing semantics are equivalent.

Known limitations / merchant FAQs

My OOS bucket reads 142 SKUs but my BC Channel OOS shows 220 channel-OOS instances. Why the gap? Because the channel card double-counts SKUs across channels, the same SKU OOS on web AND Amazon contributes 2 to the channel count but 1 to this card. The 142 here is unique-SKU OOS; the 220 there is channel-instance OOS. Both are right at their respective lenses. Why is my 100+ bucket so big? Probably long-tail slow-movers. SKUs with high stock and low velocity tie up working capital and warehouse space. Cross-reference with BC Stock vs Sales, items in the 100+ bucket with <1 unit/week velocity are write-off / clearance candidates. My histogram changed shape after I enabled MLI. Real? Yes, MLI splits a single SKU’s inventory across locations, so a SKU with 80 units total at one location becomes (e.g.) 50 at A and 30 at B. The aggregated view sums them; the per-location view shows each location’s distribution. MLI activation typically widens the distribution by surfacing previously-hidden per-location skews. Should I exclude untracked SKUs? By default yes; they have no meaningful inventory level. But if your store uses untracked SKUs as a workaround for “always available” items (digital products, dropship goods, services), surface them as their own bucket via Settings → Inventory tracking → Show untracked. My low-stock bucket (1-5) has 360 SKUs. That sounds bad. Is it? Depends on your replenishment cycle. If you reorder weekly, 360 in 1-5 means 360 SKUs will be OOS by next week unless restocked, urgent. If you reorder daily and have fast suppliers, 360 in 1-5 is normal flow-through inventory. Compare to your average days-of-cover, the alert is “1-5 bucket > expected inflow rate”. Variants vs products: which counts? By default variants. A product with 3 variants where 1 is OOS contributes 1 to the OOS bucket and 2 to the in-stock buckets. Configure under Settings → Aggregation → Product if you prefer parent-product counts. My catalogue has 5,000 SKUs but the histogram totals only 4,200. Where are the missing 800? Probably untracked SKUs (excluded by default), bundle parents (counted differently), or recently-deleted SKUs (excluded). Check Settings → Inventory tracking → Coverage to see what’s filtered. Can I filter the histogram by category or brand? Yes, the filter selector at the top of the card lets you scope to category, brand, or channel. Useful for SKU-family-specific health reads, “how is the bedding category distributed?”. My B2B-only SKUs have huge stock (case packs of 200+). Should they be in their own bucket? Yes, ideally. Configure separate buckets for B2B-only SKUs under Settings → Inventory buckets → B2B mode. The default thresholds (0, 1-5, 6-20, 21-100, 100+) are calibrated for DTC-unit assortments; B2B case-pack SKUs need different bucket boundaries. Why is the alert trigger missing on this card? Because the right “alert” is downstream, OOS spike, low-stock warning, etc. This card is a structural baseline; the alerts ride on top of it (BC Alert OOS Spike, BC Inventory Alerts). Configure custom thresholds on the histogram if you want bucket-specific alerts (e.g. “alert if 0-bucket exceeds 8% of catalogue”).

Tracked live in Vortex IQ Nerve Centre

Inventory Distribution 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.