Almost every inventory system stores stock the same way. One number per
item, per location. A delivery adds to it. A dispatch subtracts from it.
An audit overwrites it. That is how inventory works, or so the textbooks
would have you believe.
It is how arithmetic works. Godowns are another matter.
What goes wrong with a balance?
A balance is a running total, and a running total only stays true if
every movement that touches it is recorded exactly once, in the right
amount, against the right location. In a real warehouse, each of those
three conditions fails on a normal Tuesday.
A sticker gets scanned twice. The gun beeps, the picker is not sure it
registered, the picker scans again. A balance has no way to know the
second scan was the same bag. It decrements twice. The shelf now holds one
more bag than the system believes.
Two identical bags sit on the same rack. Now the problem inverts. If a
label identifies "this item on this rack", a second scan could be a
duplicate of the first bag or the first scan of the second bag. A system
that treats it as a duplicate loses a dispatch. A system that treats it as
a new bag double counts a mistake. Neither is right, and neither can be,
because the label does not carry enough information to decide.
Not every bag holds the same amount. Fastener bags are nominally 50
kg. In practice some are 48.5, some 49, and the odd one 19. A balance of
"four bags" multiplied by 50 tells a customer there is 200 kg on the
shelf. One of those bags is the 19 kg one. Nobody finds out until the
order is packed.
Each failure is small. Together they explain why so many businesses run
a stock system and still send someone to the rack before quoting a
figure. The system holds a number. The rack holds the truth.
The alternative: one record per physical unit
The fix is to stop storing a quantity at all. Store the bags.
Every bag (or carton, or drum, or coil, whatever the godown actually
handles whole) becomes its own record, with its own identifier and its own
printed sticker. Stock is no longer a number that is maintained. It is a
count of the records still standing, which is exact by construction
rather than by arithmetic that can drift.
Watch what happens to the three failures.
The repeated scan becomes harmless. Dispatching a bag means changing the
status of that one record from standing to gone, and only if it is still
standing. The second scan matches nothing. The database guarantees it,
not a check somebody remembered to write.
The two identical bags stop being identical. They carry different codes,
so they scan out separately, and a duplicate is recognisable as a
duplicate.
The 19 kg bag gets a voice. Because each bag is a record, it can carry a
column for what it holds. Weight is entered bag by bag on receipt, printed
on the sticker in place of a generic "BAG", and summed honestly. A bag
nobody has weighed is reported as not weighed, never assumed to be 50 kg
and never treated as zero.
What else a bag can tell you
Once each unit is a record, questions that a balance cannot answer become
trivial.
Where, exactly? "Three bags across three racks" is a list, not an
estimate. The picker is sent to M6 and M14, not to "somewhere in the M
aisle".
Since when? Every bag knows the day it physically arrived, which is
not always the day it was typed in. That makes oldest-first picking a
sort order rather than a policy, and it makes slow-moving stock visible
without a separate ageing report.
What actually left? A dispatch is a list of specific bags with
specific weights, which reconciles against the packing slip line by line.
The underlying point is that bags of the same SKU are not fungible. They
differ in weight, in age and in location, and the differences are the
things a founder asks about. A balance throws exactly that information
away at the moment it is recorded.
What it costs
Per-unit tracking is not free, and it is not for every business.
It needs a sticker on every unit, which means a label printer at receiving
and the discipline to use it before the bags leave the floor. It needs a
moment per bag at stock in, though a "set all to" control turns thirty
identical bags into one action and leaves only the exceptions to correct.
And it produces many more rows than a balance does, which matters not at
all to a modern database and matters a great deal to anyone who planned to
manage stock in a spreadsheet.
It also has a natural boundary. The unit is the thing the godown handles
whole. A bag of 2,000 screws is one unit. The screws are not. If your
business breaks containers open and sells loose pieces off the shelf, the
container is still the right unit for the warehouse, and the loose pieces
belong to a counter, not a rack.
When it is worth it
Per-unit stock pays back when three things are true. Goods move in
containers that are handled whole. Those containers vary in what they hold
or where they sit. And somebody, usually the founder, regularly needs an
exact answer quickly, often on a phone call with a customer waiting.
We built exactly this for Lucky Traders,
a fastener distributor whose godown had been counted on paper. Every bag
now carries its own QR sticker, scanning out needs no quantity, a repeated
scan does nothing, and the owner can see four bags of M12x24 on rack M6,
each with its weight, from wherever the question finds them.
If your stock system holds a number and your team still walks to the rack
to check it, the number is not doing its job. Start a conversation about
replacing it with a count you can trust.