Per-SKU stock visible to each channel. Surfaces concentration risk (one channel hoards stock, others stock-out).
At a glance
Per-SKU stock visible to each channel, decomposed bychannel_idandinventory_location. Surfaces concentration risk in BC stores running Channel Manager: a single hot SKU with stock allocated 80% to Amazon and 20% to web means web shoppers see “out of stock” while Amazon hoards a stockpile. The card is essential for merchants using BC’s Channel Inventory feature to allocate stock per channel, a workflow uniquely BC-native that Shopify only emulates with third-party apps.
| What it counts | Per-SKU inventoryLevel allocated to each channel_id (via Channel Inventory API) and each inventory_location (when MLI is active). Two views: aggregate (all SKUs total stock per channel) and per-SKU (top SKUs by velocity, per-channel allocation). |
| API endpoint | GET /v3/channels/{channel_id}/listings for channel-level inventory, GET /v3/inventory/locations/{location_id}/items for MLI, plus GET /v3/catalog/products for the SKU baseline. The OpenSearch inventory index materialises per-SKU-per-channel-per-location stock. |
| VAT / tax treatment | n/a, inventory metric. |
| Shipping | n/a. |
| Discounts | n/a. |
| Refunds | n/a. |
| Cancelled orders | n/a. |
| Currency | n/a. |
| Channel coverage | All channels using Channel Inventory, BC’s per-channel allocation feature. Channels not using Channel Inventory share the global pool and show full inventory available. Mix of allocated and unallocated channels is the most common BC pattern: web pulls from global, Amazon pulls from a reserved allocation, B2B pulls from another reserved allocation. |
| B2B Edition behaviour | B2B portal can have its own customer-group inventory reservation; the card surfaces this allocation. Useful for “do I have enough wholesale-reserved stock to fill upcoming PO commitments?” |
| MLI integration | When MLI is enabled, the channel-allocation per-location split shows. A SKU with stock allocated 100% to Amazon at warehouse A but 100% to web at warehouse B is a complex state that this card surfaces clearly. |
| Concentration risk | The card flags SKUs where >70% of total stock is allocated to a single channel; this is usually fine for marketplace-exclusive SKUs but is a misallocation for cross-channel SKUs. Configure threshold under Settings → Inventory → Concentration alert. |
| Time window | RT (real-time, refreshed each Channel Manager sync, typically every 15-30 minutes). |
| Alert trigger | None (pattern card, but pairs with concentration alerts). |
| 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 with Channel Inventory active, MLI across two warehouses, B2B Edition, and Channel Manager for Amazon and eBay. Snapshot at 09:00 UTC on 18 Apr 26. Top SKU by velocity: “Linen 4-piece bedding set, King” ($340/day pre-OOS).| Channel | Warehouse A | Warehouse B | Total | % of total |
|---|---|---|---|---|
1 (DTC web) | 22 | 14 | 36 | 38% |
1019847 (Amazon) | 38 | 0 | 38 | 40% |
1019850 (eBay) | 4 | 0 | 4 | 4% |
12000004 (B2B portal reserve) | 12 | 6 | 18 | 19% |
| Total stock | 76 | 20 | 96 |
- Amazon hoards 40% of total stock. This is at the edge of healthy, exceeding the merchant’s typical 35% Amazon allocation guideline. The reason: Channel Manager auto-replenishes Amazon-reserved stock based on 30-day Amazon velocity, and Amazon’s velocity grew 20% recently. The allocation is keeping up with demand, but is bumping the concentration ceiling. Watch for Amazon velocity to plateau; if not, raise the global stock level.
- eBay shows just 4 units, 4% of total, despite eBay representing 6-8% of the merchant’s revenue mix on this SKU family. The cause: eBay’s auto-replenishment trigger threshold was set higher than Amazon’s; eBay refills at 5 units, Amazon at 15 units. Asymmetric replenishment thresholds can starve a healthy channel. Recommend equalising thresholds.
- B2B portal reserve at 18 units protects upcoming POs. This merchant has 3 wholesale orders in the quote pipeline totalling ~14 units; the 18-unit reserve provides 4-unit safety margin. The B2B reserve workflow is uniquely BC, Shopify’s equivalent (Stocky / third-party) is less integrated.
- Warehouse B has 20 units, all allocated to web and B2B. Marketplace orders (Amazon, eBay) ship exclusively from Warehouse A in this configuration. If Warehouse A goes offline, marketplace fulfilment stops; web and B2B continue from B. MLI cross-warehouse fail-over needs explicit configuration, not automatic.
- The global pool not allocated to any channel is zero. This is the strict-allocation pattern: every unit is reserved. Stricter than necessary for most stores; recommend a 5-10 unit unallocated buffer to absorb sudden demand on any channel.
- Audit replenishment thresholds per channel. Equalise where possible to avoid starving healthy channels.
- For top SKUs, configure unallocated buffer (5-10% of total stock) so any sudden channel demand can pull from the global pool.
- For MLI, configure cross-warehouse fail-over in Channel Manager, single-warehouse channel allocation is a single point of failure.
- For B2B reserve, monitor against quote pipeline. A reserve falling below pipeline-commitment is the leading indicator of B2B fulfilment risk.
- Pair with BC Stock vs Sales to verify allocation matches velocity.
Sibling cards merchants should reference together
| Card | Why pair it with Inventory Split by Channel |
|---|---|
| BC Inventory Distribution | Store-wide inventory baseline; this card is the per-channel decomposition. |
| BC Channel OOS per Channel | Surfaces channels where allocation has run out. |
| BC Stock vs Sales | Velocity-vs-allocation comparison; identifies misallocation. |
| BC Top SKUs | Identifies which SKUs need careful per-channel allocation. |
| BC Top SKUs Revenue | Revenue-weighted view; high-revenue SKUs deserve audit-level allocation attention. |
| BC Alert OOS Spike | Concentration risk often manifests as OOS spike on one channel. |
| BC Channel Fulfilment Rate | Channel-allocated stock at the wrong warehouse causes fulfilment delays. |
| BC Channel Top Products | Cross-references which SKUs sell well per channel; allocation should match. |
Reconciling against the vendor’s own dashboard
Where to look in BigCommerce Control Panel: Channel Manager → individual channel → “Inventory” tab shows the channel’s allocated stock. Settings → Inventory → Channel Inventory shows the global allocation rules. For MLI: Settings → Inventory → Locations shows per-location stock per SKU. For B2B: Channel Manager → B2B Edition → Customer groups shows reservation rules. Why our split may differ from BC’s Channel Manager view:| Reason | Direction |
|---|---|
| Sync timing. Channel Manager updates stock allocation every 15-30 minutes; we mirror that cadence but at slightly different sync clock. | Sub-15min lag in either direction |
| Pending orders impact. We show committed-but-unshipped stock as “allocated”; BC’s Channel Manager view varies. | Either direction |
| B2B customer-group reserve. We surface reserve as its own row; BC’s Channel Manager rolls it into the per-customer-group view. | Different presentation |
| MLI cross-channel + cross-location. We compute the matrix; BC presents only one axis at a time. | Different granularity |
| Unallocated buffer. We surface unallocated stock as “Global pool”; BC’s Channel Manager doesn’t. | Vortex IQ surfaces; BC doesn’t |
| Card | Expected relationship | What causes legitimate divergence |
|---|---|---|
amazon_sp.amazon_inventory_per_listing | Amazon’s inventory should match the Amazon channel slice within 1-2 units | Amazon FBA shows units across multiple fulfilment centres; our card shows BC-tracked allocation. FBA-side units in transit don’t appear here. |
shipbob.sb_per_channel_stock | ShipBob’s per-channel stock should match within 1-2 units | ShipBob’s reporting includes some staged-but-not-receipted units; our card mirrors BC’s authoritative count. |
walmart_marketplace.wm_inventory | Walmart’s inventory should match Walmart channel slice | Walmart’s marketplace API has its own caching; sync lag of 30-90 minutes is normal. |