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
- 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.
- 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.
- 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.
- 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 projectFree written plan and a quote. No meeting.