The Month-End Shrug
I have sat in the month-end meeting. The accountant asks the question that empties the room of all its oxygen: "So what is the inventory worth right now?" And the owner, who can tell you every customer by first name and every grudge the delivery truck has ever held, looks at the shelves like they just started speaking a foreign language. Somewhere between what we paid for it, what we could sell it for, and what the spreadsheet from three years ago says, there is a number. Nobody in the room fully trusts it, including the person who typed it.
That shrug is expensive. The value of your inventory sits on your balance sheet, it shapes your cost of goods sold, and it decides whether a good month on paper was actually a good month. Odoo will compute it faithfully, every day, automatically. But it will compute it according to the rules you chose, and most companies choose them by accident, on setup day, clicking past the one screen that mattered. This post is that screen, explained like somebody should have explained it to all of us.

What Odoo Is Actually Doing
Here is the whole idea in one paragraph. Every time product moves in Odoo, the system wants to attach a dollar value to the stuff sitting on your shelves, so the books always know what the warehouse holds. Valuation lives on the product category, which means you set the rules once per family of products instead of item by item. Two decisions ride on that category: how Odoo counts the cost of each unit, and whether the accounting entries happen automatically as stock moves or get posted manually when your bookkeeper says so.
That is genuinely all of it. The finance-degree fog around this topic is mostly vocabulary. So let us translate the vocabulary, because the three costing methods are where your margins get quietly made or lost.
If you are weighing this for your own shop, here is how I help teams get Odoo running right.
The Three Ways to Count a Dollar
Standard Price is the simplest: you declare what a unit costs, and Odoo believes you until you change it. It is clean and stable, which accountants like, and it goes stale the moment your supplier raises prices and nobody updates the standard, which accountants discover later and like considerably less. It suits businesses with steady costs and the discipline to review standards on a schedule.
Average Cost, called AVCO, blends every purchase into a running average. Buy ten units at one price and ten at a higher price, and Odoo values all twenty at the middle. It smooths out price swings, so your margins stop whiplashing every time a vendor invoice lands. For a lot of small distributors, this is the honest middle road: not pretending prices never change, not letting one expensive shipment rewrite the whole story either.
FIFO, First In First Out, assumes the oldest stock leaves first and values what remains at your most recent purchase prices. It matches how most warehouses actually move physical goods, and in times of rising prices it tends to show inventory at values closest to today's replacement cost. It is also the method that makes the most intuitive sense to anyone who has ever rotated milk.
One honest warning that matters more than the choice itself: switching methods later is painful, because you are rewriting the story of every unit in the building mid-book. Pick deliberately, with your accountant in the room, and then leave it alone.
The Habit That Keeps It True
Whatever method you choose, valuation is only as honest as the movements feeding it. Odoo values what the system believes is on the shelf. If receiving skips steps, if somebody ships without recording it, if the count has been "close enough" since spring, then your valuation is a beautiful, precise, automatically posted fiction. This is why I tell people the valuation screen and the warehouse floor are the same project. Cycle counting, clean receiving, and honest adjustments are not warehouse chores that accounting nags you about. They are the inputs. Garbage movements in, garbage balance sheet out, delivered daily with total confidence.
Land one more plane while we are here: landed costs. Freight and import charges are real money spent to get product onto your shelf, and Odoo can fold them into the value of the goods instead of letting them vanish into a random expense line. If your margins ever feel mysteriously thin on imported or freight-heavy products, this is usually the leak. It takes ten minutes to set up and it makes your product margins tell the truth.
You do not need a finance degree to run this well. You need one deliberate choice of costing method, made with your accountant before go-live instead of discovered after it, and a warehouse that records what it actually does. Do those two things and the month-end question stops emptying the room. The number will just be there, because it was there all along, adding itself up quietly every time a box moved.
More from me on the Dead Brands blog, new posts every weekday.
Frequently Asked Questions
Where is inventory valuation set in Odoo?
On the product category. Each category carries a costing method (Standard Price, Average Cost, or FIFO) and a valuation approach, either manual or automated, which posts accounting entries as stock moves. Setting it per category lets different product families follow different rules when that genuinely makes sense.
Which costing method should a small business pick?
There is no universal right answer, which is why your accountant belongs in this decision. Average Cost is a common middle road for distributors with fluctuating purchase prices. FIFO fits businesses whose physical flow is truly oldest-first and who want shelf values near replacement cost. Standard Price works when costs are stable and someone owns reviewing them.
Can I change the valuation method later?
You can, but treat it as surgery, not a settings tweak. Changing methods revalues stock and can scramble your cost history and margins, so it should be done deliberately, at a clean cutoff, with your accountant involved. The cheap time to get this right is before the first real inventory goes in.
Why does my Odoo inventory value not match my physical count?
Because valuation follows the system's record of what is on the shelf, and the record drifts when receipts, shipments, or adjustments happen off-system. The fix is operational before it is technical: cycle counts, disciplined receiving, and recording movements when they happen. Once the quantities are honest, the dollars usually fall right into line.





