M MahirRMS Docs
Ctrl K
Inventory

Costing

Every consumption, transfer and count carries a value, and this page is where those values come from. It's also the page to read before asking "why did my food cost jump?"

The method

Each business chooses its costing method: FIFO (consume oldest stock's cost first), LIFO (newest first), or moving average (every receipt re-averages the cost, consumption uses the current average). A companion setting can value daily consumption by a different method than purchases are layered — most businesses keep them the same; the split exists for those whose accountant wants it.

Choose once, before trading, with your accountant. The method changes valuations everywhere.

How it works underneath

Every stock arrival — a purchase, an incoming transfer, production output, a plus adjustment, opening stock — creates a cost layer: this quantity, at this cost. Consumption draws layers down in method order, and every consuming line remembers exactly which layers it drew from and at what cost. Under moving average there are no layers to pick — each consumption freezes a snapshot of the average at that moment.

This linkage is why the numbers hold up under audit: any sold item, any consumption line, any wastage entry can show precisely where its cost came from.

Average cost history (in the stock reports menu) is the audit trail for moving-average businesses: every event that moved an ingredient's average — from what, to what, by which transaction, by whom. The answer to "why did the average jump" is a lookup, not an investigation.

When a price was wrong: automatic correction

Suppliers correct invoices; clerks fix typos. When a purchase (or transfer, or production) price is edited after its stock was already consumed, everything downstream was costed off the old number. MahirRMS re-costs the downstream automatically: the correction follows the layer linkage through every consumer — sales, consumption, adjustments, even through transfers into other branches, hop after hop — recomputing costs and rewriting the affected ledger vouchers. Consumers in a closed financial year are left untouched (their books are final; the difference surfaces in the current period instead).

You edit the price; the system repairs history. No manual recost, no "we'll fix it at month end".

Negative stock

Selling can outrun paperwork — the delivery that arrives at noon but is entered at three. The overselling setting decides the posture:

  • Strict (default): a consumption that would go below zero is refused, naming the ingredient and the shortfall.
  • Permissive: consumption proceeds, stock goes negative, and the uncovered quantity is temporarily costed at zero — visibly, not silently. When the stock actually arrives, the system self-repairs: the uncovered consumption re-attaches to the new layer and re-costs retroactively, vouchers included.

Day-close consumption always runs permissive — a stuck day close at 1 a.m. over a data-entry lag would be worse than a self-healing negative. Manual minus adjustments and production stay strict — those describe physical acts that can't consume stock that isn't there.

Opening stock

Initial quantities arrive by spreadsheet import (quantity and value per ingredient — unit cost derived from them, creating proper opening layers) or, for small corrections, by plus adjustments with the opening correction reason. Count physically at cut-over — the reconciliation discipline applies from day zero.

Last updated August 19, 2026