Stock Is a Whole Number
Every quantity the inventory module stores is a whole number — on hand, per location, expected, counted, in transit, received. And no record anywhere carries a unit of measure, so an item is a countable thing and the system has no opinion about what kind of thing it is.
Ask the warehouse how much paint is left and the answer is eleven. Eleven what is a question the database has never been asked.
The short version
Quantity in this product is an integer, consistently, everywhere it is stored — and consistency is the good news, because a decimal in one place and a whole number in another is a rounding bug rather than a design. Separately and more consequentially, no stock record carries a unit of measure. An item is a countable thing; whether that thing is a box, a litre or a single tablet lives in the item name, in a category, or in somebody's head. For a business that counts discrete objects this is exactly right and costs nothing. For one that measures, decants, or buys in one pack size and issues in another, it is the single most important thing to understand before deciding whether this module fits, and it is not the sort of thing that shows up in a demonstration.
Where the whole number appears
This is not one column. It is the same decision applied consistently at every point a quantity is written down.
| What is recorded | Where it lives | Type |
|---|---|---|
| Stock on hand for an item | The item record | Whole number |
| Quantity at one location | The item-location record | Whole number |
| Reorder point | The item record | Whole number |
| Expected quantity during a count | The count line | Whole number |
| Counted quantity | The count line | Whole number |
| Variance between the two | The count line | Whole number |
| Quantity in transit on a transfer | The transfer record | Whole number |
| Quantity actually received | The transfer record | Whole number |
| Shrinkage on the way | The transfer record | Whole number |
Nine places, one answer. That consistency is worth pausing on, because the failure mode it avoids is genuinely nasty: a system that stores a decimal on hand and a whole number on a count line produces a variance every time a fractional quantity is counted, and the variance is an artefact of the schema rather than of the warehouse.
The contrast with money is deliberate, not accidental
Prices are decimals, and were widened from two decimal places to three in a dedicated migration when precision turned out to matter. So the shape of a numeric column here is a decision somebody makes and revisits, not something nobody has thought about. Quantity was not part of that change. Read it as a standing position rather than an oversight.
The second fact, which is the bigger one
There is no unit of measure column. Not on the item, not on the stock record, not on a count line, not anywhere in the schema. The one field in the whole tree with "unit" in its name is a unit price, which is money.
An item is a countable thing. What kind of thing lives in its name, and the database has no opinion about it.
In practice this works, and it works because of how people actually name things. An item called "Paint, white emulsion, 5L tin" is unambiguous to every person who reads it, and the eleven in the stock column plainly means eleven tins. The unit is carried in the name, which is a real solution and not a joke — it is how a great many well-run stores operate.
What it cannot do is arithmetic across units.
The four things this shape rules out
-
Measuring rather than counting
Anything sold by weight, volume or length. Three and a half metres of cable, 0.75 kilograms of a raw material, half a litre of a reagent. The nearest representable values are three and four, and neither is what is on the shelf.
-
Buying in one pack and issuing in another
A case of twenty-four bought, singles issued. Both are real quantities of the same physical thing, and with one number and no conversion factor you must pick one to be the truth. Most organisations pick the issuing unit and then reconcile purchase orders by hand, every time.
-
Partial consumption
A drum opened and half used. The drum is either present or gone, so the record says one until somebody decides it says zero, and the moment they decide is a judgement rather than a measurement.
-
A yield or a conversion
One sack of flour becoming a number of loaves, one roll becoming a number of cut lengths. Both sides are countable; the relationship between them is the thing there is nowhere to record.
And the four things it handles perfectly, which is the larger set for most businesses: anything discrete. Units, boxes treated as units, devices, tools, packaged goods, spare parts, consumables sold in a fixed pack. Lot tracking, serial tracking, expiry tracking and first-expiry-first-out all work on top of it — those count discrete things too, and they are genuinely present.
What to do if you measure things
You count discrete objects
Nothing at all
This shape is the right one and imposes no cost. The rest of this article is background.
You buy in cases and issue in singles
Pick the issuing unit and name it
Hold stock in the unit you consume, because that is the number people ask about daily. Put the pack size in the item name so a purchase order can be reconciled by hand without anybody having to remember the ratio.
You handle a small number of measured items
Choose a smaller base unit
Record in millilitres rather than litres, grams rather than kilograms, centimetres rather than metres. A whole number of small units represents a fraction of a large one exactly, and the arithmetic stays honest. The cost is a stock figure reading 4500 where a person would say 4.5 litres.
Measured stock is most of your business
Raise it before you commit
A base-unit workaround across an entire catalogue is a permanent tax on everybody who reads a stock figure. This is the case where the answer should be a scoping conversation rather than a habit.
The base-unit trick has one trap worth naming
It works cleanly until somebody needs a fraction of the base unit too. Recording in grams is exact for anything sold to the gram and awkward the first time a formulation calls for a tenth of one. Choose the base unit against the smallest quantity you will ever need to record, not the smallest you currently record — moving it later means rewriting every historical figure by a factor, and every report and printout that quoted the old one.
What a unit of measure would need to be
This is a schema-level change rather than a feature toggle, which is worth saying plainly. It is also well-understood work with a known shape, and the counting, transfer and adjustment machinery it would extend is already built and consistent.
A unit on the item
The smallest piece and the one that pays for itself immediately: the unit shown beside every quantity, on every screen and every printout, so a figure is never read as the wrong kind of thing.
Fractional quantities
Decimal quantity across all nine records named above, changed together so a count line and a stock figure agree. The consistency that exists today is what makes this a single change rather than nine.
A purchase unit and a stock unit
A conversion factor between the pack bought and the unit held, so a case of twenty-four received becomes twenty-four issued without anybody doing the multiplication.
We publish scope, not dates.
Scope units of measureWhat AWRA OpsHub does today
- Whole-number quantities stored consistently at all nine points a quantity is recorded, so a count line and a stock figure can never disagree because of their column types.
- Stock held per location as well as per item, with one row per item, warehouse and location combination enforced by the database rather than by convention.
- Reorder points, count expectations, counted figures and variances all in the same unit as stock on hand.
- Quantity in transit, quantity received and shrinkage recorded separately on a transfer, so a discrepancy in movement is a figure rather than an inference.
- Lot, serial and expiry tracking with a first-expiry-first-out policy, all of which count discrete things and sit correctly on top of whole-number quantities.
- Decimal pricing, widened to three places where precision matters, so money and quantity are treated as the different kinds of number they are.
More we can add to your workspace
- A unit of measure on an item, shown beside every quantity on every screen and printout, so a figure carries what it is counting.
- Fractional quantities across the stock records, for anything held by weight, volume or length rather than by the piece.
- A purchase unit and a stock unit with a conversion between them, so a case bought and singles issued are the same stock without a manual multiplication.
- Partial consumption of an opened container, recording what remains rather than treating the container as present or gone.
- A yield relationship between two items, for the sack that becomes loaves or the roll that becomes cut lengths.
- Unit conversion inside reports, so a figure can be read in cases or in singles without the underlying record changing.
Where we point you to a specialist
- We would decline to add fractional quantities to one record at a time. Quantity is currently the same kind of number in all nine places it is stored, and a decimal on hand against a whole number on a count line manufactures a variance every time a fraction is counted. Either they all move together or the consistency that makes counting trustworthy today is spent.
- Where a product is regulated by weight or volume for sale, labelling or duty, the measurement of record belongs in the system your regulator recognises, and we point you to your own advisers on which that is. Our part is to hold a figure that reconciles to it.
- We hold that the unit belongs on the item rather than being inferred from a category or a name pattern. An inferred unit is right until an item is named unusually, and a stock figure silently interpreted in the wrong unit is worse than one carrying no unit at all, because the first is trusted.
A unit of measure displayed on the item is the smallest useful piece of this and delivers most of the day-to-day benefit on its own, before any change to how quantities are stored. If your catalogue mixes pieces, packs and measures, it is the one to scope first.
Four questions to ask any inventory system before you commit
Can stock be held to a fraction?
A good answer sounds like
Yes, to this many places — or a clear no.
What ours actually is
Whole numbers, consistently, everywhere. Ask it as a schema question rather than a screen question: a field that accepts a decimal and stores a rounded whole is the worst of both.
Where does the unit of measure live?
A good answer sounds like
A field on the item, shown beside every quantity.
What ours actually is
In the item name, by convention. Which works, and does no arithmetic.
If I buy a case of twenty-four and issue singles, what is stored?
A good answer sounds like
Both, with a conversion between them.
What ours actually is
One number in one unit, and the reconciliation is done by a person. This question finds the pack-size problem faster than any other.
Do counted quantities and stock quantities have the same precision?
A good answer sounds like
Yes, obviously.
What ours actually is
Yes. Worth asking anywhere, because a mismatch produces variances that are artefacts of the database rather than facts about the warehouse, and they get investigated as though they were real.
Work out which kind of business you are, first
Count the lines in your catalogue that are measured rather than counted. If the answer is none, this article changes nothing for you. If it is most of them, that is the conversation to have before anything else about inventory is decided.
Talk through your catalogueFrequently asked questions
Can I record half a unit of something?
Not as a half. Every quantity the inventory module stores is a whole number, at all nine points a quantity is written down. The usual workaround is to choose a smaller base unit — millilitres instead of litres, grams instead of kilograms — so a whole number of small units represents a fraction of a large one exactly. It costs you a stock figure that reads 4500 where a person would say four and a half litres.
Where is the unit of measure stored?
Nowhere in the schema. An item is a countable thing and what kind of thing it is lives in the item name, which is how most well-run stores operate in practice. An item named to include its pack or its size is unambiguous to every person who reads it. What the system cannot do is arithmetic across units, because it has no record of what any unit is.
Does this mean lot and expiry tracking are unavailable?
No, and it is worth separating the two ideas. Lot tracking, serial tracking, expiry tracking and a first-expiry-first-out policy all exist and are real. They count discrete things, which is exactly what whole-number quantities represent well. The constraint described here concerns measured quantities and pack conversions, not the sophistication of the tracking built on top.
Is the whole-number choice a problem or a design?
A design, and the evidence is the consistency. Nine separate records store quantity the same way, and money in the same product is decimal and was deliberately widened to three places when precision mattered. So numeric column types here are decisions somebody makes and revisits. Quantity was not part of that change, which reads as a standing position rather than something nobody has considered.
What is the risk if I use the base-unit workaround?
One trap, and it is worth choosing against. The trick works until somebody needs a fraction of the base unit as well — recording in grams is exact until a formulation calls for a tenth of one. Pick the base unit against the smallest quantity you will ever need, not the smallest you currently use, because moving it afterwards means rewriting every historical figure and every report and printout that quoted the old one.
How do I handle buying in cases and issuing in singles?
Hold stock in the unit you consume, because that is the number people ask about daily, and put the pack size in the item name so a purchase order can be reconciled without anybody having to remember the ratio. The multiplication is then a human step at receipt, which is reliable while the pack size is stable and is the thing to raise if it is not.