An integrity alert that fires when on-hand stock for any material at any plant falls below zero.
At a glance
Physical stock cannot be less than zero. When the SAP MM-IM (Materials Management, Inventory Management) on-hand quantity for a material at a plant reads negative, something is wrong with the postings, not the warehouse. The usual causes are a goods movement posted twice, a unit-of-measure conversion that multiplied or divided a quantity wrongly, or a stock-transfer race where the issue posted before the receipt. The card watches every material at every plant and raises a P1 the instant any on-hand quantity crosses below zero, because a negative on-hand poisons availability checks, COGS, and the inventory valuation that feeds the balance sheet.
| What it counts | The number of material / plant combinations whose current on-hand quantity in MM-IM is below zero. A reading of 0 is the healthy state. Any positive number is a live data-integrity breach that needs a goods-movement investigation. |
| What triggers it | A goods movement (goods issue, goods receipt, transfer posting, or stock-transport order step) that drives the unrestricted-use stock for a material at a plant or storage location below zero. Most commonly a double-posted issue, a wrong UoM conversion, or an issue posted ahead of its matching receipt. |
| Data source | SAP S/4HANA Cloud MM-IM stock figures (plant and storage-location level on-hand). The card reads current stock, not a historical snapshot. |
| Company Code scope | Plants roll up to Company Codes. The card flags by plant but the valuation impact lands on the owning Company Code’s inventory accounts. |
| Real-time vs batch | Real-time. The card re-checks on every connector poll, so a corrected posting clears the flag without waiting for an overnight job. |
| Time window | RT (real-time, evaluated continuously) |
| Alert trigger | any Material on_hand < 0 |
| Roles | owner, operations, engineering |
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 multi-plant distributor running SAP S/4HANA Cloud with three plants feeding an ecommerce storefront. The card is read on 12 Mar 26 and reports2. The two breaching material / plant rows look like this.
| Material | Plant | On-hand before | Movement posted | On-hand after | Likely cause |
|---|---|---|---|---|---|
| MAT-1001 (boxed kit) | 1000 Main DC | 40 EA | Goods issue 60 EA (delivery double-posted) | -20 EA | Double-posted goods issue |
| MAT-2002 (bulk powder) | 2000 Regional | 0 KG | Goods issue 500 (entered in G as 500, base UoM KG) | -500 KG | UoM conversion error |
| Card reading | 2 |
- A double-posted goods issue is the classic cause. MAT-1001 had 40 units on hand. A delivery for 60 units posted its goods issue twice (an API retry that did not honour idempotency, or a user who clicked twice), so the system recorded a 60-unit issue against a 40-unit position and the on-hand went to -20. The physical warehouse never had negative stock; the ledger does. The fix is to reverse one of the duplicate goods-issue documents, which restores on-hand to a true figure.
- A unit-of-measure conversion error multiplies the damage. MAT-2002 is held in base unit KG but sold in 25 KG bags. A goods issue entered 500 in the bag unit, but the conversion factor was wrong and the system posted 500 KG instead of 20 bags. The on-hand swung to -500 KG. UoM errors are dangerous because they are silent: the document looks valid and only the negative on-hand reveals it. Always check the alternative-UoM conversion in the material master when a quantity looks an order of magnitude off.
- The stock-transfer race is the third pattern. Not shown above, but common: a stock-transport order between two plants posts the issue at the sending plant before the receipt clears at the receiving plant. For a brief window the in-transit material can read negative at one node. If your process posts issue and receipt asynchronously, the card can flicker positive during the race and clear when the receipt lands. Persistent negatives, not transient ones, are the real problem.
- The downstream blast radius is valuation and availability. A negative on-hand feeds straight into the moving-average price calculation (a negative quantity can distort the price per unit), into COGS when the next issue posts, and into the availability check that the storefront uses to decide whether to sell. A negative on-hand can let the website oversell or, worse, can corrupt the inventory valuation that flows to the balance sheet. That is why the card is a P1 and not a warning.
Sibling cards merchants should reference together
A negative on-hand is the acute symptom; the inventory-integrity story is broader. Pair this card with these to see the wider stock-data picture.| Card | Why pair it with Material On-Hand Went Negative |
|---|---|
| Inventory Sync Drift | Shows where the commerce storefront’s stock figure has drifted from SAP’s MM-IM figure. A negative on-hand in SAP is a frequent root cause of drift. |
| SAP Total Inventory Value | The valuation roll-up that a negative on-hand distorts. Watch this for an unexplained dip when negatives appear. |
| Low Stock Alerts | The neighbouring availability signal. A material reading negative will also trip low-stock logic, so the two often light up together. |
| Inventory Aging | Helps confirm whether a material with erratic on-hand is genuinely moving or whether the postings are noise. |
| Journals by Source Module | MM goods movements generate FI postings. A spike in MM-sourced journals can correlate with the double-posting that drove the negative. |
| SAP S/4HANA Health Score | The composite roll-up. Negative on-hand is one of the integrity inputs that pulls the score down. |
Reconciling against SAP
Where to look in S/4HANA Cloud: The closest native equivalents inside the SAP Fiori launchpad are:Stock - Single Material / Stock Overview apps for the on-hand position by plant and storage location Material Documents Overview (conceptually transaction MB51) to find the goods movements that drove the position negative Manage Stock / Physical Inventory apps for the count-and-correct workflow Embedded Analytics: the stock-quantity query that reads MM-IM on-hand by material and plantDirect link template:
https://my{tenant}.s4hana.cloud.sap/sap/bc/ui2/flp#StockSingleMaterial-display
The Stock Overview on-hand quantity should match this card to the unit: a material / plant that the card flags as negative will show a negative unrestricted-use quantity in Stock Overview. To find the cause, open Material Documents Overview filtered to that material and plant, sort by posting date, and look for a duplicate goods issue, an oversized quantity, or an issue whose matching receipt has not posted.
Common mistakes when comparing against SAP’s own reports:
- Reading total stock instead of unrestricted-use stock. A material can have positive blocked or quality-inspection stock while unrestricted-use is negative. The card watches the availability-relevant on-hand, so a total-stock report can look fine while the card is correct.
- Looking at the wrong storage location. On-hand can be positive at the plant level but negative at one storage location if a transfer posting is mid-flight. Always drill to the storage-location level when reconciling.
- Treating a transient transfer race as a true negative. A stock-transport order in flight can briefly show negative in transit. The persistent negatives are the ones that need a reversal; the transient ones clear on their own.
| Reason | Direction | Why |
|---|---|---|
| Unrestricted-use vs total stock | Either | The card reads availability-relevant on-hand. A report that sums all stock types (blocked, in-inspection, unrestricted) can net to positive while the card correctly flags a negative unrestricted position. |
| Plant vs storage-location granularity | Card higher | A plant-level total can be positive while one storage location is negative. The card flags at the level where the negative actually exists. |
| Transient transfer races | Card higher (briefly) | An in-flight stock-transport order can show negative for a moment. The card may flicker; the persistent count is the meaningful one. |
| Special stock segments | Either | Consignment, project, and sales-order stock are tracked in separate special-stock segments. Whether these are in scope affects the count. |