Upgrading Odoo 16 to 19 in Half the Time and Cost of a Gold Partner Quote
To protect the privacy of the client and the Gold partner involved, we have not named either party in this case study. The project details and figures described are real.
The situation
A manufacturing business in Sydney had been running Odoo 16 for about two years. They used it for sales, purchasing, inventory, manufacturing (MRP), accounting, and basic CRM. Around 45 active users. The system worked well, but they were starting to hit limitations โ features available in newer versions, modules that had been significantly improved, and growing concerns about being left behind on security patches.
They reached out to their original implementation partner โ a well-known Odoo Gold partner โ for an upgrade quote. What they received shocked them.
The Gold partner quote
The Gold partner proposed a 14-week project at $85,000. The scope included:
- 3 weeks of "discovery and planning"
- 2 weeks for environment setup and migration tooling
- 4 weeks for data migration and testing (v16 โ v17 โ v18 โ v19 sequential upgrade)
- 2 weeks for custom module migration
- 2 weeks for UAT and bug fixes
- 1 week for go-live and hypercare
The pricing broke down to roughly $6,000/week, spread across a project manager, a technical lead, two developers, and a functional consultant. The client was told this was "standard for an upgrade of this complexity."
Three weeks of "discovery and planning" for an upgrade of a system the partner originally implemented. They already had all the documentation. This is padding.
How we got involved
The client wasn't comfortable with the quote and decided to get a second opinion. They found us through our blog and reached out for an honest assessment.
We asked for read-only access to their Odoo 16 instance and their Odoo.sh project. Within a day, we came back with our assessment:
- The database was clean and well-structured โ a straightforward upgrade candidate
- They had 4 custom modules, all relatively simple (a custom report, a field extension, a webhook integration, and a barcode workflow tweak)
- No third-party OCA modules that would create compatibility headaches
- The data volume was moderate โ about 120,000 sale order lines, 80,000 stock moves, 3 years of accounting entries
- Odoo's native upgrade service handles the heavy lifting for the database schema migration
Our approach
We proposed a 6-week project at a fixed price of $32,000. Here's how:
Week 1: Assessment and custom module audit
No 3-week discovery phase. We spent 2 days auditing the system in detail โ custom modules, data integrity, third-party integrations, and configuration specifics. We documented everything that needed attention during the upgrade and shared it with the client.
Week 2: Upgrade the database using Odoo's upgrade service
Odoo provides a native database upgrade service that handles the schema migration from version to version. We submitted the database, reviewed the upgrade log, and identified the issues that needed manual attention. This is a step that many large partners overcomplicate โ or skip entirely, choosing to rebuild instead (which costs more).
Week 3: Custom module migration
We migrated all 4 custom modules to Odoo 19. The changes were mostly API updates โ deprecated methods, OWL component updates for the frontend, and a few field type changes. One module (the barcode workflow) needed a partial rewrite because Odoo 19 overhauled the barcode app. Total custom module migration: 4 days of work by a single senior developer.
Week 4: Testing and validation
We set up a staging environment with the upgraded database and custom modules. The client's team ran through their core workflows:
- Sales order โ manufacturing order โ delivery โ invoice โ payment
- Purchase order โ receipt โ vendor bill โ payment
- Bank reconciliation and BAS reporting
- Inventory adjustments and cycle counts
- Manufacturing BOMs and work orders
Issues found during testing were fixed same-day. No ticket queue, no change request forms โ the consultant who found the issue with the client fixed it immediately.
Week 5: Data refresh and final testing
We did a fresh database upgrade with the latest production data to ensure nothing was missed. Final round of testing. The client signed off.
Week 6: Go-live and hypercare
Go-live was done over a weekend. Final database upgrade on Friday evening, custom modules deployed Saturday morning, team verification Saturday afternoon, live on Monday. We provided 5 business days of hypercare โ our consultant was available on-call for any issues. Two minor issues came up (a saved filter that didn't survive the upgrade, and a print template alignment issue). Both fixed within the hour.
6 weeks. $32,000. Same database, same customisations, same business continuity โ just on Odoo 19 with all the new features, performance improvements, and security patches. The Gold partner quoted 14 weeks and $85,000 for the same outcome.
Why the difference?
The Gold partner's quote wasn't dishonest โ it reflected their operating model. They have:
- Multiple people on every project โ PM, tech lead, developers, functional consultant. Each person adds cost but not necessarily value for a well-scoped upgrade.
- Rigid methodology โ 3 weeks of planning for a system they already know. Templated phases that don't flex for simpler projects.
- Higher overheads โ Office space, management layers, sales teams, partner programme fees. The hourly rate has to cover all of that.
- Risk-averse scoping โ They pad timelines because junior developers might hit issues that a senior consultant wouldn't. The buffer is built into the price.
Our model is different:
- One senior consultant ran the entire upgrade โ the same person who audited the system, migrated the modules, tested, and went live. No handoffs, no knowledge loss.
- No discovery padding โ We assessed the system in 2 days, not 3 weeks. A senior consultant can look at an Odoo instance and immediately understand what needs work.
- We use Odoo's native tools โ The upgrade service exists for a reason. We don't reinvent the wheel or rebuild things unnecessarily.
- Fixed pricing โ We scoped accurately because the person quoting is the person doing the work. No surprises.
The result
The client is now running Odoo 19 with all their custom modules, full data history, and zero business disruption. They saved over $50,000 compared to the Gold partner quote and got back online 8 weeks sooner. Their staff barely noticed the change โ which is exactly how a well-executed upgrade should feel.
Thinking about upgrading?
If you're on an older version of Odoo and you've been quoted a large sum for an upgrade, it's worth getting a second opinion. Many upgrades are far simpler than partners make them out to be โ especially if you're using mostly standard Odoo with a few custom modules.
Get in touch and we'll give you an honest assessment of what your upgrade actually involves, how long it should take, and what it should cost. No obligations, no padding.
Facing a similar situation?
We've rescued implementations, recovered databases, and delivered upgrades across Australia. Let's talk about what you need.
Get in touch โ