Proof / Case study

QuickBooks to Odoo, reconciled to the penny.

A container and packaging supplier moved its books off two legacy systems and onto Odoo 19 Enterprise under a CFO-set reconciliation standard, with receivables, payables, and inventory loaded as sub-ledger detail rather than lump-sum entries.

Client name withheld by policy. The scope, acceptance standard, and migration result are stated below.

Industry
Container and packaging supplies
Service
Accounting Migration / QuickBooks to Odoo

01

Starting point

The company ran its accounting on a hosted legacy accounting platform and a separate legacy inventory system, and was moving to Odoo 19 Enterprise under a fixed-price milestone contract.

The CFO set a hard reconciliation standard: the opening entry had to tie to the accountant trial balance at the cutover date, and receivables, payables, and inventory had to arrive as sub-ledger detail rather than lump-sum entries.

02

Constraints

  • A generic import could not meet that reconciliation bar.
  • The cutover date was re-decided twice at client direction mid-project.
  • The business needed its warehouse footprint and its customizations to survive the change intact.

03

Scope

  • A full inventory of the source accounting and inventory systems: chart of accounts, accountant trial balance, open receivables, payables, inventory detail, and the warehouse footprint across all six locations.
  • Chart of accounts imported and an opening-balance journal entry built from the accountant trial balance at the cutover date.
  • Receivables, payables, and inventory loaded as sub-ledger detail, with monthly catch-up entries reconciled penny-accurate against the legacy reports and an equity plug itemized into monthly entries.
  • Odoo 19 Enterprise configured around the reconciliation standard, with the three custom modules carried forward across the version upgrade: a bulk date modifier, project costing, and sales-order customization.
  • All six warehouse locations kept, with a run-down-then-archive plan for one and drop-ship deposits preserved at another.
  • Acceptance sign-off against the reconciliation standard, then go-live with the legacy systems treated as a one-time import source rather than a live sync.

04

Approach

Stack

Odoo 19 Enterprise 路 legacy accounting platform (source) 路 legacy inventory system (source) 路 three carried-forward custom modules

  1. 01

    Audit

    Full inventory of the source accounting and inventory systems: chart of accounts, accountant trial balance, open receivables, payables, inventory detail, and the warehouse footprint across all six locations.

  2. 02

    Map & Migrate

    Chart of accounts imported and an opening-balance journal entry built from the accountant trial balance at the cutover date. Receivables, payables, and inventory were loaded as sub-ledger detail, with monthly catch-up entries reconciled penny-accurate against the legacy reports and an equity plug itemized into monthly entries.

  3. 03

    Configure & Integrate

    Odoo 19 Enterprise configured around the reconciliation standard, with the three custom modules carried forward across the version upgrade: a bulk date modifier, project costing, and sales-order customization. All six warehouse locations were kept, with a run-down-then-archive plan for one and drop-ship deposits preserved at another.

  4. 04

    UAT & Cutover

    Acceptance sign-off against the reconciliation standard, then go-live with the legacy systems treated as a one-time import source rather than a live sync. The opening entry date is the cutover boundary, and pre-cutover transactions remain in the legacy systems. Each time the cutover date was re-decided at client direction, the recut was rebuilt from source reports.

05

Evidence

The books moved onto Odoo 19 Enterprise with the CFO reconciliation standard met: the opening balance tied to the accountant trial balance at the cutover date, receivables, payables, and inventory landed as sub-ledger detail, and monthly catch-up entries reconciled penny-accurate against the legacy reports.

All six warehouse locations were kept, with the run-down-then-archive plan in place for one and drop-ship deposits preserved at another. The three custom modules carried forward across the version upgrade, and the legacy systems remain where the pre-cutover transactions live.

Oversight

The client's CFO set the reconciliation standard and acceptance was signed off against it. Each time the cutover date was re-decided at client direction, the recut was rebuilt from source reports.

06

Limitations

  • The opening entry date is the cutover boundary, and pre-cutover transactions remain in the legacy systems.
  • The legacy systems were treated as a one-time import source rather than a live sync.

Start a project

Have a project like this one?

Tell us which document your team retypes into your ERP. A senior engineer replies with a written plan. Fixed price, agreed before we start.

Start a project

Free written plan and a quote. No meeting.

Back to all case studies