Now in open beta — close the books in 2 days, not 2 weeks.Read the case study →
Inventory · January 22, 2026 · 10 min read

FIFO vs LIFO vs weighted average: pick a method

Picking an inventory costing method is one of the first real accounting decisions a growing business has to make. Get it wrong and your COGS, gross margin, and tax position all distort. Get it right and the books match the floor.

Why lifo is off the table under ifrs.

IAS 2, the international standard adopted in virtually every jurisdiction outside the United States, explicitly disallows last-in-first-out as a cost formula. The reasoning is clean: LIFO lets you understate inventory on the balance sheet during inflation, which produces a lower asset base and a lower tax bill that does not reflect economic reality. The standard says you can only use FIFO or weighted average cost, sometimes called WAC.

This matters because some older accountants still default to LIFO from training they got two decades ago, or copy templates from US sources where LIFO is allowed under US GAAP. If you report under IFRS and your auditor sees LIFO in your costing, expect a qualified opinion. If your tax authority sees it, expect questions during a desk audit. Both FIFO and WAC are perfectly defensible, and most of what we discuss below is choosing between them.

How fifo actually works on the floor.

FIFO assumes the first unit you bought is the first unit you sold. If you bought 100 cases of premium tea at USD 4.80 in January and 100 more at USD 5.10 in February, the first 100 cases sold in March leave at the January cost of USD 4.80 each. Your March COGS reflects January prices. Your remaining inventory on the balance sheet reflects February prices. This is the model most retailers intuitively expect.

FIFO works beautifully when you actually rotate stock physically, which is exactly what pharmacies, FMCG distributors, and food retailers should be doing anyway. It also produces inventory values close to current replacement cost, which makes the balance sheet honest during inflationary periods. The downside is that COGS can lag actual purchasing prices, which inflates current-period profit when costs are rising fast.

How weighted average smooths the noise.

WAC blends every layer of cost into a single per-unit average that updates every time you receive stock. Using the same tea example: after January you hold 100 units at USD 4.80, average cost USD 4.80. When February stock arrives at USD 5.10, your average is now (100 × 4.80 + 100 × 5.10) / 200 = USD 4.95 per unit. Every sale in March leaves at USD 4.95 regardless of which physical case goes out the door.

WAC is dramatically simpler to operate. There are no layers to track, no FIFO queue to maintain, no questions about which cost batch a return should reverse. For wholesalers receiving the same SKU from the same supplier weekly at slightly different prices, the math just settles down. The downside is that during sharp price changes, your WAC lags reality on both sides — your COGS during a price spike will be too low, then too high after the spike resolves.

Which one fits your business shape.

Use FIFO if you sell perishable or expiring goods, if your purchase prices change in step changes rather than continuously, if you have batch or expiry tracking already, or if your auditor specifically prefers it. Pharma, food, dairy, and most fashion retail land here.

Use WAC if you sell commodity-style goods where every unit is identical, if you receive the same SKU from the same vendor on a regular cadence, if you do not need batch traceability, or if simpler operations matter more than tighter cost matching. Hardware, building materials, electronics components, and most general merchandise wholesale lands here.

  • FIFO favoured: pharmacy, food, dairy, fashion, anything with expiry
  • WAC favoured: hardware, electronics, building materials, generic wholesale
  • Mixed catalog: most ERPs let you set the method per item — Nonari does too

A worked example with two branches.

Imagine a pharmacy chain in Atlanta: Branch A buys 200 units of paracetamol at USD 0.25 in January. Branch B buys 300 units at USD 0.28 in February. They transfer 100 units from B to A in March. Under FIFO with batch tracking, the 100 transferred units leave B at the February cost of USD 0.28 and land at A as a separate cost layer. Under WAC, B blended its cost the moment they received it (USD 0.28 since they had nothing before), so the transfer also moves at USD 0.28.

Now sell 250 units from A in April. Under FIFO, the first 200 sold come from the January layer at USD 0.25, the next 50 from the transferred layer at USD 0.28. COGS = 200 × 0.25 + 50 × 0.28 = USD 64.00. Under WAC, A has now blended (200 × 0.25 + 100 × 0.28) / 300 = USD 0.26 per unit, so 250 sold at USD 0.26 each = USD 65.00. Same physical reality, USD 1.00 difference in reported COGS — at scale across thousands of SKUs, this becomes material.

FIFO · 250 units sold200 from Jan layer @ $0.25 = $50.0050 from Feb layer @ $0.28 = $14.00COGS = $64.00Remaining inv valued at Feb costWAC · same 250 unitsBlended cost = $0.26 / unit250 × $0.26 = $65.00COGS = $65.00Remaining inv valued at blend
Same purchases, same sales, $1.00 different COGS. At 10,000 SKUs that becomes a material number.

How nonari handles both methods.

Nonari uses weighted average cost at the BranchInventory level by default — every branch maintains its own WAC for every SKU, and a sale immediately posts COGS to the GL using that branch-specific average. Stock transfers between branches use SOURCE_FIFO costing internally so the oldest cost layer leaves the source branch first, but the receiving branch blends the incoming cost into its own WAC.

For items where you genuinely need pure FIFO or batch-level cost tracking — pharma with expiry, electronics with serial numbers, anything with a recall risk — Nonari supports batch and serial tracking on top of the WAC engine, so you keep the operational simplicity of WAC for general items while preserving full traceability where it matters.

Common mistakes when switching methods mid-year.

IAS 8 treats a change in costing method as an accounting policy change. You cannot just flip from FIFO to WAC in October because your stock count came out funny. The standard requires retrospective restatement of prior comparatives, disclosure in the notes, and usually a conversation with your auditor before you do it.

The right time to change methods is at the start of a fiscal year, with proper disclosure, and with a clear business reason — usually a new ERP rollout or a material change in how you operate. Document the change before you make it, not after. Auditors are reasonable about justified policy changes; they are not reasonable about silent ones discovered during fieldwork.

Frequently asked

Common questions.

Is LIFO ever allowed?

Only under US GAAP. Every IFRS jurisdiction prohibits LIFO through IAS 2. If you file under IFRS, you must use FIFO or weighted average for both audited and tax accounts.

Can I use FIFO for some items and WAC for others?

Yes. The standard requires consistency within a class of inventory, but you can use FIFO for batch-tracked pharma and WAC for hardware, as long as the policy is documented and applied consistently.

Does my tax authority prefer one method?

Most accept both FIFO and WAC as long as the method is applied consistently and disclosed. Expect challenge on frequent unexplained switches.

Which method gives lower tax during inflation?

WAC usually gives slightly higher COGS than FIFO during a price spike, so slightly lower profit and lower tax. The effect is small for most businesses and not a valid reason on its own to choose a method.

How does Nonari decide the cost on a multi-branch transfer?

Nonari uses SOURCE_FIFO on the sending branch, so the oldest cost layer leaves first, then blends the cost into the receiving branch using WAC. This keeps the source branch costing honest while keeping the destination simple.

Try nonari

Put your books on autopilot.

Free to start. No credit card. Bring your books, kick the tires, export everything if you decide to leave.