โ† Back to guides

How to Manage Stock Valuation (FIFO/Average) in Odoo

Stock valuation determines how Odoo calculates the cost of your inventory and the cost of goods sold (COGS) when you make a sale. Choosing the right method and configuring it correctly is important โ€” it affects your financial reports, tax obligations, and business decisions.

The three costing methods

  • Standard Price โ€” You manually set a fixed cost for each product. COGS is calculated using this fixed cost regardless of actual purchase prices. Simple but requires manual updates when costs change. Best for: businesses with stable purchase prices or manufacturing with defined standard costs.
  • Average Cost (AVCO) โ€” Odoo calculates a weighted average cost based on all units in stock. Each time you receive new stock at a different price, the average cost recalculates. Best for: most trading and distribution businesses. This is the most commonly used method in Australia.
  • First In, First Out (FIFO) โ€” Odoo tracks the cost of each batch separately and expenses the oldest stock first when sold. Best for: businesses with significant price fluctuations or perishable goods where you need to track the actual cost of specific batches.
โš ๏ธ

Once you've processed transactions with a costing method, changing it is complex and can create accounting discrepancies. Choose carefully before going live. If you're unsure, Average Cost is the safest default for most Australian businesses.

Configure the costing method

  • Go to Inventory โ†’ Configuration โ†’ Product Categories.
  • Open the product category you want to configure (or create a new one).
  • Under Inventory Valuation, set Costing Method to Standard Price, Average Cost (AVCO), or First In First Out (FIFO).
  • The costing method is set per product category, not per individual product. Group products with the same costing needs into categories.

Automated vs manual inventory valuation

On the same product category configuration, you'll see the Inventory Valuation setting:

  • Manual โ€” Stock movements don't create accounting entries. You post inventory valuation to your accounts manually (typically via journal entries at month-end). Simpler but requires manual work and can drift from reality.
  • Automated โ€” Every stock movement (receipt, delivery, adjustment) automatically creates accounting journal entries. Stock account, COGS account, and price difference account are updated in real-time. More accurate but requires correct account configuration upfront.

For most businesses, Automated is the right choice. It keeps your balance sheet inventory value and your P&L COGS in sync with actual stock movements without manual intervention.

Set up accounting accounts

When using automated valuation, you need to configure the accounting accounts on the product category:

  • Stock Valuation Account โ€” Balance sheet account where inventory value is recorded (e.g., "1300 - Inventory" or "1350 - Stock on Hand").
  • Stock Journal โ€” The journal used for inventory valuation entries.
  • Stock Input Account โ€” Interim account for goods received but not yet billed. Credited when the vendor bill is recorded.
  • Stock Output Account โ€” Interim account for goods delivered but not yet invoiced. Debited when the customer invoice is created.
  • Price Difference Account โ€” Captures differences between the standard/expected cost and actual cost (primarily used with Standard Price costing).

How each method works in practice

Average cost example

  • You buy 100 units at $10 each. Average cost = $10.
  • You buy 50 more units at $13 each. New average cost = (100ร—$10 + 50ร—$13) / 150 = $10.67.
  • You sell 30 units. COGS = 30 ร— $10.67 = $320. Remaining 120 units valued at $10.67 each.

FIFO example

  • You buy 100 units at $10 each, then 50 units at $13 each.
  • You sell 30 units. FIFO sells the oldest first: COGS = 30 ร— $10 = $300.
  • You sell 80 more units. FIFO: 70 units at $10 ($700) + 10 units at $13 ($130) = $830.
  • Remaining 40 units all from the $13 batch, valued at $520.

Viewing inventory valuation

  • Go to Inventory โ†’ Reporting โ†’ Inventory Valuation to see the current value of all stock.
  • Filter by product, product category, warehouse, or date.
  • The report shows quantity on hand, unit cost, and total value for each product.
  • For FIFO, you can see the individual layers (batches) that make up the current stock.

Common pitfalls

  • Mixing methods โ€” Keep your costing method consistent within a product category. Mixing methods makes reporting confusing.
  • Forgetting opening balances โ€” When migrating to Odoo, import your opening stock with the correct unit costs. Wrong opening costs will skew your valuation until all that stock is sold.
  • Negative stock โ€” Selling products you don't have in stock creates valuation problems, especially with FIFO. Enable the "No Negative Inventory" setting if your business should never ship without stock.
  • Not reconciling โ€” Regularly compare your inventory valuation report with your balance sheet stock account. They should match if automated valuation is working correctly.

Stock valuation is foundational to accurate financial reporting. If you need help choosing a costing method or configuring automated valuation, talk to us.

Need help with inventory valuation?

We configure Odoo inventory valuation and COGS accounting for Australian businesses. Get your costing method right from day one.

Get in touch โ†’