There’s no honest single price for an Odoo upgrade, because the database is only part of the job. Here’s what actually drives cost.
The four cost drivers
1. Custom modules (the biggest factor)
Every major version changes APIs: attrs removed in Odoo 17, <tree> renamed to <list> in 18, _sql_constraints replaced by models.Constraint in 19 and 20. Each custom module needs porting and testing. Ten small modules are cheap; fifty deep overrides of accounting are a project.
2. Number of version hops
Odoo 19 → 20 is one hop. Odoo 15 → 20 is five, crossing the OWL 2 rewrite and more. Older versions also need engineer-assisted work.
3. Database and filestore size
Bigger data means longer runs, more validation and a longer cut-over window.
4. Integrations
Payment, shipping, eCommerce, banking and EDI connectors all need re-testing on the new version.
Three complexity levels
| Level | Typical database | Typical timeline |
|---|---|---|
| Standard setup | Standard apps, 0–5 small custom modules | 1–2 weeks |
| Normal customisation | 5–25 custom or App Store modules, a few integrations | 3–6 weeks |
| Heavy customisation | 25+ modules, deep overrides, custom UI, large data | 6–12 weeks |
How to reduce the cost
- Remove unused modules before the upgrade. Every uninstalled addon is one less to port.
- Replace custom code with standard features. Newer versions often cover what you once had to build.
- Upgrade more often. One hop a year is far cheaper than five hops at once.
We quote every upgrade on its complexity after a free assessment. See pricing for what’s included.
FAQ
Is the official Odoo upgrade service free?
Odoo S.A. includes upgrades of standard Enterprise data in Enterprise subscriptions. Custom modules, third-party apps, testing and fixing are not included and are usually the bulk of the work.
Is it cheaper to reimplement than to upgrade?
Rarely. Reimplementation loses history and repeats configuration work. It only makes sense when the old setup no longer matches how the business works.