Skip to main content
Version: v1.0.0

Costing Model

The costing model decides the unit cost attached to every physical stock movement, and that one decision flows outward: into inventory valuation, into order financials, and into any figure downstream that is denominated in money. It is platform-wide rather than an inventory feature, and it rests on one principle:

Cost is derived, never stored. The ledgers hold movements; source documents hold prices. Every cost you see is computed from those two on the fly, so a corrected price or a re-dated delivery flows into every downstream figure the next time it is read. There is no stored cost to go stale and no recalculation to run.

Which model does the deriving is an organization setting, not a code path. Switch it and every cost on the platform reads under the new model, past movements included.

The four models

Every model plays the same game: arrivals stack up as layers of stock, each carrying the quantity and unit cost it arrived with, and every outflow draws from those layers. The models differ only in the order the layers are taken.

ModelDraws firstIn practice
FIFOThe oldest arrivalThe default assumption of most stockrooms
LIFOThe newest arrivalRising-price environments
FEFOThe soonest-expiring lotPerishables; needs expirations on arrivals
Weighted averageNo order; every draw takes the blended pool costThe simplest story for finance

How a cost is derived

Costs are computed per item, per location, by replaying that slice of the ledger in business order:

  1. Each arrival seeds a layer at its source cost: a purchase receipt at the price on the receipt line, a manual count adjustment at the current pool cost so it never distorts the running average.
  2. Each outflow draws layers in the model's order. Its unit cost is the weighted cost of what it drew, and the drawn quantity leaves the layers.
  3. What remains in the layers is the on-hand valuation.

Because the replay follows the business timeline, movements carry a real date and time and same-day activity costs in the order it actually happened: receive in the morning, ship in the afternoon, and the shipment draws the morning's stock.

Produced goods roll up

A manufactured item's cost is a recursion. The finished good arriving from a work order or production order costs what it consumed plus what the making cost: each consumed input is costed by the same replay (down to purchase receipts as the leaves), and the order's conversion or production cost is added per unit. Reading a sales order's margin therefore drives the whole chain, from the sale back through production to the original purchases, in one derivation.

Cost travels through transfers

A transfer does not price stock; it relocates it. The arrival at the destination inherits exactly the cost layers its shipment drew at the source, each lot with its own cost and expiration, valued as of the moment the goods left. Later activity back at the source, even a later transfer returning the same goods, can never reach back and change what already departed. Cost, lot, and expiration all travel together this way; the Lots & Expirations page covers the identity half of that story.

What sets the cost at each step

StepThe cost that enters the layers
Purchase receipt (material or finished good)The actual unit cost on the receipt line
Work order receiptConsumed inputs, replayed, plus the conversion cost per unit
Production order receiptConsumed materials, replayed, plus the production cost per unit
Transfer arrivalThe source layers it drew, as of departure
Manual adjustment (up)The current pool cost at that location
Sale or consumptionNothing; outflows only draw

Two kinds of money deliberately stay out of unit cost. Order-level costs (shipping, setup, broker fees, fulfillment, and the like) live on their order and feed that order's financials without being smeared across units. And estimates never enter the layers: an ordered-but-unreceived line carries an expected cost on the order, but only the received actuals seed stock.

Where costing lands

ConsumerWhat costing drives
InventoryOn-hand valuation, disposal and waste value
Purchase ordersThe received cost that seeds the layers
Work / production ordersThe produced-good rollup
Sales orders / receiptsCost of goods sold and margin
ReportingAny money-denominated total