Available stock is different from stock on hand
For inventory head with commerce operations lead · Understand the problem
TL;DR — what you’ll learn
- Calculate the quantity a new customer can buy from eligible stock after existing commitments and holds.
- Check whether buffers and damaged stock are already included in an unavailable balance before subtracting them.
- A shared stock figure needs a reservation rule; copying the same quantity to every channel does not allocate it.
- Reconcile cancellations, receipts and late updates against current records before changing availability.
Topics: omnichannel inventory management · available to sell calculation · reserved stock · retail stock availability
All quantities, amounts, product codes and events are illustrative teaching examples.
A store has 50 lamps on hand. Its website accepts an order for 35. The warehouse team then explains that 12 lamps were already promised, four were damaged and six were held under an approved buffer policy. The website promised stock that was already committed or unavailable.
The useful question is: which units can this location promise to a new customer now? Define availability before speeding up the feed.
Build one stock account before combining channels
Start with one SKU, location, stock unit and observation time. Split on-hand lamps into four non-overlapping states: committed, damaged, buffer and available.
Scroll horizontally to see all columns.
| Position at the observation time | Units | Treatment |
|---|---|---|
| On hand at this location | 50 | Physical quantity represented in the location ledger |
| Committed to existing orders | 12 | Excluded from new promises |
| Damaged and restricted | 4 | Excluded until an authorised disposition |
| Additional approved buffer | 6 | Excluded under the stated buffer policy |
| Available for a new promise | 28 | 50 − 12 − 4 − 6 |
The result is valid only because the three deductions do not overlap. If the system already reports ten unavailable units comprising four damaged units and six buffer units, the calculation is 50 − 12 − 10 = 28. Subtracting the buffer again would incorrectly publish 22.
Platform terminology needs a field-level check. Shopify, for example, describes on-hand inventory as the sum of available, committed and unavailable quantities; incoming stock is a separate state. Map the retailer's ERP and channel fields to these meanings before using the formula. Shopify inventory states.
- 50 on handConfirm SKU, location, unit and observation time.
- 12 committedExisting reservations remain protected.
- 10 unavailableFour damaged plus six buffer units, counted once.
- 28 availableApply channel and fulfilment eligibility before publishing.
An incoming shipment of 20 lamps does not increase the 50 on-hand units before receipt. If the business offers preorders, it needs a separate promise with an expected date and a defined response to delay. Combining incoming and immediately available stock removes that distinction.
Location eligibility changes the answer
The next store may hold another 15 lamps but be unable to fulfil online orders. Perhaps the store is closed, has no packing capacity, or holds a variant that is inactive for that fulfilment route. A company-wide total of 43 available lamps does not establish that an online order for 40 can be fulfilled.
Maintain eligibility separately from physical quantity. The record should show why a location is excluded and who may change that decision. The required fields are practical: SKU, location, stock unit, quantity by state, reservation references, hold reason, last accepted update and permitted fulfilment routes.
The inventory head owns the quantity definitions and buffer policy. Commerce operations owns where a promise appears. Store or warehouse teams own the physical observations. An integration owner maintains the mapping and update behaviour. Show each discrepancy's owner in the shared view.
Publishing 28 to two channels does not create 56 units
Suppose both a marketplace and the retailer's website display 28. Two customers each order 20 before either channel receives an update. The visible numbers were individually correct at publication time; together, the requests exceed the shared supply.
Choose an explicit approach to this race:
Scroll horizontally to see all columns.
| Approach | Suitable condition | What must be tested |
|---|---|---|
| Shared reservation authority | Every relevant order can obtain a reservation before commitment | Two competing requests cannot both claim the same units |
| Channel allocations | Channels accept orders independently and allocation limits are enforceable | Allocations total no more than the approved shared supply; transfers between allocations are controlled |
| Conservative published quantities | Delayed feeds cannot be eliminated immediately | A documented exposure limit, update cadence and response to overselling |
A buffer can reduce exposure while feeds are delayed. It cannot prove that overselling is impossible. A marketplace's acceptance and update behaviour may also limit what the merchant can guarantee. Document that constraint before selecting the control.
For an illustrative allocation, the merchant assigns 16 units to its website and 12 to a marketplace. If the website sells eight, its remaining allocation is eight. It must not automatically republish the entire remaining shared balance of 20 while the marketplace still holds an allocation of 12.
Release a reservation from its own record
Consider a cancellation for two of the 12 committed lamps. If the reservation is still active and no other movement has occurred, committed stock falls to ten and availability rises from 28 to 30.
Now change the sequence. One lamp has already shipped before the cancellation reaches the inventory service. The cancellation cannot release two units merely because the original order quantity was two. It must determine which reservation remains active and which line has entered a different physical state.
Record the business event time and the time the receiving system accepted the update. Keep the reservation identity and the outcome of a previous release. A duplicate cancellation should return the earlier result rather than adding the quantity again. A later physical return follows receipt and inspection; it does not become sellable stock just because the customer received a refund.
The same principle applies to received stock. Confirm its actual disposition before adding it to the sellable pool. The partial-receipt guide shows how accepted and rejected quantities remain visible.
Choose the smallest change that fixes the definition
Use the platform's native stock states when they represent the business correctly. Begin by repairing field mappings or overlapping holds if those are the source of the error. A separate availability service becomes useful when multiple systems require a common reservation or allocation decision that none currently owns.
A first review can follow one oversold SKU through its location ledger, commitments, holds and channel updates. Compare the published value with a reconstruction from those records. If the reconstruction is impossible, identify the missing record before adding predictive logic or AI.
Use the following acceptance exercise:
- Start with the 50-unit example and obtain 28 available units.
- Represent damaged stock and buffer inside a ten-unit unavailable field; verify that availability stays 28.
- Try two requests whose combined quantity exceeds 28 and observe the agreed reservation or allocation outcome.
- Cancel an active reservation twice and verify one release.
- Receive an item into a restricted state and verify that it remains excluded.
- Delay a location update and confirm that the operator sees the age and the approved fallback action.
Record the result for each channel; acceptance behaviour can differ.
What to do with the result
A dependable availability figure explains both the included units and the exclusions. That makes an overselling incident a traceable decision about states, timing and channel authority.
- Select one SKU and reconstruct its availability at the time of a disputed order.
- Agree which system owns each stock state and which deductions overlap.
- Choose the reservation or allocation rule for competing channels.
- Test late cancellation, restricted receipt and stale updates before expanding the feed.
Discuss this workflow
Bring the field names and a redacted event sequence from one overselling incident to NextEdge Labs. The first assessment should identify the incorrect promise and the smallest control needed to prevent its recurrence.
References
Sources checked 15 October 2026. Vendor documentation supports platform facts; the worked examples and diagrams are original.
- Shopify Help Center — Understanding inventory statesCurrent platform definitions checked during drafting; not a universal ERP data model.
- Shopify Help Center — Creating and managing purchase ordersCommercial and inventory-movement records are separate in the current documented workflow.