Skip to main content
Record how units relate once, then work in any unit across purchasing, inventory and recipes.

Business Value

  • Stops 1000× mistakes in stock balances, costs and recipes.
  • Records how units relate on one screen, with bulk import and export.
  • Lets each team buy, transfer, issue and cook in its own unit.
  • Keeps stock and cost in the item’s Store unit.
  • Reopens and prints every document in the unit you entered.
  • Protects an item’s unit once it has been used.

Use Cases

  • Cost controller defines kg → gm once and every screen follows.
  • Purchasing manager raises a request in grams for an item stocked in kilograms.
  • Store keeper issues 2000 gm without converting by hand.
  • Chef writes 200 gm of butter for an item stocked in kg, and the cost is right.
  • Inventory supervisor finds a used item’s unit locked, avoiding a costly mistake.

How It Works

Before, the system did not know that 1 kg is 1000 gm. Flour came in 50 kg bags but was issued in grams. Someone had to convert by hand, and one typo made the balance and costs wrong. The Units screen had Amount and Other Unit fields, but nothing used them. A Conversions screen replaces them. This page covers the conversions screen, the shared rules, and what differs by screen.

The Conversions Screen

Each row is From Unit, To Unit and Factor. For example kg → gm = 1000, or lb → kg = 0.4536.
  • A conversion applies to every item using those two units.
  • One direction covers the reverse. Define kg → gm and the system knows gm → kg.
  • The screen starts empty. Add the conversions you need, row by row or by import.
  • Filter by unit to find it on either side. Filtering by kg returns kg → gm and lb → kg.
  • Permissions are the same as the Units screen.

How a Conversion Is Used

A conversion works only when a row exists for that exact pair. There is no chaining. Having kg → gm and gm → mg does not give you kg → mg. Add that as its own row. Every unit dropdown lists only the units that have a row linking them to the item’s Store unit.

Editing a Conversion

  • You can edit the factor only while no transactions use it.
  • The From and To units lock once the conversion is used:
    • Any purchasing line uses either unit for a matching item. Unapproved documents count too.
    • A recipe ingredient line uses a unit other than the item’s Store unit.
  • You cannot change the units of a used conversion: Cannot change units for a conversion already used in transactions.
  • You can change the units of an unused conversion freely.
  • Every change is kept in the conversion’s history.

Import and Export

You can export and import conversions to set them up in bulk.
  • Importing an existing pair updates its factor.
  • Import never changes the units of an existing pair. Help text on the screen says so.
  • Import checks the same rules as the screen, including the lock from recipes.

One Unit on the Item

  • Base unit is removed from the Item screen. The Items listing shows Store unit instead.
  • Creating and cloning an item both use the Store unit only.
  • Base unit stays in the database with the same value as the Store unit. The POS is not affected.

The Store Unit Is Protected Once Used

You cannot change an item’s Store unit once it is on a transaction line. Quantities are saved as numbers with no unit. Changing the unit later would change the item’s whole history. 500 grams would become 500 kg.
  • The field becomes read-only with an explanation.
  • An item with no transactions can still have its Store unit changed.

Validation Messages

Rules That Apply on Every Screen

Purchasing, stock transfer and stock usage lines all work the same way once you pick a unit. Recipe lines follow the first three rules below: choosing a unit, what you typed, and the read-only figures. Points for one screen only are under What Differs by Screen. Before, the Unit column was ignored. Your number was read in the Store unit, and so was every read-only figure. Someone working in grams saw Available 4.536 and moved 1000 times too much.

The Examples Below

Every example uses one setup. Two factors are recorded: The item’s Store unit is kg. Store A has 4.536 kg at 100.00 per kg. The two rows point in opposite directions, and both work. One factor covers both directions.

Choosing a Unit

