Odoo consultants for regulated manufacturers · code you keep

Inventory · Odoo guide

Why is my Odoo inventory valuation wrong?

Valuation drifts when costing method, automated inventory valuation accounts, or anglo-saxon settings disagree with posted stock moves, or when users edit quantities without reposting layers. Reconcile stock.valuation.layer balances with account.move lines, confirm product category property_valuation and cost method, and replay pending COGS for delivered but uninvoiced items.

By Chase Robbins, Operator & Founder at The ERP Firm · Last updated October 24, 2026

Steps

  1. Check product.category: Inventory Valuation (manual vs automated) and Costing Method (FIFO, AVCO, standard).
  2. Inventory → Reporting → Valuation: compare stock.valuation.layer value to GL inventory accounts.
  3. Identify stock moves posted to wrong dates or locations that skip valuation journal entries.
  4. For automated valuation, open a product → Valuation tab and trace linked account.move from stock.move.
  5. Run Accounting → Reconcile on inventory interim accounts (stock input/output) if anglo-saxon is enabled.
  6. Fix standard price or AVCO cost on product.template only after understanding layer history.
  7. Repost landed costs via stock.landed.cost if receipts were capitalized incorrectly.

Common mistakes

  • Switching costing method mid-year without opening valuation adjustment.
  • Manual journal entries to inventory bypassing stock.valuation.layer.
  • Receiving into non-valuated locations while automated valuation is on.
  • Ignoring bill status on PO receipts under perpetual valuation.
  • Using inventory adjustments without setting correct unit cost on move.

Odoo version notes

Automated inventory accounting is standard in Enterprise; Community can use manual periodic journals or third-party bridges. Odoo 16–18 use stock.valuation.layer for FIFO/AVCO. Anglo-saxon COGS timing differs by company setting on res.company. After upgrades, validate account.property_stock_* accounts on categories—migrations sometimes remap chart templates.

When to bring in help

If the fix touches custom modules, regulated traceability, or production outages, a focused rescue sprint beats months of trial and error. See our Odoo service.

FAQ

Follow-up questions

Why does GL not match the inventory report?
Unposted moves, manual GL adjustments, or interim accounts not reconciled will split balances from layer totals.
Does AVCO update on every receipt?
Yes—receipt stock.valuation.layer recalculates average cost unless blocked by locked dates or standard price enforcement.
Can I rebuild layers?
There is no safe one-click rebuild; corrections use reversals, revaluation wizards, or controlled adjustments with finance sign-off.

Book a scoping call for your Odoo environment.

Bring your version, user count, and the workflow that is blocked today.

Book a scoping call