# How to rehearse an Odoo 19 inventory accounting upgrade

Accept the upgrade only after stock quantities, operational valuation and financial accounting reconcile under the target configuration. Reaching a working invoice screen does not establish that the first close will explain received-but-unbilled stock or older interim balances.

This is a source-based rehearsal for Odoo 19, not a tested menu walkthrough. No exact target build was executed. The numerical fixture supplies expected economic results; your team must demonstrate the generated entries, accounts and reports in its actual edition, installed modules and localisation.

Use the [Odoo 19 valuation rehearsal worksheet](#template) to capture that evidence. Keep the rehearsal database isolated and recoverable so failed migrations can be repeated from the same source state.

## Pin the product and accounting configuration

Record the starting release, target build, edition, hosting model, installed accounting and inventory modules, customisations and upgrade service. Capture the selected accounting practice, valuation timing, cost method and account mappings.

Odoo's official 19.0 documentation source distinguishes operational stock valuation from accounting updates, and explains periodic/perpetual valuation, closing entries and accrual review. The versioned documentation is evidence for the rehearsal design, not proof of every deployed build's behaviour. [Odoo, 19.0 inventory accounting documentation source](https://raw.githubusercontent.com/odoo/documentation/19.0/content/applications/finance/accounting/get_started/inventory_valuation.rst).

The official valuation cheat sheet separately describes costing and accounting patterns. Its broad regional practice descriptions should not be read as universal legal requirements. [Odoo, 19.0 valuation cheat sheet source](https://raw.githubusercontent.com/odoo/documentation/19.0/content/applications/inventory_and_mrp/inventory/inventory_valuation/cheat_sheet.rst).

Fiscal localisation provides another layer of accounts and tax configuration. Record the actual package rather than assuming inventory valuation follows automatically from the company country. [Odoo, 19.0 fiscal localisations source](https://raw.githubusercontent.com/odoo/documentation/19.0/content/applications/finance/fiscal_localizations.rst).

## Preserve the starting accounting position

Export stock quantities and values by company, product and relevant location at a defined cut-off. Retain the corresponding trial balance, valuation accounts, interim accounts and open purchase/sales document links.

Identify receipts without bills, deliveries without invoices, bills before receipt and invoices before delivery. Assign owners to unmatched or duplicated records before attempting to reconcile the upgraded totals. Older unexplained balances should not be merged into a generic migration adjustment.

Keep account type and purpose with the mapping. Two accounts with similar names can serve different roles in stock valuation, variation, expense and accrual workflows. Have the controller approve the intended treatment, then let the implementer demonstrate how the target build produces it.

Use a frozen copy for each rehearsal. If someone posts a missing vendor bill in the source after extraction, record that as a new source revision rather than comparing the target to a moving balance.

## Understand the documented upgrade issue

The 19.0 accounting source includes an Anglo-Saxon Perpetual upgrade discussion addressing stock input/output interim balances. It describes a rebalancing approach and company-specific review. Treat those instructions as a scoped migration subject, not permission to clear every interim account indiscriminately.

An old debit balance might represent a real received-but-unbilled obligation or another documented mismatch. Trace it to source documents before deciding whether it belongs in valuation, accruals or an error correction.

Create a migration journal specification showing original accounts, destination accounts, documents represented and expected post-upgrade reports. Require an independent review of the economic effect, including whether an existing accrual will later reverse.

This guide intentionally provides no copy-and-run migration journal. The correct accounts and generated entry sequence depend on the recorded configuration and source population.

## Run the synthetic transaction fixture

Assume a single company, one product costing 100 currency units per item, no tax, no price differences and no opening balance. The rehearsal uses an approved perpetual accounting configuration. All goods belong to the company and no impairment or production occurs.

Receive eight units and post the matching supplier bill of 800. Sell and deliver three units, invoicing the customer for 450. Then receive two additional units at the same cost, but do not post their supplier bill before close.

Operational quantity is eight minus three plus two, or seven units. Operational stock value is 700. Posted supplier bills total 800, and the customer owes 450. The two unbilled units represent a 200 receipt requiring close review.

For the approved economic result, cost of sales is three times 100, or 300. Revenue is 450 and gross profit is 150. Final inventory should represent seven units at 100, not only the five units remaining from the billed receipt.

## Reconcile the closing entries and accruals together

Before the unbilled receipt is reflected financially, the simplified billed-only position contains inventory of 500 and receivables of 450 against payables of 800 and profit of 150. It balances at 950 while operational stock is 700.

The required combined economic effect of closing review is a 200 increase in inventory and a 200 accrued receipt liability. Final assets are inventory 700 plus receivables 450, or 1,150. Liabilities are billed payables 800 plus accrued receipts 200, or 1,000. Adding profit of 150 balances the result.

Inspect stock-closing and accrual entries as a combined sequence. Depending on configuration, the documented workflow can use a variation or buffer account before accrual allocation. Do not assume one universal debit/credit journal from this net economic bridge.

Trace the 200 through the actual generated entries and check that buffer balances are explained. If stock valuation and accrual functions both appear to add 200 to inventory, investigate before posting both. A correct result cannot include the same unbilled receipt twice.

## Rehearse later billing and a failure path

When the later 200 supplier bill arrives, follow the configured reversal and clearing process. The final inventory should remain 700 if no other movement or price difference occurs. The liability should move from accrued receipts to billed payables, not become 400 for the same goods.

Suppose the upgrade team posts the 200 closing effect but fails to clear its accrual when the bill is processed. The duplicate liability or related expense/variation balance must appear in the receipt-to-bill reconciliation. A paid supplier balance alone may not detect the leftover accrual.

Stop close acceptance for that population. The accountant identifies the receipt and its bill, the implementer traces reversal rules and the controller approves the supported correction. Rerun the close fixture from the frozen state to demonstrate that the repaired process produces the correct result repeatedly.

Add backdated movements, returns, invoice-before-delivery and production cases only when the business uses them. Each changes the expected bridge and needs its own fixture rather than being declared covered by this ordinary purchase/sale test.

## Accept the first close, not just the upgrade job

Inventory operations owns quantities and movement evidence. Purchasing owns bill matching. The accountant owns valuation and accrual schedules. The implementer owns migration mechanics, and the controller accepts the accounting result and any unresolved balances.

Before completion, confirm:

- Target edition, build, modules and localisation are recorded.
- Starting quantities, values, ledger and interim balances are preserved.
- Migration journals explain the original document population.
- The seven-unit fixture closes at inventory 700 and profit 150.
- Closing and accrual entries do not duplicate the unbilled 200.
- Later billing clears the accrual without changing unchanged stock value.
- Failed and repeated runs can be traced to the same source revision.
- Product-specific edge cases have accepted results or explicit go-live restrictions.

Retain actual entry exports and reconciliations with the worksheet. Use [inventory and manufacturing reconciliation](https://erplocalization.com/guides/inventory-manufacturing-landed-cost-localization/) for broader costing and [historical cutover controls](https://erplocalization.com/guides/erp-cutover-tax-history/) for retained evidence.

Source verification date: 17 October 2026. Official Odoo 19.0 source files were readable; the public HTML pages were unreliable during research. This remains a rehearsal guide until the reader's target build has produced the retained acceptance evidence.

## Worksheet: Odoo 19 inventory close rehearsal worksheet

Copy this worksheet for each case. It records decisions and evidence; it does not determine the tax or legal treatment.
Show the worksheet

Use with the [Odoo 19 guide](https://erplocalization.com/guides/odoo-19-inventory-accounting-upgrade/). This is a rehearsal specification, not proof that a live Odoo build was executed.

### Environment record

- Exact Odoo build, edition, hosting and installed modules:
- Country localization, customizations and opening balances:
- Product cost method, valuation configuration and accounts:
- Test copy date, operator and evidence directory:

### Transaction sequence

Run and retain receipts, supplier bills, customer deliveries/invoices, stock valuation reports, ledger reports and closing/accrual results. Describe actual generated entries rather than assuming the synthetic combined effect is one universal journal. Reconcile quantities and values at each checkpoint.

Rehearsal: receive/bill8 units at100, sell3 for450, receive2 unbilled. Remaining7 units value 700; COGS300 and profit150. Before the approved combined close effect, billed-only stock500 plus AR450 equals AP800 plus profit150. After recognising the additional200 stock and200 unbilled liability, assets1,150 equal liabilities1,000 plus profit150.

### Completion evidence

- Later supplier bill200 clears the matching accrual without duplicating stock:
- Count and valuation differences explained:
- Duplicate accrual and reversal tests:
- Actual configured closing process and source references:
- Controller and implementer sign-off:

Stop if the generated entries cannot be reconciled. A source-based expectation does not override observed build behaviour.

## Related on this site

- [Country pages](https://erplocalization.com/countries/): key facts with sources
- [E-invoicing matrix](https://erplocalization.com/e-invoicing/): country × ERP support
- [All guides](https://erplocalization.com/guides/)

Vendor documentation is cited only as an example of the level of evidence to ask for; it is not a recommendation or a ranking. This guide is general information, not tax or legal advice. Checked 2026-10-17.

Related: [Glossary](https://erplocalization.com/glossary/) – abbreviations and terms used in these guides (SAF-T, Peppol, CTC, EN 16931, IFRS and more).

---
Canonical: https://erplocalization.com/guides/odoo-19-inventory-accounting-upgrade/ · Last updated: 2026-10-17 · Informational only; not tax, legal or implementation advice. Featured placements are paid or promotional and do not affect the compliance data. Data: CC BY-NC 4.0 (commercial use needs a licence: https://erplocalization.com/data-licence/), attribution "ERP Localization (erplocalization.com)".
