Reference behaviour: Inventory Batch, Inventory Position and Inventory Quantity (Quantities)with RESERVED & SALE
Authors:
Nandha Balaguru, Randy Chan
Changed on:
22 Apr 2025
Overview
Reference behaviour: Batch, Position and Quantity (Quantities)with RESERVED & SALE
Key points
- This article will give a good understanding of Last On Hand and how OMS calculates the Inventory On Hand quantity.
- Covers how inventory quantity values are handled during the batch process.
- For the Virtual Catalogue and Virtual Positions, please refer to the training articles.
Initial is loaded into the system. It sets the base physical stock in OMS, representing the actual available at that point which is 150 units.

Upsert payload would look as below:

After the batch had been processed, the IQ with the type LAST_ON_HAND was updated to 170. The IP on hand qty has also been updated to 170, and the same for IP :

Next, create an for this SKU with a quantity of 3 units.This will the creation of a fulfilment with 3 quantities in the `AWAITING_WAVE`
status.

In the Position Screen, an ACTIVE RESERVED IQ has been created with qty = -3 against the fulfilment (the fulfilment ID is part of the IQ ref). As you can see, the IP on hand is now 167. (: 170 + RESERVED: -3)

The next step is to the fulfilment. So log on to Fluent STORE, create and pick confirm the fulfilment:

After pick confirmation is completed, the filled quantity is updated in the fulfilment line section:

has been fully picked. The 3 units are no longer reserved but have now been physically moved from base stock. Upon pick confirmation, the reservation becomes `INACTIVE`
, and a corresponding `SALE`
record is made ACTIVE to reflect that the stock has officially transitioned from "`reserved`
" to "`sale`
."

Now, let's demonstrate how SALE IQ and RESERVED IQ behave when a new batch upsert is sent to OMS.
First, create a new with 5 units:

Fulfilment created successfully:

In the Position Screen, a new RESERVED ACTIVE was created against the fulfilment. The latest IP on hand is 162.Active records are considered for the On-Hand Qty calculation

Imagine that the store has not picked up the fulfilment overnight, and a nightly inventory sync is triggered with OMS.
In this case, the inventory quantity for the SKU at this location should be reported as 167.(LAST_ON_HAND should always reflect available including the reserved quantities when communicated to OMS.).

After the batch is processed:
- The LAST_ON_HAND IQ is updated to 167.
- The IP on-hand is 162.
- The SALE IQ is made INACTIVE.
OMS recalculates stock on hand with batch loads and inactivates past SALE records because they represent quantities that are picked & packed and are no longer part of the available stock. Active reservations remain untouched, as they represent the fulfilments which are not picked & packed.
