Inventory

What you hold, and what it is actually worth.

FIFO cost layers, batches and expiry, multi-site, cycle counts and a valuation that ties to the control account — because a stock figure that does not tie is not a figure.

Stock · Mandaue warehouseFIFO layers
Milk 1L × 123 layers1,840 cs
Cooking oil 1L2 layers960 cs
Rice 25kg1 layer412 sacks
Corned beef 150g4 layers2,880 cs
Count variancelast cycle count0.4%within
Negative stockblocked by the engine0none
COST LAYERSMilk 1L × 12 · Mandaue
640 cs @ 724.0014 Jul
800 cs @ 731.5002 Aug
400 cs @ 736.4028 Aug
Issue 40 cstakes the oldest first
COST OF ISSUE28,960.00
On hand1,800 cs · ₱1,319,140
Never an average, never a guess
What it is

Inventory across every site, costed in layers, traceable by batch, counted without closing, and reconciled to the ledger.

How it works

What it actually does.

01

Cost layers, not an average nobody can explain

Stock value is the sum of the layers that are actually on the shelf. It will not match a spreadsheet that uses the latest price paid, and the ledger is the one that is right.

  • FIFO by default, with the method a setting rather than a rewrite.
  • Landed cost carried onto the line that incurred it.
  • The unit a price is per is not always the unit you count in — and a mismatch there prices everything wrong, silently.
Pork belly · on hand 148kg₱62.40/kg average
Layer 1 · 12 Sepoldest, goes first48kg at ₱60.10
Layer 2 · 14 Sep52kg at ₱62.00
Layer 3 · 16 Sepnewest48kg at ₱65.20

Three deliveries at three prices. A single average cost hides which one you are actually eating.

02

Counted without closing the shop

Cycle counts by aisle, by category or by value band. The book figure is not shown while counting, deliberately, and the variance posts as its own entry so the original movement stays exactly as recorded.

  • Counts weighted by value — the lines worth counting get counted often.
  • Every variance carries a peso figure at cost.
  • Transfers have two independent sides, which is what makes a discrepancy visible.
Movements today
07:12Received · Danao Meats48kg, DR 9914+48kg
11:40Issued to kitchenKusina Ayala, batch 24-0917−22kg
15:02Transfer outTo Tisa Lounge−18kg
18:30Wastage loggedTrim, with a reason−2.4kg

Every movement costed at the layer it actually came off.

03

Stock that arrived from nowhere

Every movement that put stock on a shelf should have something taking it off somewhere. This is the report you want empty: when it is not, its total is exactly how much the inventory control account is out by.

  • Stock with no lot number, listed — because it cannot be traced later.
  • Near expiry with a horizon, not a surprise.
  • Quarantine that actually blocks a pick, enforced in the database.
Questions

The ones people ask about this.

Why does our stock value differ from our spreadsheet?

Almost always because the spreadsheet uses the latest cost and the ledger uses the layers actually on hand. Open any item and the layers are listed.

Can we count without stopping trading?

Yes — that is what cycle counts are for. A full close-and-count is available but rarely necessary once counts are weighted by value.

Does it handle batches and expiry?

Yes, from receipt, and the dates travel with the stock through production and out to the customer.

What about stock in transit between branches?

It has left the sending site and not yet arrived at the receiving one, and it is visible as exactly that.

See it on your own figures.

Bring one ordinary day from your business and we will run it through in front of you, on your own items and your own prices.