The Cost You Cannot Go Back and Change
Our system holds one cost basis — weighted average — and it never goes back. A correction is a new transaction, not a restatement. In a stable currency that is a footnote. Where prices move quickly, it decides what your margin appears to be.
Two questions decide how a stock system reports profit, and most buyers never ask either of them. Which cost does it attach to the unit that just left? And can that cost ever be changed afterwards?
Our answers, up front
Weighted average, always — there is no method choice and no FIFO engine. And no: a cost, once recorded, is never restated. Every correction is a new movement dated today, so history is append-only. Both are defensible designs. Both stop being invisible the moment prices move faster than your stock does.
What the cost basis actually is
Every item carries a weighted average cost. When goods come in, the average is recalculated across what you now hold. When goods go out, they leave at that average. There is one basis, it applies to every item in the catalogue, and there is no setting anywhere that changes it — no FIFO, no LIFO, no standard cost, no per-item choice.
Where an item has never been costed, the system falls back to its buying price rather than treating a zero average as free, which is a small and correct detail worth noticing. And landed cost — freight, duty, insurance, handling, local transport — is apportioned across the receipts on an order in proportion to what each batch actually holds, so the total attached to stock equals the bill you were sent. That part is properly done.
What "no re-costing" means
Suppose a freight invoice arrives six weeks after the goods, and it is larger than the estimate. Or a supplier issues a price correction. Or somebody keyed a cost with a decimal in the wrong place and it was caught in a review two months later.
In a system with retrospective re-costing, you restate: the historical cost changes, the units that already left are revalued, and the margin reported on those sales moves to what it should always have been. In ours, you cannot. The correction is a new transaction, dated when you made it. The old movements keep the old cost forever.
History is append-only. That is a feature for auditability and a liability for accuracy, and which one it is depends entirely on how fast your prices move.
We would defend the auditability side seriously. A ledger whose past can be rewritten is a ledger nobody can rely on, and a great deal of the value of a movement history is that it says what it said last week. The cost of that position is precision, and the cost is small in a stable currency.
Why a fast-moving price environment changes the arithmetic
Weighted average is a smoothing function. It blends what you paid across a period into one number. In a stable environment the blend is close to every input, so nothing is lost. When input prices rise quickly, the blend sits below the most recent purchase — sometimes far below — and the unit you sell today is costed against money you spent a while ago.
One item, three purchases, one sale — in a rising market
The figures are invented and round, deliberately. The point is the mechanism and its direction: in a rising market, weighted average reports a profit you cannot spend, because part of it is the money you need to buy the stock back. Nothing here is a defect — this is what weighted average does, everywhere, by definition.
Add the second constraint and it compounds. If a late freight invoice or a supplier correction lands after those sales, the cost that was already too low stays too low forever on the records that mattered, and the adjustment appears in a later period where it explains nothing.
What to do about it
Four practices for costing in a fast-moving market
- Manage on replacement cost, price on replacement cost, report on weighted average. Keep the two numbers apart in your own head and in your commercial rules. The system will give you the second; the first is a decision, and it is the one that keeps you solvent.
- Close the landed-cost loop fast. The apportionment is exact once the costs are attached; the exposure is the gap between the goods arriving and the freight invoice being entered. Shorten that gap and most of the re-costing problem disappears, because there is nothing left to restate.
- Buy in smaller, more frequent lots where the cash allows. This is a commercial decision that also happens to fix a reporting one: a shorter averaging window means the average sits closer to today.
- Watch the gap, not the margin. Track the difference between the weighted average and your latest purchase price per item, monthly. When it widens, your reported margin is drifting away from your real one, and that is knowable from data you already hold.
A costing method is a build, and it is a well-understood one
Neither of the gaps on this page is a mystery. A FIFO cost-flow engine and a retrospective re-costing path are both standard pieces of inventory accounting with known shapes, and the data they need — dated receipts, per-batch costs, per-batch landed-cost allocations, and complete movement history — is already in the product and already correct.
FIFO cost flow
Batches already carry their own unit cost and their own allocated landed cost, and allocation already runs oldest-first for expiry. The cost-flow engine is the missing consumer of data that exists.
Retrospective re-costing
A late freight invoice restating the cost of a specific receipt, and revaluing what has not yet been sold. The harder half is the policy question of what happens to units already gone, and that is a conversation before it is code.
A replacement-cost view
The smallest of the three and possibly the most useful: a report showing weighted average against latest purchase price per item, so the gap is visible before it is a surprise.
We will not name a date for any of these on a public page. Describe your requirement and we will come back with a written scope, a timeline and a cost before you commit to anything.
Scope a costing changeWhat AWRA OpsHub does today
- Weighted average cost per item, recalculated on receipt, with a fallback to the buying price where an item has never been costed rather than treating zero as free.
- Landed cost apportioned across every settled receipt on an order in proportion to what each batch holds, so the allocated total equals the invoice.
- Per-batch unit cost and per-batch landed-cost allocation, visible through the traceability view.
- One cost basis shared by the point of sale, the journal, margin analytics and the stock-integrity check — so those four cannot disagree with each other.
- Complete, dated movement history behind every cost figure.
What it does not do
- Any choice of costing method. There is no FIFO engine, no LIFO, no standard cost and no per-item setting.
- Retrospective re-costing. A correction is a new transaction dated today; historical movements keep their original cost permanently.
- Revaluation of stock already sold when a late cost arrives.
- A replacement-cost or current-cost view anywhere in reporting.
- Inflation accounting of any kind, in any jurisdiction.
Not ours, by choice
- Weighted average is a standard, defensible basis and it is correctly implemented here. The claim on this page is that it is the only one, and that the past cannot be restated.
- Append-only history is a deliberate position, not an oversight. We would rather argue for it than quietly allow the past to move.
- No Turkish rate, index or statutory requirement is cited anywhere on this page, because we do not maintain that and will not imply we do.
Four questions that expose a costing engine
Which costing methods do you support, and where is the switch?
A good answer sounds like
A named list and a screen.
What it actually means
Ours is one method and no switch. A vendor who lists four should be asked to show the setting, because a method named in marketing is not a method implemented in code.
A freight invoice arrives eight weeks late. Walk me through it.
A good answer sounds like
Either a restatement of the original receipt, or an honest "it becomes a new cost today".
What it actually means
This single scenario separates a re-costing engine from an append-only ledger faster than any feature list.
Can I see weighted average against my latest purchase price, per item?
A good answer sounds like
A report.
What it actually means
If not, the drift between reported and replaceable margin is invisible until somebody works it out by hand.
What cost does the till use?
A good answer sounds like
The same one as the ledger.
What it actually means
Two cost bases in one product is a real defect and a common one. Ours were unified deliberately; ask whether theirs were.
Talk about the gap, not the method
The useful conversation is not FIFO versus weighted average. It is how far your average has drifted from your replacement cost, and what that is doing to your pricing. Bring us an item list and we will look at it with you.
Look at the numbersFrequently asked questions
Does weighted average understate or overstate profit?
In a market where your input prices are rising, it overstates the margin you can actually repeat, because the cost attached to the sale is older and lower than the cost of replacing what you sold. In a falling market the effect reverses. In a stable market the difference is negligible, which is why the question rarely comes up.
If I cannot re-cost, how do I correct a mistake?
With a new movement, dated when you make it, carrying a reason. The original record stays as it was. That gives you an auditable trail of what was believed and when, at the cost of a period boundary that does not line up with the event.
Does the landed-cost apportionment have the same problem?
No, and it is worth separating the two. Once landed costs are attached to an order they are spread across every settled receipt in proportion to what each batch actually holds, so the arithmetic is exact and the total matches the bill. The exposure is timing — costs attached after the goods have been sold cannot reach back to those sales.