Units of measure
The three-layer unit model — base unit, purchase pack, and secondary unit — plus AI unit suggestions and what happens when you change an item's unit.
Every item has up to three unit layers, and each answers a different question:
- Base unit — what the item is counted, costed, and cooked in.
- Purchase pack — how you buy it from the vendor.
- Secondary unit — a second unit you read or type quantities in.
Only the base unit is required. The other two are conveniences layered on top — stock, cost, and recipes are always stored in the base unit, no matter which layer a screen happens to show.
The base unit
The base unit (kg, g, L, ml, pcs, …) is picked on the item form with the Unit
chips. It is the unit your stock ledger thinks in: on-hand balances, average
cost, recipe lines, and every posted movement live in this unit. Pick the unit
you actually measure with in the kitchen — if you weigh flour in grams, the base
is g, even if you buy it by the 25 kg bag.
Purchase pack — how you buy, not how you count
Under Purchase pack (optional) you record how the item arrives from the vendor: a pack size and a pack name. As the form puts it — “1 TRAY of 30 pcs”, “1 BOX of 24 pcs”, “1 TIN of 15 L — stock stays in L”. Leave it blank if you buy loose by the base unit.
Fill both fields and the form shows the live sentence it will mean, e.g. “1 BOX = 24 pcs — you order by the BOX; stock and recipes still count pcs.” Ordering screens then work in whole packs (quantities round up to a full TRAY or BOX), and order lines show both readings, like 2 TRAY · 60 pcs — but the stock that posts on receipt is still in the base unit.
Secondary unit — one extra lens
A secondary unit is for items your team genuinely handles in two units — you buy
or count in one, cook in another. The form’s examples: 1 loaf = 8 slice,
1 crate = 24 pcs, 1 kg = 1000 g. You add at most one, with a single
conversion written as 1 {secondary} = {factor} {base}.
- On the item form, tap Add a secondary unit.
- Type the unit inline in the conversion sentence (or tap a quick-pick chip — kg, g, L, ml, dozen, pcs). Standard pairs like kg↔g and dozen↔pcs auto-fill the factor; non-standard pairs (loaf↔slice) are typed by hand.
- Choose which unit stock renders in with the Show stock in toggle.
The form spells out exactly what you’ve set up, e.g. “1 crate = 24 pcs. Stock & cost stay in pcs; stock screens show crate (48 pcs reads as 2 crate).” The displayed number is just the stored base quantity divided by the factor — the ledger itself never changes.
Once a valid secondary unit exists, the Cost field also gains a per-unit
picker (per pcs / per crate) so you can enter the price in whichever unit
the invoice uses; the stored cost is still per base unit.
Changing an item’s unit is a relabel, not a conversion
Editing an existing item’s base unit keeps every stored number and only changes the label. The form warns you in place: “Changing the unit relabels existing stock — quantities keep their numbers (120 kg becomes 120 g); nothing is converted.”
That is almost never what you want on an item that already holds stock. If you want screens to read in a different unit, keep the base unit and add a secondary unit instead — that converts the displayed number properly. Only relabel when the unit was simply wrong from day one (the stock really was 120 g all along, mislabelled as kg).
Traps the form catches
Two common mistakes now get an inline warning instead of silently saving:
- The size typed into the unit name. A unit called
400mlwith a factor of 1 is wrong — put the size in the number, not the name: a 400 ml bottle is 1 bottle = 400 ml, not a unit called “400ml”. - A 1 factor.
1 bottle = 1 mlmeans they’re the same size, which is almost always a mistyped factor. If one bottle holds more than one ml, that number belongs in the factor (e.g. 1 bottle = 400 ml).
The secondary unit must also differ from the base unit — the form blocks an exact match.
AI-suggested units
On the New/Edit item form, once you’ve typed an item name, a small Suggest units button appears under the Unit chips. Tap it and the AI proposes a sensible base unit, purchase pack, and secondary unit for that name — shown as chips like Unit: pcs, Buy as 1 TRAY = 30 pcs, and Also count in dozen (1 dozen = 12 pcs).
- Nothing is ever auto-applied. Each chip is one tap to accept; a value you typed is only replaced by that deliberate tap. Dismiss the row with the ×.
- Suggestions are pinned to the name you asked about — rename the item and the chips reset to the button.
- Each tap of Suggest units spends one call from the shared monthly Basanti allowance (the same pool as bulk onboarding, recipe reading, and the assistant). When the allowance is used up, the button hides until the next month — typing a name never spends allowance by itself.
How Basanti reads recipe units
When Basanti reads your recipe sheets, ingredient lines arrive in whatever unit the sheet used, and they’re reconciled against each item’s base unit rather than trusted blindly:
- Metric siblings convert — a sheet line in GM on a KG item is converted numerically, with a note like “200 GM read as 0.2 KG”. A coarser metric unit (KG on a g item) is appended as the item’s secondary unit so future reads understand it.
- Non-convertible units are read honestly — “PCS” on a KG item is never multiplied by a guess; the quantity is read in the base unit and a warning flags the mismatch for you.
Either way, the review list shows the unit on every line and lets you change it before committing — picking a real unit re-prices the line live.