Skip to content

Inventory Model

The app holds your stock in two shapes, and it depends on the tracking type. Read this page once, and the numbers on every other screen make sense.

For a BULK or LOT item, the app keeps one record for each combination of item, bin, and lot. Each record holds one number: the quantity on hand.

Item Bin Lot On hand
Widget A A-01-01 120
Widget A A-01-02 80
Capsule B B-01-01 LOT-240101 500
Capsule B B-01-01 LOT-240315 300

Widget A holds 200 in total, across two bins. Capsule B holds 800 in one bin, across two lots.

The app creates these records for you as stock moves. You never make one by hand. It does not remove them: a bin that empties keeps its record at 0, because the ledger, the order lines, and the count lines still point at it.

For a SERIAL or RFID item, the app keeps one record for each physical unit. The record holds the serial number or the RFID tag, and the bin the unit is in.

There is no quantity record for these items. The quantity in a bin is the count of units the app finds there.

A unit record is permanent. When the goods leave the warehouse, the app clears the bin on the unit instead of deleting the row. The history of that serial number survives, and the unit no longer counts as stock.

Click a serial number or an RFID code anywhere it appears to open that unit. Its page gives the item, the bin it sits in, whether it is In stock or Released, and every order that moved it.

Number What it means
On hand Everything physically in the warehouse now: the sum of the quantity records, plus the units that sit in a bin
Available The same figure as on hand
Allocated Always 0

You read these three numbers on a warehouse item. See Warehouse Items.

Available equals on hand, and allocated is always zero. The app has no reservation accounting yet. Reserving a shipment does not reduce a number. It moves the stock into the dispatch bin, where another shipment cannot reach it, because reserve draws from storage bins only.

So plan from where the stock is, not from an available figure.

Each move writes a row to Inventory Transactions. A row is never edited and never deleted, so the ledger is the record you audit against.

Transaction Written when
inbound_receive A delivery records what arrived, into the receiving bin
inbound_put_away The delivery moves that stock into a storage bin
outbound_reserve A shipment stages stock into the dispatch bin
outbound_dispatch The shipment is confirmed and the goods leave
transfer_transit A transfer order dispatches stock into the transit bin
transfer_receive The destination warehouse receives the transfer
stock_adjustment A count posts an approved difference

Each row records the item, the lot, the bin, and the quantity. It also records the balance before and after, the document that caused the move, and the person who did it.

Every flow writes a pair of rows: one when stock leaves a place, one when it arrives.

Open Inventory Transactions in the sidebar to see how a quantity reached its current value. Search by reference number, or filter by Type, by Item, or by a date range. There is no bin filter. To read one bin, open the bin from Locations → Bins instead.

Click a row to open it. The entry gives the notes, the balance before and after, and a link to each bin it names.