Inventory valuation in Odoo is set by two choices on each product category: the costing method and the valuation mode. Together they decide how stock is valued on the balance sheet, what lands in cost of goods sold, and therefore what gross margin the board sees each month. Both choices are easy to make during setup and expensive to change later.
What costing methods does Odoo offer?
- Standard price: every unit is valued at a fixed cost you set, and differences from actual cost must be handled separately. Useful in manufacturing with a disciplined costing process, rarely right for trading.
- Average cost (AVCO): each receipt updates a weighted average cost per product, and deliveries are valued at the current average.
- First in, first out (FIFO): stock is held in layers by receipt, and deliveries consume the oldest layers first, each at its own cost.
Under IAS 2, and the Egyptian standard based on it, both FIFO and weighted average are acceptable cost formulas; LIFO is not. Saudi Arabia applies IFRS as endorsed locally, with the same result. The standard also requires the same formula for inventories of a similar nature and use.
How do FIFO and average cost affect COGS and margin?
When purchase prices are stable, the two methods give similar results. When prices move, they diverge. In a rising price environment, FIFO charges older, cheaper layers to cost of goods sold, so margins look higher and closing stock is valued nearer current prices. Average cost blends old and new, so margins move more smoothly and react to price changes more slowly. With a volatile currency, as Egyptian importers have experienced, the gap between the two can be large enough to change how management reads a quarter.
Neither method is more correct. The question is which one matches how the business buys and sells. Interchangeable goods bought continuously suit average cost. Goods with distinct batches, expiry dates or price-sensitive margins often suit FIFO. Whatever you choose, apply it consistently within each category of similar items.
Why use perpetual (automated) valuation?
With manual, or periodic, valuation, Odoo tracks quantities and the accountant posts the stock value in a journal entry at period end. With automated, or perpetual, valuation, every receipt and delivery posts its own journal entry to the stock valuation, stock input and stock output accounts configured on the category. Automated valuation keeps the ledger and the stock valuation report in step every day, and it is what makes landed costs and accurate cost of goods sold per invoice possible. It also means configuration errors reach the ledger immediately, which is why the category accounts must be right before the first receipt.
How do landed costs work?
Freight, customs duties, insurance and clearing charges are part of the cost of inventory under IAS 2. In Odoo, the landed costs feature allocates these charges to the receipts they relate to, by quantity, weight, volume, current cost or equally, and adds them to the stock layers. It works with FIFO and average cost under automated valuation. If landed costs are posted as expenses instead, margins on imported goods are overstated in the month of sale and understated in the month of import.
The costing method is an accounting policy. Change it the way you would change any policy: rarely, deliberately and in writing.
What are the risks of changing the method mid-year?
Odoo allows the costing method on a category to be changed, and revalues the stock on hand when you do. That convenience hides several risks:
- A change of cost formula is a change in accounting policy under IAS 8, which needs justification and disclosure, not just a configuration change.
- Comparatives become inconsistent: the months before and after the change are not measured the same way.
- The revaluation entry can be large and lands on a single day, distorting that month’s margin.
- Open receipts, returns and landed costs that straddle the change are easy to misvalue.
If a change is genuinely needed, make it at a period end after a stock count, document the reason, record the revaluation separately and agree the approach with your external auditor beforehand.
How we set it up
In an Odoo implementation, we decide the method per product category with the finance lead, configure automated valuation with dedicated accounts, and reconcile the stock valuation report to the ledger before go-live and at every month end. The same reconciliation is one of the first checks in our internal audit work, because inventory valuation drift is rarely visible anywhere else.