Two businesses buy identical materials, sell identical products at identical prices, and report different profits. Neither has done anything wrong. They have chosen different inventory valuation methods, and in a period of moving prices that choice flows straight through cost of goods sold into the profit line.
Valuation matters for three reasons at once: it sets the inventory figure on your balance sheet, it sets cost of goods sold on your profit and loss, and through both it affects taxable profit. For a business holding meaningful stock, it is one of the few accounting policy choices that changes the numbers you manage by.
The identity everything hangs on
Opening inventory + purchases - closing inventory = cost of goods sold
Purchases are a fact — they are on invoices. Opening inventory came from last period. So the only variable is how you value what remains at the end, and every euro you do not put in closing inventory becomes a euro of cost of goods sold, reducing reported profit. Valuation method is simply the rule that decides which costs stay on the balance sheet and which are released into the P&L.
The two methods you will actually use
First in, first out (FIFO)
FIFO assumes the oldest units are sold first. Cost of goods sold is drawn from the earliest purchase layers, so closing inventory is valued at the most recent prices.
- Closing stock reflects something close to current replacement cost.
- When prices rise, cost of goods sold is lower and reported profit is higher.
- It matches how perishable and dated stock physically moves, which makes it intuitive to explain.
- It requires tracking cost layers — which batch at which price — so it needs a system that maintains them.
Weighted average cost
Weighted average pools cost across all units available and applies a single average to everything. Under a perpetual system the average is recalculated after each receipt, which is usually called moving average.
Weighted average unit cost = total cost of goods available / total units available
- Simple to maintain and hard to get wrong.
- Smooths price volatility instead of letting it swing period profit around.
- Well suited to interchangeable bulk inputs — flour, resin, fasteners, fabric from a continuous roll — where identifying a specific batch is meaningless anyway.
- Closing inventory lags current prices when costs are moving quickly.
LIFO is not an option in most of the world. Last in, first out is prohibited under IAS 2 and therefore across the EU and every jurisdiction on IFRS-aligned standards. It survives under US GAAP. It appears below purely to show the size of the effect.
The same period, valued three ways
A workshop buys a component through a period of rising prices and sells 300 units at EUR 20 each.
| Movement | Units | Unit cost | Value |
|---|---|---|---|
| Opening inventory | 100 | EUR 10.00 | EUR 1,000 |
| Purchase, March | 150 | EUR 12.00 | EUR 1,800 |
| Purchase, May | 120 | EUR 14.00 | EUR 1,680 |
| Available | 370 | EUR 4,480 | |
| Sold | 300 | ||
| Closing units | 70 |
Applying each method to exactly those movements:
| Method | Cost of goods sold | Closing inventory | Gross profit | Gross margin |
|---|---|---|---|---|
| FIFO | EUR 3,500.00 | EUR 980.00 | EUR 2,500.00 | 41.7% |
| Weighted average | EUR 3,632.43 | EUR 847.57 | EUR 2,367.57 | 39.5% |
| LIFO (illustration only) | EUR 3,780.00 | EUR 700.00 | EUR 2,220.00 | 37.0% |
FIFO takes cost of goods sold from the oldest layers: 100 at EUR 10, 150 at EUR 12, and 50 at EUR 14. Weighted average applies EUR 4,480 / 370 = EUR 12.108 to all 300 units sold and to the 70 remaining.
The spread between FIFO and weighted average here is EUR 132 of gross profit and 2.2 margin points on a single component in a single period. Multiply across a full materials list and several periods and it is no longer a rounding difference — it is the reason your management accounts and your year-end disagree.
One structural point: the difference is timing, not value creation. Every euro of purchase cost eventually reaches cost of goods sold. Valuation decides when, which is exactly why consistency matters more than which method you pick.
Choosing between them
| Your situation | Usually points to |
|---|---|
| Perishable, dated, or batch-traced stock | FIFO |
| Interchangeable bulk materials | Weighted average |
| Volatile input prices you do not want swinging monthly profit | Weighted average |
| You need closing stock near replacement cost | FIFO |
| Serialised or high-value individual items | Specific identification |
| Limited admin capacity, no system maintaining cost layers | Weighted average |
For a workshop that both buys bulk inputs and produces finished goods, using weighted average for raw materials and FIFO for finished goods is perfectly acceptable — IAS 2 requires consistency for inventories of a similar nature and use, not one method for everything. Just document the policy and stick to it.
Two rules that override the method
Value at the lower of cost and net realisable value
Whatever method produced your cost figure, inventory cannot be carried above what you can actually sell it for, less the costs of completing and selling it.
Net realisable value = expected selling price - costs to complete - costs to sell
If a line has been superseded, damaged, or simply will not move at its intended price, it must be written down in the period you know that, not the period you eventually dispose of it. Obsolete stock carried at full cost is one of the most common overstatements in small business balance sheets — and the write-down is not optional.
Include the right costs in the first place
The cost of inventory is more than the invoice line. Under IAS 2 it includes:
- Purchase price, less trade discounts and rebates
- Import duties and non-recoverable taxes
- Inbound freight and handling to bring goods to their present location and condition
- For manufactured goods, direct labour and a systematic allocation of production overhead
It excludes selling costs, storage of finished goods, abnormal waste, and administrative overhead. Businesses that omit inbound freight understate inventory and overstate current-period costs — and, more practically, they understate what their products cost to make, which corrupts pricing. This is the same overhead absorption question covered in costing a handmade product, seen from the accounting side.
Perpetual or periodic
A periodic system values inventory by counting at period end. It is cheap and it works, but you are blind to stock position between counts, and any shrinkage disappears silently into cost of goods sold.
A perpetual system updates on every receipt and issue, so quantity and value are always current. It is what makes reorder points possible, and it lets a physical count measure shrinkage instead of merely establishing the balance.
Count physically regardless. Perpetual records drift through miscounts, unrecorded samples, breakage, and returns put back on the shelf without paperwork. Cycle counting — a rolling subset each week, weighted toward high-value and fast-moving lines — is far more sustainable for a small team than one exhausting annual count, and it catches errors while they are still traceable.
Where spreadsheets fall over
Valuation is where inventory spreadsheets stop being adequate. Maintaining FIFO layers by hand means tracking every receipt at its own cost and consuming them in order across hundreds of movements. A moving average needs recalculation on every single receipt. Both are mechanical, and both are exactly the kind of mechanical process a human file drifts on — one missed receipt and every subsequent figure is wrong, with nothing to flag it.
The symptom is familiar: a stock valuation nobody quite trusts, reconciled once a year under time pressure, and a gross margin that moves for reasons nobody can explain. The fix is having receipts, issues, and production consume stock through one ledger that applies the policy automatically, so the valuation is a consequence of recorded movements rather than a separate exercise.
Practical rules
- Pick FIFO or weighted average per inventory category, write the policy down, and apply it consistently.
- Include inbound freight, duties, and production overhead in cost; exclude selling and admin.
- Review for net realisable value at every reporting date and write down what will not sell.
- Count physically on a cycle, and investigate variances rather than posting them straight to cost of goods sold.
- Discuss any method change with your accountant before making it — it needs justification and disclosure.