Inventory Valuation in WooCommerce: What You Can Calculate and What You Can’t
WooCommerce stores one cost per product, not cost layers. What that means for FIFO, weighted average, and how to get a stock value you can defend.

“What’s my stock worth?” sounds like a question a shop system should be able to answer. In WooCommerce it usually can’t — not because of a missing report, but because of what WooCommerce stores about cost in the first place.
This explains the difference between the valuation methods you’ll read about, what inventory valuation in WooCommerce can actually produce from the data you have, and when you genuinely need something more.
Two different questions people mean by “stock value”
Before any method, get clear on which question you’re asking, because they have different answers and different uses:
- At cost — what you paid for what’s on the shelf. This is the figure your accounts need, and the one that feeds your closing stock.
- At retail — what it would bring in if you sold all of it at current prices. Useful for insurance conversations and for sanity-checking how much money is sitting still. Never a balance-sheet figure.
Quoting a retail figure where a cost figure belongs records profit you haven’t earned. It’s the most common valuation mistake in small stores and it inflates both your assets and your tax bill.
The methods, briefly
Any valuation method is just a rule for deciding which cost to attach to the units you still have, when you bought them at different prices.
| Method | The rule | Effect when costs are rising |
|---|---|---|
| FIFO First in, first out | The oldest costs go to cost of goods sold; the newest stay in stock | Lower COGS, higher reported profit, higher stock value |
| Weighted average | Every unit carries the same blended cost | Sits between the other two |
| LIFO Last in, first out | The newest costs go to COGS; the oldest stay in stock | Higher COGS, lower reported profit |
| Retail method | Estimate cost by applying a cost-to-retail ratio to retail value | An approximation, used where per-item costing isn’t practical |
One thing worth knowing before you get attached to LIFO: it is not permitted under IFRS, though it is under US GAAP. Which methods are available to you depends on where you file, so this is a question for your accountant rather than a preference.
What WooCommerce actually stores
Here’s the part that determines everything else, and it’s rarely spelled out.
WooCommerce’s cost of goods data holds one cost figure per product or variation. A single current number, attached to the product record. What it does not hold is a history of purchase lots — it doesn’t know that you bought 40 units at €8 in March and 60 more at €11 in September.
Without those layers, FIFO and LIFO are not computable. Both methods are entirely about which purchase batch a unit came from, and that information was never recorded. No plugin can derive it after the fact, because it isn’t a calculation — it’s missing data.
So which method are you actually using?
Whatever you type into that cost field. In practice, small stores land on one of three behaviours, usually without deciding:
- Latest cost. You update the cost field whenever a delivery arrives at a new price. Your stock is then valued entirely at the most recent price you paid — closer to a replacement-cost view than to FIFO, though the numbers often land near FIFO when prices move steadily.
- Manual weighted average. You recalculate the blended cost yourself when prices change and update the field. This is a legitimate weighted-average approach; it’s just maintained by hand.
- Whatever was entered when the product was created. The most common, and the one that quietly drifts years out of date.
None of these is wrong in itself. What is wrong is not knowing which one you’re on, because you can’t explain your closing stock figure to anyone — including yourself next January.
Pick one and write it down. If you go with weighted average, note the date you last recalculated. If you go with latest cost, make updating it part of your receiving routine. Consistency between years matters more to an accountant than which method you chose.
Getting a stock value out of WooCommerce
The arithmetic is simple; the inputs are the problem:
Stock value = Σ (quantity on hand × unit cost)
Which needs two things to be true at once:
- Your quantities are correct. Multiplying a wrong quantity by a right cost produces a confidently wrong number, and stock levels drift for a long list of ordinary reasons. A valuation is only as good as the count behind it — which is why valuation belongs immediately after a stocktake, not on a random Tuesday.
- Your costs are current. Cost fields set once at product creation and never revisited are the second half of the problem.

If you don’t have costs on everything, don’t let that stop you. Set costs for your highest-value lines first — the same A items you’d cycle count most often. They dominate the total, and a valuation covering 80% of your stock value precisely is far more useful than one covering 100% of it as a guess.
In Stocktake, the free version prices variance at cost when cost of goods data is set, so a count tells you what the discrepancy was worth. Full inventory valuation — total stock value at both cost and retail, broken down by category — is a Pro feature.
Where the number goes wrong
- Costs that exclude landed cost. If shipping, duty and import fees aren’t in your unit cost, you’re undervaluing stock and overstating margin on every sale. Decide whether you include them, then be consistent.
- Valuing obsolete stock at what you paid. Three years of an unsellable line is not an asset at full cost. Many jurisdictions expect the lower of cost and what you could realistically get for it.
- Mixing cost and retail in one total. Usually happens when some products have a cost set and others fall back to price. Check for it before you file anything.
- Valuing stock you don’t own. Consignment items sit on your shelves and belong to someone else.
- Changing method between years. Even a change from “latest cost” to “weighted average” makes this year incomparable with last year — and it’s exactly the kind of thing an accountant will want explained.
When you need real cost layers
A single cost per product is enough for most small retail. It stops being enough when:
- Your buy prices move a lot. Imported goods with currency swings, commodities, anything where March and September prices differ by more than a rounding error.
- You need per-batch traceability for expiry dates, recalls or regulated goods. That’s a lot-tracking requirement, and valuation comes along with it.
- Your auditor asks for FIFO specifically. No amount of spreadsheet work reconstructs lot costs you never recorded.
- Stock is a large share of your balance sheet. The bigger the number, the less approximation is acceptable.
At that point you’re looking at inventory or accounting software that records purchases as lots — where receiving 40 at €8 and 60 at €11 stores two layers rather than overwriting one field. That’s a different category of tool from a shop plugin, and it’s the honest answer when the requirement is real.
A practical routine
- Decide your method — latest cost or weighted average — and write it down with the date.
- Set costs on your A items, including landed cost if you’ve decided to include it.
- Count before you value. A stocktake immediately before valuation is what makes the quantity half of the equation trustworthy.
- Value at cost, adjust obsolete stock down, and keep the working.
- Repeat the same way next time. The comparison between two consistent valuations tells you something; two inconsistent ones tell you nothing.
Inventory valuation FAQ
Can WooCommerce do FIFO inventory valuation?
No, and no plugin can add it from WooCommerce data alone. FIFO is entirely about which purchase batch a unit came from, and WooCommerce stores a single current cost per product rather than a history of purchase lots. That information was never recorded, so it cannot be derived afterwards.
Should I value stock at cost or retail?
At cost for anything that goes into your accounts. A retail valuation is useful for insurance and for seeing how much money is sitting still on your shelves, but recording it as your closing stock books profit you have not made.
Which valuation method am I using if I never chose one?
Usually either latest cost, if you update the cost field when prices change, or a stale figure entered when the product was created. Neither is wrong in itself, but not knowing which one you are on means you cannot explain your closing stock figure. Pick one, write it down, and keep it consistent between years.
Should shipping and duty be included in the unit cost?
That is your decision, but make it deliberately and apply it everywhere. Excluding landed costs undervalues your stock and overstates your margin on every sale. Whichever way you go, note it with your valuation method so next year is comparable.
Do I need cost data on every product?
No. Start with your highest-value lines, which dominate the total anyway. A valuation covering 80% of your stock value accurately is far more useful than one covering everything as a guess.
When do I need proper inventory software instead?
When your buy prices move significantly between orders, when you need per-batch traceability for expiry dates or recalls, when an auditor asks for FIFO specifically, or when stock is a large enough share of your balance sheet that approximation stops being acceptable. Those needs require software that records purchases as lots.