Inventory value is not determined by unit count alone. Warehouse and finance can agree on 80 units and still report different values because cost calculation and posting timing differ. Before implementing Odoo in a Saudi business, the useful question is how you will explain unit cost and reconcile inventory to the accounts, rather than which setting produces a more attractive number this month.

Odoo 19.0 documentation separates the cost method from the accounting valuation method and its timing 1. The IFRS Foundation’s IAS 2 summary describes FIFO or weighted average for ordinarily interchangeable inventory, and measurement at the lower of cost and net realisable value 2. A software selection needs to follow a finance-approved policy.

At ToDoOps, we connect that decision to receipts, issues, bills and opening balances. Start with our Odoo implementation approach to see how inventory fits into the wider project, then use the example below to prepare the decisions that need testing before go-live.

Separate three inventory decisions

When someone says “we use FIFO”, a warehouse colleague may mean picking older goods first, while finance means assigning older cost layers to an issue. These are different decisions, even though both concern inventory.

Decision Question it answers Acceptance evidence
Physical movement Which lot or item will leave the warehouse? A movement carrying the correct product, quantity and lot
Cost method What value leaves, and what value remains? An explanation of movement cost and closing value
Accounting valuation timing When does the effect reach the accounts? Reconciliation with bills, invoices and closing entries

Odoo’s valuation cheat sheet distinguishes removal strategies such as FEFO from financial valuation. Expiry dates can guide physical picking while another method assigns cost. If your main problem is selecting a lot before its expiry, use the FEFO guide. This article answers the separate cost and accounting question.

A hypothetical example: the same 80 units, three values

Assume one product with no opening stock. Receive 100 units costing SAR 40 each, then another 100 costing SAR 60 each. Issue 120 units after both receipts. Purchase cost totals SAR 10,000 and 80 units remain. This is a worked illustration excluding tax, freight, other additional costs, returns and negative stock.

Method in the example Explanation of the issue Cost of 120 issued Value of 80 remaining
FIFO 100 × 40, followed by 20 × 60 SAR 5,200 SAR 4,800
AVCO Weighted average: 10,000 ÷ 200 = 50 SAR 6,000 SAR 4,000
Standard, assumed at 45 120 × 45 SAR 5,400 SAR 3,600

FIFO leaves 80 units from the second cost layer: 80 × 60 = SAR 4,800. Weighted average leaves 80 × 50 = SAR 4,000. In each case, the issue plus the remaining value reconciles to the SAR 10,000 purchase cost.

The assumed standard cost gives 5,400 + 3,600 = SAR 9,000. The SAR 1,000 difference from actual purchases needs an explanation and accounting treatment appropriate to the configuration. It is not a saving. The SAR 800 difference between the FIFO and AVCO closing values is not cash released into your bank account or proof of operational improvement either.

This is why confirming the quantity is only part of acceptance. Finance must also explain the value left, the cost issued and the differences. For the wider implementation scope, our Odoo cost, time and savings calculators can help structure an initial estimate. They do not select your inventory accounting policy.

What changes in the Odoo 19 accounting reference?

The Odoo 19 reference used here includes Periodic at closing and Perpetual at invoicing, alongside a separate cost-method choice. It distinguishes the Inventory application’s movement-based value from accounting valuation affected by bills, invoices and closing processes 1.

We therefore do not carry over an older explanation that assumes identical journal-entry behaviour for every receipt and delivery. Review company settings, category overrides and accounts, then test a receipt without its vendor bill, a delivery before invoicing and a closing process. A difference may concern the timing between a physical movement and its financial document, rather than an incorrect unit cost.

The practical requirement is a movement report, a valuation report and journal entries that can be traced to their sources. Two totals captured at different dates do not establish a defect. Fix the comparison date, report type and posted-document population before deciding what needs correction.

Choose from your policy and product data

Start with the question finance needs to answer and the policy it approves. Do you need to follow cost layers through receipts and issues? Are interchangeable goods repeatedly purchased at changing prices? Are you using a fixed reference cost that needs maintenance and an explanation of purchase-price differences? Do not select a method because this example gives a higher or lower balance.

IAS 2 also distinguishes ordinarily interchangeable goods from goods that are not ordinarily interchangeable, for which specific identification is used 2. Product characteristics and finance policy therefore matter. Enabling lots or serial numbers in Odoo has its own data and operational requirements; it does not remove the need to agree the cost policy.

For freight and import charges, review landed costs as part of the decision. Allocating additional costs is a separate workflow, and those costs are not silently included in this example. Where goods go back to suppliers, the vendor returns guide explains why inventory value removed may differ from the supplier’s credit amount.

An acceptance test shared by warehouse and finance

Prepare small cases that your team can calculate independently. Test products can represent the methods under consideration, with the same receipts and issues applied to each. We define the preparation and execution of these tests within the agreed implementation scope.

  1. Opening balance: match quantity, unit of measure, value and cutoff date to approved records, not merely the import file total.
  2. Receipt at a different price: review the effect on unit cost and inventory value, followed by the vendor bill and its status.
  3. Issue after receipt: explain movement cost and remaining value separately from the selling price.
  4. Late document: test an unbilled receipt or delivery before invoicing, then review the closing effect under your configuration.
  5. Exception: choose a return, count difference or negative-stock case and assess it separately from the simple illustration.

For every case, keep the movement reference, linked document, date, quantity, expected value and result. “The number is wrong” then becomes a specific question the team can investigate. Review Odoo applications and industry workflows to identify the connected operations that belong in your scope.

Questions before approving the method

Does FIFO force the warehouse to pick the oldest physical item?

Do not rely on the name as evidence. Cost assignment and physical removal strategies are separate decisions in the reference used here. Test the lot that actually left and the value assigned to the issue, using the relevant records for each.

Does Standard mean the actual purchase bill no longer matters?

The bill remains a financial document. A fixed cost requires review of its difference from actual purchase prices, the accounts involved and the treatment of those differences. The example’s SAR 1,000 difference is a finance question, not a gain delivered by the software.

Can we change the method directly in a running database?

Prepare a test copy, an approved opening position and a transition and reconciliation plan first. A change to an existing policy requires an explanation of opening stock, open movements and closing effects before production settings are changed.

Is the guided demonstration sufficient to test valuation?

The guided demonstration illustrates sales, stock and invoicing with sample data. Cost-method and accounting-valuation acceptance requires a configuration representing your business and cases approved by finance.

Start with a decision you can explain at the first close

The useful outcome is a warehouse team that knows the quantity, finance that explains the value and an owner reading a number with a clear source and date. That requires agreed cost policy, settings, accounts, data and acceptance tests before go-live.

Explore ToDoOps implementation services, organise the project using the central estimation calculators, then discuss your requirements. Bring your current version, product characteristics, an anonymised sample report and the differences you want resolved so we can define the work before agreeing its scope.

References

Odoo — official 19.0 documentation: Inventory valuation from the accounting perspective, Valuation cheat sheet, and Valuation of stock movements and inventory operations. Reviewed on 9 November 2026 to distinguish costing, picking and posting timing. Original URLs are retained in the internal source register.

IFRS Foundation — IAS 2 Inventories summary: inventory cost, cost-assignment formulas and the lower-of-cost-and-net-realisable-value principle. This supports the accounting concepts, not a claim that a particular database applies every requirement automatically.