FIFO vs Weighted-Average Costing: Which Cost, and Why It Matters
When you buy the same item at different prices over time, which cost do you use when you sell one? FIFO and weighted average give different answers — and the choice quietly changes your reported profit, your stock value, and your tax. In one market the choice may not be yours to make freely at all: [the method you cannot choose](/blog/the-method-you-cannot-choose).
Here is a problem every business with stock faces and few consciously decide: you bought 100 units of an item at KES 50 in January and 100 more at KES 60 in March. In April you sell one. What did that unit cost you — 50, 60, or something in between? The answer is not a fact of nature; it is an accounting choice called a cost-flow assumption, and the two most common answers are FIFO and weighted average. The choice is invisible day to day, but it flows straight into your cost of goods sold, your gross profit, the value of the stock on your balance sheet, and ultimately your tax.
FIFO: first in, first out
FIFO assumes the oldest stock is sold first, so the cost assigned to a sale is the cost of the earliest purchases still on hand. In the example, the first unit sold in April costs KES 50 — the January price — because FIFO works through the old stock before the new. This means the stock remaining on your balance sheet is valued at the most recent prices, which keeps your inventory value close to current replacement cost. In a period of rising prices, FIFO produces a lower cost of goods sold and therefore a higher reported profit.
Weighted average: blend it all together
Weighted average takes a different view: it pools all units of an item and assigns each sale the average cost of everything on hand. With 100 units at 50 and 100 at 60, the weighted average cost is KES 55, and every sale — and the remaining stock — is valued at that blended figure until the next purchase shifts the average. It smooths out price fluctuations rather than tracking which batch was sold, which makes it simpler to run and less volatile, at the cost of stock values that lag current prices.
| FIFO | Weighted average | |
|---|---|---|
| Cost assigned to a sale | Cost of the oldest stock on hand | Blended average of all stock |
| Stock value on balance sheet | Close to current/replacement cost | A lagging blended figure |
| In rising prices | Lower COGS, higher profit | Smoothed COGS and profit |
| Volatility of margins | Reflects real batch costs | Smoothed across purchases |
| Complexity | Tracks batches by age | Simpler — one moving average |
FIFO the costing method vs FEFO the physical rule
A common confusion: FIFO as a costing method is about which cost you assign, not which physical unit you pick off the shelf. You can run FIFO costing while physically selling any unit. This is different from FEFO — first expired, first out — which is a physical picking rule for perishable goods, driven by expiry dates rather than cost. Many businesses use FEFO physically (to avoid expiry) and weighted average for costing; the two decisions are independent, and conflating them causes needless argument.
Which should you choose?
For most Kenyan SMEs, weighted average is the pragmatic default: simpler to run, less volatile, and perfectly acceptable under IFRS (which Kenya follows). FIFO suits businesses that want stock valued near replacement cost or that genuinely move stock in batches. What matters most is consistency — pick one, apply it uniformly, and do not switch method to flatter a period's profit, because that is exactly what auditors and KRA look for.
Whichever method you use, the point is that it should be applied automatically and consistently by your system, not recalculated by hand. When purchases, stock movements, and sales all flow through one system, the cost-flow assumption is applied on every transaction — so your cost of goods sold and inventory value are defensible without anyone maintaining a spreadsheet of batch costs that drifts the moment prices move.
Which one we use, and why that is a constraint
Since this post is published by a vendor, the useful thing is to say what our own system does rather than describe both methods and leave you guessing. AWRA OpsHub maintains a weighted average cost per item and uses it as the cost basis. It is recalculated as goods are received, and landed cost — freight, duty, clearing — is folded into it rather than expensed separately, which is the part most spreadsheets get wrong.
What we do not offer is the choice. There is no costing-method setting, and no FIFO cost-flow engine behind it. If your accountant or your group reporting requires FIFO costing specifically, that is a real constraint and you should weigh it before buying rather than discover it at year end.
What AWRA OpsHub does today
- A weighted average cost held per item, maintained automatically as stock is received.
- Landed cost folded into that average — freight, duty and clearing raise the unit cost rather than disappearing into overheads.
- Batch and expiry tracking, so you can trace which physical batch moved even though costing is averaged.
- Inventory valuation reporting built on that cost basis.
More we can add to your workspace
- A choice of costing method. Weighted average is the cost basis today; a setting to switch is the build.
- A FIFO cost-flow engine, holding layered purchase costs and consuming them oldest-first for costing purposes.
- A LIFO — prohibited under IFRS anyway, so this one is a position rather than a build.
- Retrospective re-costing. Changing history is not something the system does; a correction is a new transaction.
Worth separating two things that share the word "first out": we do deplete the nearest-expiry batch first when stock is issued, which is FEFO and physical. That is independent of costing, which stays weighted average regardless of which batch actually moved.
Anything above that you need, we can build for you
Everything listed above as something we can add describes what ships in the standard product today — it is a starting point, not a limit on what AWRA OpsHub can do for your organisation. Kenya's eTIMS integration and its maintained payroll engine are both in the product because clients needed them and commissioned them; neither appeared by itself, and the same door is open for whatever you just read about. One qualification so this is worth what it claims: a small number of things on this blog we deliberately leave to a specialist rather than build — a statutory ledger we will not sign our name to, a rule that would decide a tax question for you, a clinical or member-funds record that belongs in a regulated system — and where that is true the post says so in those words. Everything else is a scope, a timeline and a price.
The operational work, which is what most commissions actually are
An extra approval stage in a chain that does not match the standard one, a custom field set on employees or assets that only your sector needs, an expiry that has to block an order rather than send an email, a report your board asks for in a shape nothing produces, or a scanner or weighbridge feeding the goods-in door. These are the commissions we are asked for most often and the smallest ones we quote — and unlike a revenue-authority pipeline, none of them waits on a regulator.
The module-shaped additions, which are the ones readers ask for most often
A price list with real discount authority, a customer-facing quotation that expires, a bill of materials or recipe costing, a staff advance that is issued, acquitted and chased, a member or unit ledger, a matching rule that holds a payment. Each of these is a build rather than a setting, and each has been quoted before — a bigger piece of work than a custom field, with a written spec and a date instead of a roadmap slide.
The report, document or pack nothing currently produces
The board pack in the shape your board actually asks for, a donor or funder layout, an invoice or receipt template carrying what your regulator or your customer expects, a dataset the report builder cannot reach yet. Usually the fastest thing on this list to deliver, because the data is already in the system.
Systems, rails and hardware you already run
The accounting package, CRM, online store, core banking or custom database you intend to keep — connected through our API so a fact is entered once and appears everywhere it is needed. Plus the physical edge: a scanner, a scale, a weighbridge or a till peripheral feeding the door it belongs to.
How it works: you describe the requirement, we return a written scope, timeline and cost, and once agreed it is built into your environment and maintained as part of the product. Nothing here waits on a regulator or a published specification, which is why operational builds are the ones we quote fastest. Tell us the requirement that would otherwise rule us out — that is a better first conversation than a demo.
Tell us what your operation needsCosting sits on top of stock records, so it is only ever as good as they are — stock control in Kenya covers keeping them accurate, and the landed cost calculator handles the input side.
Costing applied consistently, automatically
Weighted-average costing maintained on every receipt, with [landed cost](/glossary/landed-cost) folded in — so stock value and cost of goods sold hold up without a batch-cost spreadsheet.
Explore inventory managementFrequently asked questions
What is the difference between FIFO and weighted-average costing?
Both decide what cost to assign when you sell an item bought at different prices. FIFO assumes the oldest stock sells first, so sales carry the earliest costs and remaining stock is valued near current prices. Weighted average pools all units and assigns each sale the blended average cost. The choice changes reported cost of goods sold, profit, and stock value even though nothing physical differs.
Which method gives higher profit?
In a period of rising prices, FIFO produces a lower cost of goods sold (because older, cheaper costs are expensed first) and therefore a higher reported profit, with stock valued near replacement cost. Weighted average smooths costs and profit across purchases. In falling prices the effect reverses.
Is FIFO the same as FEFO?
No. FIFO is a costing method about which cost you assign to a sale; FEFO (first expired, first out) is a physical picking rule for perishable goods, based on expiry dates. They are independent decisions — many businesses physically pick by FEFO to avoid expiry while using weighted average for costing.
Which costing method should a Kenyan business use?
Weighted average is the pragmatic default for most SMEs — simpler, less volatile, and acceptable under IFRS, which Kenya follows. FIFO suits businesses wanting stock valued near replacement cost or that move stock in genuine batches. The critical rule is consistency: apply one method uniformly and do not switch it to flatter a period, which auditors and KRA scrutinize.