Skip to main content
Metrics type: Cross-Platform MetricsCategory: Inventory
The percentage gap between what S/4HANA Cloud says you physically hold and what the storefront is selling, across the SKUs that actually matter.

At a glance

A single percentage that answers one question: how far apart are the books and the storefront on the inventory that matters most? The card takes the top-50 SKUs by value, pulls plant and storage-location unrestricted stock from S/4HANA Cloud MM-IM (the system of record), pulls the same SKUs’ available-to-sell quantity from each connected commerce platform, and reports the absolute on-hand variance as a percentage of the SAP figure. SAP is treated as truth because it is the legal inventory ledger that valuation, audit, and replenishment all run from. The storefront is the channel that takes the money. When those two drift apart you are either overselling stock you do not have or hiding stock you could be selling. This card is the gauge; the SKU-level companion is Inventory Sync Drift.

Calculation

Calculated automatically from your SAP 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 homewares brand runs S/4HANA Cloud with one plant (1000, main DC) and two storage locations (0001 pick-face, 0002 reserve), selling through a Shopify Plus DTC store and a BigCommerce B2B portal. The snapshot is taken at 09:00 on 12 Mar 26. Five of the top-50 SKUs are shown below. Four things to notice:
  1. The headline gauge reads 6.4%, above the >5% alert. Two SKUs are driving it. The card is value-weighted, so HW-CHAIR-301 and HW-RUG-220 (both high-value) move the needle far more than a small percentage wobble on a low-value SKU like HW-THROW-118.
  2. HW-RUG-220 shows commerce higher than SAP (240 vs 180). That is the dangerous direction: the storefront is advertising 60 units the ledger does not have. This is an oversell-in-waiting. Once orders consume real stock, fulfilment fails, refunds spike, and the Material on Hand Went Negative card may fire. The likely cause is a stock-decrement IDoc that failed to post, leaving the storefront stale-high.
  3. HW-CHAIR-301 shows SAP higher than commerce (54 vs 12). That is lost sales, not oversell. The ledger holds 54 units but the storefront will stop selling at 12. The usual cause is reserve storage location 0002 not being aggregated into the published quantity, so 42 saleable units are invisible to shoppers.
  4. The SKU-level breakdown lives on the companion card. This gauge tells the owner the portfolio is 6.4% out of sync. To act, Operations pivots to Inventory Sync Drift, which lists every drifting SKU with its SAP quantity, commerce quantity, direction, and last successful sync. The gauge is the alarm; the list is the work queue.

Sibling cards merchants should reference together

This card is the percentage gauge that summarises inventory health across the top-50 SKUs. To act on a reading, pair it with the SKU-level and value-level cards below.

Reconciling against SAP

Where to look in S/4HANA Cloud: The closest native equivalents inside the SAP Fiori launchpad are:
Stock - Single Material Fiori app (the modern MMBE Stock Overview) for plant and storage-location on-hand Manage Stock Fiori app to view and adjust unrestricted, quality-inspection, and blocked stock by storage location Material Documents Overview Fiori app (the MB51 equivalent) to trace every goods movement on a Material Embedded Analytics: query the MM-IM stock CDS view for the same Material, plant, and storage-location scope
To reconcile, take the worst SKUs from the companion drift list, open Stock - Single Material for each, sum unrestricted-use stock across the storage locations that feed the storefront, and compare against the published commerce availability. They should match to the unit once any safety-stock buffer and unit-of-measure conversion are accounted for. Common mistakes when comparing against SAP’s own reports:
  • Reading total stock instead of unrestricted stock. MMBE shows unrestricted, quality-inspection, blocked, in-transit, and reserved separately. Only unrestricted-use stock is normally sellable. Summing all stock types overstates availability and makes SAP look higher than it really is for selling purposes.
  • Forgetting reserved stock. Stock reserved against open deliveries or production orders is physically present but committed. The card nets reservations out of SAP availability; a raw MMBE on-hand read does not, so the raw read looks higher.
  • Wrong storage-location scope. If the storefront sells only from the pick-face location but MMBE is read at plant level (all storage locations), the SAP figure includes reserve stock the storefront cannot see. Always reconcile at the storage-location scope that actually feeds the channel.
  • Unit-of-measure mismatch. SAP base UoM (each) vs a commerce selling UoM (pack of 6) will show an apparent variance that is really a conversion. Confirm the material-master alternative UoM before treating a gap as real.