Pick an item and its Store unit is selected by default.
  • The dropdown offers kg, gm, lb: the Store unit plus every unit with a factor to it.
  • An item with no conversions offers only its Store unit.
  • A conversion recorded the other way still counts. It does not reach any further. There is no chaining.
  • Units from an unrelated conversion never appear.
  • You cannot select a unit with no conversion. If one comes in by import or API, the line gets an error.

What You Typed Is Never Rewritten

Changing the unit keeps your quantity and price as you typed them. Type 2, switch to gm, and the line still shows 2. It now means 2 gm. Requested Qty and Approved Qty never change by themselves. The line total is quantity × price as shown. So 3 oz at 2.83495 gives a total of 8.50485.

The Read-Only Figures Follow the Selected Unit

Every figure you do not type changes to the unit you picked. When quantity goes up, price goes down, and the other way round. Switching the kg item to gm (recorded kg → gm): Switching to lb (recorded as lb → kg, used the other way): Converted figures are rounded to five decimals. The read-only columns are different on each screen:

What Is Saved, and When It Converts

  • Every save keeps the line in the item’s Store unit, Draft included. Type 2000 gm and 2 kg is saved. Type 2 lb and 0.9072 kg is saved.
  • On a purchasing line, 2 gm is saved as 0.002 kg, with the price per Store unit.
  • Approving converts nothing. It moves, issues or posts what was already saved.
  • Lines convert before any check across rows. 2000 gm plus 1 lb counts as 2.4536 kg, never as 2001.
  • Changing the unit on a line changes nothing in stock.
  • Recipe lines are different. They are saved as you wrote them. See Recipes and POS Deduction.

Reopening, Editing, and Cloning

  • A document saved in the Store unit reopens with no change.
  • A document saved in another unit reopens in that unit, and every figure changes with it.
    • Saved in gm: Unit gm, Requested Qty 2000, Available 4536, Price 0.10.
    • Saved in lb: Unit lb, Requested Qty 2, Available 10, Price 45.36.
  • Read-only documents show converted figures, not the saved numbers.
  • You can change the Unit while the document is a Draft. It locks after that.
  • Cloning copies the unit and the quantity as shown. Cloning a 2000 gm line gives 2000 gm, not 2.

Printouts, Exports, and Reports

  • Printouts show the quantity and unit as chosen on the document. Purchasing printouts also show the unit price as chosen.
  • The CSV export on transfers and usages shows the quantity, Unit, Available and Value as chosen.
  • Each line keeps the unit you chose. A document reopens and prints as entered.
  • Reports do not change. They always show the Store unit and store quantity. Totals across kg, gm and lb stay easy to compare.
  • Minimum and maximum quantities stay in the Store unit everywhere.

Documents Saved Before This Change

Everything saved before this change, drafts included, is read as already in the item’s Store unit. Nothing is converted, no balance changes, and no document is blocked.

What Differs by Screen

The rules above cover all six document types. The points below belong to one screen only.

Purchasing

You choose the unit once. The next documents copy it:
  • Purchase Request — you pick the unit on the line.
  • Purchase Order — copies the requested unit and price. The unit is read-only. The ordered quantity is checked against the approved request as a number only. A different unit would let 3000 gm through against 2 kg approved.
  • Receiving Order — raised from a Purchase Order, copies it the same way.
  • Return Request — copies the unit of the receipt it returns against.
Ordering and posting:
  • Partial ordering leaves the right amount. A request for 2000 gm, ordered 1200 gm, leaves 800 gm still to order. It is saved in the Store unit.
  • One order can mix units. A Purchase Order built from several requests keeps each line in its own unit.
  • Receiving posts the converted quantity. Receiving 2000 gm of a kg item adds 2 kg. Stock is valued per Store unit. At 0.10 per gram, the balance stays at 100.00 per kg.
  • A Return Request gives stock back the same way. Returning 1000 gm removes 1 kg.
  • Picking the unit again on an approved Receiving Order only changes the read-only figures. It does not post stock twice.
  • A direct receiving order creates a stock usage, with the unit and quantity from the receipt.

