Valuation cheat sheet¶
Important
This documentation is for Odoo 19 or later. Discover why we changed.
Costing Methods¶
Odoo supports 3 costing methods configured in accounting’s settings and, optionally, the product’s category.
- Standard Cost: fixed unit cost, updated manually
Operation
Unit Cost
Qty On Hand
Delta Value
Inventory Value
$10
0
$0
Receive 8 @$10
$10
8
+8×$10
$80
Receive 4 @$16
$10
12
+4×$10
$120
Deliver 10
$10
2
-10×$10$20
Receive 2 @$9
$10
4
+2×$10
$40
- Average Cost: weighted average of all units
Operation
Unit Cost
Qty On Hand
Delta Value
Inventory Value
$0
0
$0
Receive 8 @$10
$10
8
+8×$10
$80
Receive 4 @$16
$12
12
+4×$16
$144
Deliver 10
$12
2
-10×$12$24
Receive 2 @$6
$9
4
+2×$6
$36
- FIFO: first in, first out
Operation
Unit Cost
Qty On Hand
Delta Value
Inventory Value
$0
0
$0
Receive 8 @$10
$10
8
+8×$10
$80
Receive 4 @$16
$12
12
+4×$16
$144
Deliver 10
$16
2
-8×$10-2×$16$32
Receive 2 @$6
$11
4
+2×$6
$44
Note
Removal strategies also support LIFO and FEFO, but they only impact which product is first picked, not the valuation method. For example, you can pick using LIFO, but using average cost for valuation, as LIFO is not allowed by IFRS.
Inventory vs Accounting¶
The Inventory app keeps track of the inventory value in real time as you receive and deliver goods. The reporting menu lets you analyze inventory quantities and values by company, location, product, and more.
The Accounting app updates accounts when you receive invoices or bills. Even though receipts and invoices differ, it’s not practical for accountants to post journal entries for every inventory movement. So, they post a closing entry to account for the difference between what has been invoiced and received/delivered. This closing process happens usually once a year for SMEs, or once a month for larger companies.
Accounting |
Inventory |
|
|---|---|---|
Purchase Order |
/ |
/ |
Receipt |
/ |
✓ |
Vendor Bill |
✓ |
/ |
Sales Order |
/ |
/ |
Customer Invoice |
✓ |
/ |
Delivery |
/ |
✓ |
Closing Entry |
✓ |
/ |
Accounting Methods¶
There are two accounting practices on how to maintain your accounts, defined in , under the Inventory Valuation section:
Periodic: Post vendor bills as expenses by nature, and update stock valuation in the closing entry by reducing expenses (stock variation). This is the best practice in Europe.
Perpetual: Post vendor bills as assets (stock valuation), report expenses when goods are sold (cost of goods sold). This is the best practice in countries that follow Anglo-Saxon accounting, like the USA and India.
Stock Account on the product’s category
Stock Variation on the stock account
Expense/Cost of Goods Sold on the product/category
Inventory Adjustment on the Inventory Loss location (optional, recommended for Anglo-Saxon accounting)
Expense on the stock account (for perpetual Continental accounting only)
EU Periodic |
EU Perpetual |
US Periodic |
US Perpetual |
|
|---|---|---|---|---|
ADJUSTMENT |
Stock |
Stock |
||
LOSS |
Shrinkage |
|||
BILL |
Expense |
Stock |
COGS |
Stock |
Payable |
Payable |
Payable |
Payable |
|
INVOICE |
Expense |
COGS |
||
Stock |
Stock |
|||
Income |
Income |
Income |
Income |
|
Receivable |
Receivable |
Receivable |
Receivable |
|
Closing |
Stock |
Stock |
Stock |
Stock |
[1] |
Variation |
Expense |
Variation |
Variation |
[2] |
LOSS |
Shrinkage |
||
[3] |
Variation |
|||
Expense |
Inventory valuation - Accounting valuation
Inventory valuation lost, only if an account is set on the loss location
Accounting valuation end of period - Valuation beginning of period
Accounting Entries¶
Journal Entries Configuration¶
Reporting¶
In Inventory¶
Open to view your current inventory level and valuation for each product, or to review historical data as of a previous date.
Unit cost¶
To check a product’s existing unit price updates and their origins, click on the product’s Unit Cost. In AVCO this allows you to understand how the currently used value was calculated.
Total value¶
To see all incoming quantities for which you still have a remaining quantity and the value used for their valuation, click on a product’s Total Value.
In AVCO or standard cost, the used value is always the current average unit cost.
In FIFO, remaining units from each previous incoming move retain their own individual valuation.
In FIFO or AVCO, remaining quantities from a previous incoming move can have their value adjusted if necessary: Select the incoming moves to be adjusted, click Actions, and then click Adjust Valuation. Enter the new Value and, optionally, a Description.
In Accounting¶
To view the difference between the accounting stock value and the current inventory value recorded thanks to the incoming moves with a remaining quantity, go to .
To generate a new accounting entry to review and post, click Generate Entry.
To view a list of sales and purchase orders for which accrual entries should be encoded, go to and select the relevant menu item (Bill To Receive, Invoices To Be Issued, Billed Not Received and Invoiced Not Delivered). Select the desired lines and click Create Accrual Entries.
With Anglo-Saxon perpetual accounting, this will also help to distribute recorded inventory variations to accounts such as Bills to Receive/GRNI or COGS as shown in the Accounting Entries and Journal Entries Configuration sections.
Changes in Odoo 19¶
Before Odoo 19, the Perpetual accounting method was implemented by posting real-time accounting entries at each stock movement. That created a lot of journal items in accounting, which was an issue for performance, general ledger clarity and auditability.
Since Odoo 19, the Perpetual method impacts the stock valuation account at the invoice level. The closing entry is then used to manage bills to receive, invoices to issue, deferred revenues, prepaid expenses, and other gaps between inventory values and accounting ones.
Odoo 18 |
Odoo 19 |
|
|---|---|---|
Periodic Continental |
Manual closing |
Automated closing |
Periodic Anglo-Saxon |
Not supported |
Fully supported |
Perpetual Continental |
Manual closing |
✓ |
Perpetual Anglo-Saxon |
Manual closing |
✓ |
Accounting valuation |
Requires inventory |
Accounting only |
Perpetual Entries |
Invoices + every moves |
Invoices + one closing |
Invoices to issue |
✗ |
✓ |
Prepaid expenses |
✗ |
✓ |
Bills to receive |
✗ |
✓ |
Deferred revenues |
✗ |
✓ |
Performance |
Slower |
Faster |
General ledger |
More journal entries |
Fewer journal entries |