Odoo migration assessment: what to inspect before estimating

A reliable Odoo migration estimate starts with custom code, data condition, integrations, accounting history, and operational exceptions, not only the source and target versions.

A migration proposal based only on the database size and Odoo version is guesswork. Two databases on the same version can require very different work because one follows standard flows while the other depends on custom modules, automated jobs, external systems, and years of inconsistent data. The assessment should produce a decision-ready scope. It must show what will move, what will be rebuilt, what will be retired, how the result will be validated, and which unknowns can still change cost or timing. Map the real system Start with installed applications, custom modules, Studio changes, server actions, scheduled jobs, reports, email templates, access rules, and external connections. Then compare that technical inventory with what users actually do. Unused modules should not quietly increase the migration scope, while critical spreadsheet workarounds should not remain invisible. Profile the data before writing scripts Count records by model and status, identify duplicates, inspect required fields, and sample older transactions. Pay special attention to products, partners, taxes, units of measure, analytic structures, lots, serial numbers, and open documents. Data problems that are harmless in the old system may fail stricter rules in the target system. Separate four kinds of work Classify every item as standard configuration, data migration, custom development, or process change. This prevents one vague migration budget from hiding very different risks. It also makes trade-offs easier when the team must reduce scope. Define acceptance evidence Write validation rules before implementation begins. Finance may require trial balance and open-item reconciliation. Inventory may require quantity and valuation checks by company and warehouse. Sales and purchasing need document counts, totals, statuses, and sampled end-to-end flows. Practical checklist Inventory custom modules and every external integration. Identify open transactions separately from closed history. Record data volumes, duplicates, missing values, and ownership. Choose migrate, archive, rebuild, or retire for each scope item. Agree measurable validation rules and business sign-off owners. Final decision The assessment is complete when a decision-maker can understand the cost drivers and validation plan without relying on verbal assumptions. If important unknowns remain, estimate a discovery phase rather than hiding uncertainty inside a fixed promise.