Stock Transfers and Stock Usage

Pick the stores, then the Item. The Unit fills in with the Store unit, kg, and Available shows 4.536. Approving a transfer moves the saved quantity between stores. Approving a usage issues it out. Five things differ:
  • Where Available comes from. On a transfer, it is the From store’s balance. On a usage, it is that row’s own From store. A usage picks its store line by line.
  • When the Unit locks. On a transfer, when it is sent for approval. On a usage, once it leaves Draft. You can never edit it on a usage created by a direct receiving order.
  • Editing after approval. Can edit approved Transfer lets you change Approve Qty on a transfer, in the line’s unit. Changing an approved 2000 gm line to 3000 moves 3 kg, not 3000. It unlocks Approve Qty only, never the Unit. Usages have no such permission.
  • Usages the system creates for you. The system can create a usage with no form. Transfers have nothing like this:
    • Direct receiving order — uses the unit on the receiving order line. A receipt of 2000 gm creates a usage showing 2000 gm. It prints in that unit and takes Value from the receipt. Both post in the Store unit. The store balance ends where it started.
    • Store settlement — uses the item’s Store unit. Settlement creates its lines in the background with no form.
    • POS sale of a recipe dish — uses the unit the recipe was written in. See Recipes and POS Deduction.
    • POS sale of an item with no recipe — uses the item’s Store unit. A paid invoice creates an approved usage that posts right away.
    • POS refund or void — a second usage with negative quantities gives the stock back. The two usages cancel out.
  • The negative-stock message. Before, it showed no unit. Both screens now show one, but in different units:
    • Stock Transfers — the Item X has only 4536 gm available. You cannot approve 6000 gm…
    • Stock Usage — The total quantity for item X from store Y across all rows is 6 kg, but only 4.536 kg is available.

Recipes and POS Deduction

Before, the unit on an ingredient line was ignored. For butter stocked in kg, 200 gm was read as 200 kg. On the recipe screen:
  • The column is now called Unit. It was called Store unit. It shows the unit this recipe is written in.
  • Pick an item and its Store unit is selected. The dropdown follows Choosing a Unit.
  • The line is saved as you wrote it. Save 200 gm and it reopens as 200 and gm, not 0.2 kg.
  • Unit cost changes to the selected unit. 100.00 per kg shows as 0.10 per gram.
  • Unit cost is always the ingredient’s current stock price. When the stock price changes, the same recipe shows new figures.
  • Consumption, Profit Generating and non-stock items all work the same way. A non-stock ingredient has no price. Its Unit cost and Value show 0.
Example: Béarnaise makes 4 portions, with a profit factor of 3. It has one line: 200 gm of Butter. Butter is stocked in kg at 100.00 per kg. Switch the line back to kg and Unit cost shows 100.00. The 200 you typed does not change. When a dish is sold at POS:
  • Each ingredient is converted to the Store unit first, then divided by the portions.
  • 200 gm is 0.2 kg. Over 4 portions, one Béarnaise uses 0.05 kg of Butter.
  • The usage shows the recipe’s unit. It shows 50 gm of Butter and posts 0.05 kg.
  • A line’s unit may stop converting to the item’s Store unit. The usage then uses the item’s current Store unit. This happens when the Store unit changed after the recipe was written.
Other recipe rules:
  • A recipe cannot have the same item twice for the same store. 200 gm of Butter and 1 kg of Butter on one recipe cannot be saved.
  • Recipes that already have an item twice cannot be saved again. A one-off check lists them.
  • Recipe import checks the unit on every ingredient row. It must be the Store unit, or a unit with a direct conversion to it.
  • An import row with any other unit gets an error that names the row. Import also blocks the same item twice for one store.
  • Import can create or update a recipe with the Store unit or a conversion unit.
  • A recipe line in a unit other than the Store unit locks that conversion. See Editing a Conversion.