Almost no business buys and sells in the same unit. Cable arrives on rolls and leaves by the metre. Cement arrives on a lorry and leaves in bags. Fasteners arrive in boxes and leave in handfuls. Everybody knows the conversion, which is exactly why it usually lives in somebody’s head and gets done wrong on a Friday.
The factor belongs to the product
The instinct is to define a box as twelve. It is a natural mistake and it is fatal. A box holds six of one lightbulb and twelve of another; a bag is twenty-five kilograms of cement and one kilogram of screws. "Box" is a container, not a quantity, and what it holds is a fact about the product inside it.
So the factor lives on the product. Each product declares its base unit and any alternates it is bought or sold in, each with how many base units make one. Say it once, and every form in the application — receiving, adjusting, quoting, ordering, transferring — will accept whichever unit the person in front of it is actually holding.
A box is a container, not a quantity. What it holds is a fact about the product inside it.
Choose the base unit once, and choose it small
The base unit is what stock is stored in, and it is the one decision worth thinking about. Pick the smallest thing you would ever count or sell. If you ever sell a single piece, the base is the piece, even if ninety-nine percent of the movement is in cartons. Bases can be widened later only awkwardly, so err small.
Units come in six kinds — count, packaging, weight, volume, length and area — and the kind matters, because it decides whether a fraction makes sense.
Half a metre is real. Half a piece is a typo.
2.5 metres of cable is an ordinary thing to sell. 2.5 pieces of anything is somebody’s finger slipping. That rule belongs to the unit rather than to the product, and NOVOLIG enforces it on the server rather than in the form, so it holds wherever the number comes from.
Both ends of the conversion are checked, which catches the subtler version of the same mistake. One and a half boxes of six is nine pieces, and that is fine. One box of six and a half pieces is not a thing, and it is refused.
What you typed is kept next to what we stored
Quantities are stored in the base unit, because a single unit is the only way stock arithmetic stays sane. But storing only the converted number throws away what actually happened. So the movement records all three: what the operator typed, the unit they typed it in, and the factor that applied at that moment.
The ledger therefore reads "received 10 boxes" while inventory reads "120 pieces", and both are true. More importantly, when your supplier switches to boxes of ten next year and you change the factor, nothing behind you is rewritten. The old rows still say what they always said.
The result
Nobody at the counter has to do arithmetic, nobody has to remember which unit the system expects, and the number underneath is right anyway. That is the whole of it: let people work in the units the business genuinely uses, and keep the inventory honest underneath them.
