Stock
Inventory
Menu: Inventory section · Who: owner, branch manager
Stock lives per branch. Both the quantity and the cost are kept per branch, so one shop buying cheese dear does not move another shop's food cost.
Set up in this order: Units → Suppliers → Items → Purchases.
Units

Menu: Inventory → Units
How stock is measured, and how one measure converts into another. Every company starts with a standard set (kg, g, ltr, ml, pcs, dozen, carton); rename or add as you like.
| Field | Notes |
|---|---|
| Name / Short code | "Kilogram" / kg |
| Converts to | The base unit this one is expressed in. g converts to kg |
| How many | 0.001 — one gram is 0.001 kilos |
| Decimals shown | 3 for weights, 0 for pieces |
A unit converts one step, straight to a base unit. You cannot chain g → kg → tonne, and two units cannot point at each other. That keeps every conversion exact.
Suppliers

Menu: Inventory → Suppliers
| Field | Notes |
|---|---|
| Name | Unique in your company |
| Contact person, Phone, Address | |
| NTN, STRN | Their numbers, for your input tax records |
Items

Menu: Inventory → Items
An item is a thing on a shelf. It is not the same as a product: a product is sold, an item is stocked.
| Field | Notes |
|---|---|
| Name | "Mozzarella Cheese" |
| Kind | Ingredient (used by recipes), Sellable stock (sold as-is), Packaging (boxes, bags) |
| Unit | How it is stocked — buy in cartons, stock in pieces |
| SKU | Optional |
| Alert level | Below this it shows as Low on the stock page |
| Track batches and expiry | Per item, if your company has batch tracking on |
For retail, ticking Track stock on a product creates its sellable item for you. You can still rename it here.
Stock on hand


Menu: Inventory → Stock on hand
What is on the shelf at the branch in the top bar, valued at that branch's own average cost. Four figures at the top: stock value, items tracked, low stock, below zero.
Click any row to see its ledger — every movement that made the number what it is, with the balance and average cost after each one. If a number looks wrong, the answer is always in the ledger.
stock_ledgeris the only truth about stock. The on-hand figure is a running balance written at the same moment as the ledger row, never edited by hand.
Production
Menu: Inventory → Production. A batch the kitchen made: raw material off this branch's shelf, the finished item onto it, priced by what it actually consumed. It is how a commissary fills the shelf a shop later sells from — and how a shop that makes its own dough records it.
Only items with Made in batches on (and a recipe) can be produced.
Purchases


Menu: Inventory → Purchases · This is also how you enter opening stock.
| Field | Notes |
|---|---|
| Supplier | |
| Supplier invoice # | Their bill number, for your records |
| Expected delivery | The day the supplier promised. Optional — leave it empty if nothing was agreed |
| Lines | Item, quantity, and the price — see below |
| Batch number / Expiry date | Per line, when the item tracks batches |
| Freight and other charges | Spread across the lines by value and added to cost |
| Sales tax paid | Your claimable input tax — recorded, but not part of item cost |
Price: rate or amount paid
A shop bill says "500 g for Rs 300", not "Rs 0.60 a gram". So a line takes either:
- a rate per unit, or
- the amount paid for that line.
Whichever you type, the other is worked out for you, and the amount you typed is the truth: 7 kg for Rs 1,000 stores a rate of 142.8571/kg and a line total of exactly 1,000.00, however the rate rounds. The browser never divides it itself.
At the bottom you see Goods, Freight and charges (spread into cost), Input tax (not part of cost) and Paid to supplier.
Order first, goods later
Saving a purchase never touches the shelf. An order is usually placed days before the van turns up, so Save purchase order records what you asked for and nothing else. It sits as a Draft, and the list shows what you ordered against the Expected day — in red, marked overdue, once that day has been and gone and the goods still have not.
A draft is edited freely: open it and press Edit. Quantities change on delivery, a rate turns out different, the supplier moves the date — all of it is ordinary editing, because nothing has been posted yet.
Receiving
A purchase is a draft until you receive it. Open it once the goods are actually in and press Receive into stock — that is what posts the ledger and moves the weighted average cost:
old: 10 kg @ 900 = 9,000 new: 5 kg @ 1,100 = 5,500
15 kg @ 966.67
What was promised stays on the document afterwards; what actually happened is the day it was received.
Correcting a received purchase
A received purchase is corrected, never quietly edited. Open it and press Correct (the button only appears when the purchase can still be corrected), fix the lines and give a Reason for the correction: the ledger it posted is reversed at the cost the goods came in at and posted again from the corrected lines, under the same document number, with the before/after totals kept on the record. The purchase then shows a Corrections list — every correction, who made it and what changed.
It is refused if the day is closed, or if the goods have already been sold or used — that case is a stock adjustment, not an edit.
Adjustments


Menu: Inventory → Adjustments
Stock leaving or arriving for a reason that is not a sale or a purchase.
| Field | Notes |
|---|---|
| Item | |
| Reason | Wastage, Damage, Expiry, Theft, Correction, Opening |
| Quantity | Negative takes stock off, positive puts it on |
| What happened | A note — this is what you will read in the wastage report next month |
Transfers


Menu: Inventory → Transfers
Moving stock from the branch in the top bar to another.
A transfer is two-sided: sending deducts the source branch immediately (the stock is "in transit" and belongs to neither shelf), and the destination credits it when it is received. The sending branch's cost travels with the goods, so the receiving branch's average is not distorted.
Stock counts

Menu: Inventory → Stock counts
- Open a count and choose what is being counted — everything, one kind, or a few items.
- The sheet freezes what was expected at the moment you opened it.
- Count the shelf and type what you actually found.
- Post it.
Only the variance is posted, as one ledger row per item. The sheet keeps the expected figures, so you can always see what the difference was and when.
This is also how you fix negative stock after a day of selling with
Allow negative stock switched on.