From our projects
We are currently running six upgrades from Odoo 16 and 17 Enterprise to Odoo 19 Enterprise — the same v16→v19 ground your upgrade covers, one release short of v20. Track record ›
The case for upgrading now
v16 has a clear reason to upgrade now
Odoo officially supports its three most recent major versions. With v20 as the current release, that window covers v18, v19, and v20. Moving v16 into that window takes you out of the 25% legacy-version surcharge Odoo introduced on Enterprise contracts in 2026 — an easy saving on your next renewal, on top of current security patches and everything new in the platform since.
It's also a chance to reconnect with a much larger, more active developer community — today's codebase draws far more attention than v16's does at this point.
What actually changes between v16 and v20
Frontend framework
Odoo's web client has continued moving further onto the OWL (Odoo Web Library) framework, replacing the older legacy JS widget system. Custom modules with frontend code written against the old system typically need real rework, not just a compatibility shim.
Python & PostgreSQL requirements
Minimum supported Python and PostgreSQL versions have moved forward across this range. If you're self-hosted, the infrastructure upgrade is a separate, parallel project from the Odoo upgrade itself — worth scoping before the migration, not discovered during it.
Module and API changes
Four major releases means four years of deprecated fields, renamed models, and shifted ORM conventions to account for. This is the bulk of the actual migration-script work for any custom module — not a single breaking change, but an accumulation of smaller ones.
New capabilities you'd gain
Beyond getting back inside the support window, four versions of feature development — deeper automation, AI-assisted tooling that v19 expanded and v20 pushes further, and refinements across manufacturing, inventory, and the website builder — become available the moment you land on v20, not something you have to opt into separately.
Community or Enterprise changes the path
Same version gap, two very different projects. Which edition you land on decides whether Odoo's own upgrade service carries the jump, or your migration scripts do.
Already on Enterprise? Then neither penalty applies — an EE to EE jump is the cleanest route there is, and your estimate reflects that.
Before you ask us
Questions about the v16 → v20 jump
The three that come up on every v16 call. Answered here so you don't have to book one to get them.
Something specific to your instance?Ask a human — no form gate. ›