Now booking Q3 — avoid the 25% legacy-version surcharge before it bites Get a migration audit →
Odoo migrations & upgrades

Off legacy. Onto current. Without the multi-quarter rebuild.

v13 / v14 / v15 / v16 → v18 / v19 / v20. We do parallel-environment migrations with full data diff before we touch production. Weekend cutover, rollback path tested, 30-day stabilisation included. Your customisations preserved — not rewritten on the fly.

Get a migration audit → See how we migrate
Why this is urgent

The legacy surcharge is real. And growing.

Odoo’s 2026 contract terms apply a 25% surcharge to v16 and older. Every year you delay is another tax on running the same code. And the longer you wait, the bigger the jump — v15 → v20 is harder than v15 → v18.

The real cost isn’t the surcharge though. It’s the modules & integrations that quietly stop working when you finally do upgrade. We catch those before they bite.

  • 25% Odoo surcharge on v16 and older — live now
  • OCA modules drop support for old versions within ~12 months
  • Python & Postgres versions on old Odoo can’t get OS security updates
  • Each year of delay compounds — v15→v18 is half the work of v15→v20
  • Your custom modules: the longer you wait, the more API churn
Odoo 15 Community
25% legacy surcharge · out of OCA support
YOU
↓ migrate
Odoo 19 Enterprise
Active version · full OCA · AI-ready
TARGET
5 wks
typical
11 hrs
downtime
0
data breaks
How we migrate

Six steps. No surprises.

Same shape whether you’re jumping one version or three. Bigger jumps just mean more cycles, not different work.

1. Code audit

Every custom module, every integration, every server action. We tell you what migrates clean and what needs a rewrite, before quoting.

2. Module compatibility

OCA & third-party modules checked against the target version. Replacements identified for what’s been deprecated.

3. Parallel staging

New version stood up beside your live. Same data, same modules, same UAT runs. You can compare side-by-side.

4. Data diff

Row-level reconciliation between old and new staging. Anything that doesn’t reconcile is flagged before you sign off.

5. Weekend cutover

Planned window, rollback path tested, freeze on the old system during cut, smoke tests on the new before unlocking users.

6. 30-day stabilise

Bug-watch and tuning included. Real users always find what staging misses. We fix it before you have to ask twice.

Source & target versions

The map of where we can take you.

v13 Community → v18 v13 Enterprise → v18 v14 → v18 / v19 v15 → v18 / v19 v15 → v20 v16 → v19 / v20 v17 → v20 Community → Enterprise Enterprise → Community On-prem → Odoo.sh Odoo.sh → on-prem SaaS → Self-host

v12 and older — possible but slower. We’ll quote honestly.

Two ways to upgrade

In-place. Or done right.

In-place upgrade

  • Take production down on Friday, “migrate,” hope
  • Find broken custom modules at 2 AM Sunday
  • No data diff — you find missing rows weeks later
  • Rollback means restoring a backup and losing the weekend’s data
  • Quoted as “hours” with a soft ceiling that’s never the actual price
  • Vendor disappears the Monday after

Parallel migration

  • New version stood up alongside live for weeks of comparison
  • Every custom module rebuilt or repackaged before cutover
  • Row-level data diff signed off before we go live
  • Rollback path tested and ready — cutover is reversible
  • Fixed-price quote, single bill, no “scope change” surprises
  • 30-day stabilisation included — we’re still around Monday
$2,800+starts at, fixed scope
4–6 wkstypical end-to-end
11 hrsmedian cutover downtime
0reconciliation breaks on shipped migrations

Get a free migration audit.

We’ll look at your current Odoo, your customisations, and your integrations. Within 5 business days you’ll have a written audit — with a fixed-scope quote for the migration. No deck.