Why costing method choice matters#
Odoo's inventory valuation determines how the cost of goods sold (COGS) is calculated and how inventory appears on the balance sheet. Choosing the wrong method before go-live, or switching after transactions exist, can require a full revaluation of stock.
The three costing methods#
Navigate to Inventory → Configuration → Settings → Valuation to see the options.
Standard Price#
The product has a single fixed cost set manually on the product form. Every goods receipt, regardless of actual vendor price, uses this standard cost. Variances between standard cost and actual purchase price are posted to a "Price Difference" account.
Best for: Manufacturing environments with stable bill-of-materials costs, or companies with a formal standard costing process and periodic variance reviews.
Limitation: If your actual purchase prices vary significantly from standard, you accumulate price difference journal entries that must be reviewed regularly.
Average Cost (AVCO)#
Each incoming shipment updates the product's average cost. The formula is:
New Average Cost = (Current Stock Value + Incoming Value) / (Current Qty + Incoming Qty)All stock moves out (sales deliveries, manufacturing consumption) use the current average cost at time of movement. AVCO is computed per product, not per location.
Best for: Distribution and retail businesses with frequent small purchases of the same product at slightly varying prices.
Limitation: A single large purchase at an unusual price shifts the average for all units currently on hand.
FIFO (First In, First Out)#
Odoo tracks the cost of each incoming "quant" and assigns costs to outgoing moves using the oldest available quants first. Unlike AVCO, FIFO preserves the actual cost of each lot.
Best for: Perishable goods, companies in jurisdictions that require FIFO for tax purposes, and businesses where lot-level cost traceability matters.
Limitation: Higher bookkeeping complexity. Each incoming shipment creates a separate cost layer.
Perpetual vs periodic valuation#
Perpetual (Automated) valuation: Journal entries are created automatically at every stock move. The inventory account on the balance sheet is always current. Requires the Accounting module.
Periodic (Manual) valuation: No automatic journal entries for stock moves. You periodically post a single inventory valuation entry based on a physical count.
Set valuation type per product category: Inventory → Configuration → Product Categories → Costing Method and Inventory Valuation.
Accounting entries generated#
On goods receipt (perpetual)#
| Entry | Debit | Credit |
|---|---|---|
| All methods | Stock Valuation Account | Stock Input Account (GRNI) |
On delivery to customer#
| Entry | Debit | Credit |
|---|---|---|
| All methods | Cost of Goods Sold | Stock Valuation Account |
The COGS debit uses the product's cost at time of delivery: standard cost, current average, or FIFO layer cost.
Switching costing methods#
Changing the costing method on a product category that already has stock is possible but requires careful preparation:
- Run an inventory valuation report before the change
- Ensure stock is at zero if possible - the cleanest switch happens with empty stock
- Change the costing method on the product category
- If switching to Standard Price, set the correct standard cost on all affected products
- Post the valuation difference via an inventory adjustment if needed
Always do this in a test database first.
The inventory valuation report#
Navigate to Inventory → Reporting → Inventory Valuation for a real-time view of:
- On-hand quantity per product
- Current cost per unit
- Total valuation per product
- Totals by category
Export this report to CSV or compare it to the stock valuation account balance in accounting. Under perpetual valuation, they should match. A discrepancy indicates a stock move with no corresponding journal entry.
Practical tips#
- Enable perpetual valuation for all product categories before any stock moves occur. Retroactively enabling it does not backfill journal entries.
- Set sensible Account Properties on each product category (Stock Valuation, Input, Output, COGS) before receiving goods.
- For multi-company setups, costing methods apply per company. Each company can use different methods for the same product.