Why our number may differ from SAP’s reports: Cross-connector reconciliation, the killer finding: This card only exists because the storefront and the ledger are two different systems. The table below is where the value is. The single most useful pivot from this gauge is into Inventory Sync Drift, which turns the portfolio percentage into a per-SKU, per-channel work queue with the last successful sync timestamp for each line.

Known limitations / merchant FAQs

Why only the top-50 SKUs and not my whole catalogue? Because variance on a long-tail SKU you sell twice a month is noise, while variance on a top-revenue SKU is a fire. The top-50-by-value cut keeps the gauge focused on the inventory that drives most of your sales and most of your write-off exposure. If you need the full catalogue view, the SKU-level companion Inventory Sync Drift covers every mapped SKU, not just the top 50. Why is the card value-weighted rather than a simple average? A flat average treats a 50% wobble on a 2accessorythesameasa502 accessory the same as a 50% wobble on a 400 chair. That hides the real risk. Value weighting means the gauge moves in proportion to the money at stake, so a reading above the alert always points at something worth acting on. Commerce is showing more stock than SAP. Is that a problem? Yes, and it is the more urgent direction. Commerce-higher-than-SAP means the storefront is advertising stock the ledger does not hold, which leads to oversell, failed fulfilment, refunds, and eventually negative on-hand in SAP. The usual cause is a stock-decrement IDoc or API call that failed to post. Check the stock-update IDoc partner profile and message status first. SAP is showing more stock than commerce. Is that a problem? A different one: lost sales. The ledger holds stock the storefront is not publishing, so shoppers see “out of stock” on units you actually have. The usual cause is a reserve storage location not being aggregated into published availability, or a safety buffer applied only on the commerce side. This ages inventory and ties up working capital. Does the card count quality-inspection or blocked stock? No. Only unrestricted-use stock is treated as sellable. Quality-inspection stock (awaiting QC release), blocked stock, and stock in transit are excluded unless your fulfilment model explicitly sells from them. This is deliberate: publishing QC or blocked stock to the storefront is itself an oversell risk. How does reserved stock affect the comparison? Reserved stock (committed against open deliveries or production orders) is physically present but not available to sell, so the card nets it out of SAP availability before comparing. A raw MMBE on-hand read does not net reservations, which is why a manual MMBE check can look higher than the card. My SKUs use a different unit of measure in SAP vs the storefront. Does the card handle that? It applies the material-master alternative unit-of-measure conversion where the map provides one. If a SKU is sold in packs on the storefront but stocked in eaches in SAP, confirm the conversion factor in the material master. An unconverted UoM mismatch is the most common false-positive on this card. How fresh is the comparison? Both sides are snapshotted in the same poll, every 15 minutes by default. Goods movements posted between two polls create a transient gap that resolves on the next cycle. For a live check during a stock count or a sync incident, the native SAP Stock - Single Material app is always real-time; this card is at most one poll behind. Does it work with multi-location / multi-plant fulfilment? Yes, but the storage-location and plant scope must be configured to match the locations that actually feed each storefront. Multi-Source Inventory on Adobe Commerce and multi-location inventory on Shopify Plus both need their sources mapped to the correct SAP plant and storage location, or the card reports systematic variance that is really a mapping problem.

Tracked live in Vortex IQ Nerve Centre

ERP-vs-Ecom Inventory Variance % (top-50 SKUs) is one of hundreds of KPI pulses Vortex IQ tracks across SAP 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.