ERP Data Migration Without the Go-Live Surprises
ERP data migration is the controlled transfer of master data, open transactions, and selected history so day-one trial balance, AR/AP aging, and inventory match the legacy freeze. For SMEs on Dynamics 365 or Odoo: audit → cleanse → map → multi-pass trial load → validate → cutover → hypercare—and treat dirty masters, open items, and lot/serial history as the usual cutover killers.
TL;DR — Key takeaways
- Prefer month-end or quarter-end cut-offs; mid-month freezes force partial-period splits and harder reconciliation.
- Agree whether on-hand loads include or exclude quantities already on open PO receipts—ambiguity here is a reconciliation trap.
- Accuracy: the data correctly represents reality (a customer's actual address, a product's real cost).
- Simple single-company, clean masters: data workstream often fits inside a 3–4 month overall implementation with continuous cleansing.
What ERP Data Migration Actually Means
ERP data migration is the structured transfer of master data (customers, products, vendors), open transactions, historical records, and configuration from one or more legacy systems into the data model of a target ERP. It is not a file copy. Done properly, it is a sequence of extraction, cleansing, transformation, loading, and reconciliation steps that preserve accuracy, completeness, and referential integrity so the new system can transact on day one.
Practitioners often use ERP data conversion as a near-synonym. Conversion emphasizes reformatting and transforming values (chart-of-accounts rollups, unit-of-measure crosswalks, tax codes); migration is the broader program that includes conversion plus scoping, governance, trial loads, cutover, and sign-off. When search or RFPs say "data conversion," they almost always mean this full workstream.
Migration is also where most ERP implementations get into trouble. Gartner predicts that by 2027, more than 70% of recently implemented ERP initiatives will fail to fully meet their original business case goals, and as many as 25% will fail catastrophically, with data risks (inaccuracy, redundancy, and loss during legacy migration) identified among the key implementation roadblocks. A separate McKinsey analysis found that roughly three-quarters of ERP transformations fail to stay on schedule or on budget. The data layer is the single largest controllable variable behind those numbers.
For SMEs, the stakes are concentrated. A mid-size business running one chart of accounts, one inventory ledger, and one customer list does not have margin for reconciliation breaks on day one. Whether you are moving into Microsoft Dynamics 365 Business Central, Dynamics 365 Finance & Operations, or Odoo, the migration pipeline is the same shape; only the tooling and entity model differ.
The Seven-Stage ERP Data Migration Pipeline
Every credible migration runs an enhanced ETL pipeline that ends in cutover and hypercare—not just a one-shot load. Microsoft formalizes the strategy side in Success by Design; Odoo partners follow the same sequence when loading master data via the built-in importer. Treat the pipeline as iterative: you will loop through cleansing, mapping, trial loads, and validation several times in a sandbox before the final cutover.
Teams that estimate cutover duration from a tiny sandbox extract almost always underestimate. Operations that dominate the weekend window—index rebuilds, conversion scripts, full validation passes—do not scale linearly with row count. Rehearse at production-like volume so the go/no-go decision is a measurement, not a guess.
- 011. Plan, assess, and audit
Inventory every source system, classify data into master, reference, document, and transaction buckets, and define scope and quality thresholds. Decide now how much history you will migrate (typical SME practice is 1–3 years of transaction detail, sometimes 3–5 for operational reporting, extended only for audit or tax). Assign Data Owners (senior business leaders accountable for a domain) and Data Stewards (subject-matter experts who execute governance day-to-day) before any data moves.
- 022. Extract
Pull data via ETL tools, vendor APIs, SQL queries against the source database, or structured exports. For Dynamics 365, exports from AX, GP, NAV, or SL can later feed the Data Management Framework or the Business Central Cloud Migration tool. For Odoo, exports include an External ID column so records are addressable on import.
- 033. Cleanse
Legacy systems routinely carry null names, invalid emails, orphaned foreign keys, duplicate masters, and even negative prices that "worked" for years in the old UI. Deduplicate against surviving keys, standardize formats (dates, currencies, phones), fix missing required fields, and resolve orphans before mapping. Industry analyses from Panorama Consulting repeatedly flag data quality as a leading cause of migration overruns. Cleansing is the most labor-intensive and frequently underestimated stage—never use the new ERP as the cleansing tool.
- 044. Map and transform
Build field-to-field schema maps between source and target, with business-rule conversions (chart-of-accounts rollups, unit-of-measure translations, tax-code crosswalks). Document mapping type (direct, lookup, consolidated, conditional) and require business owner sign-off per entity. This is where source semantics get reconciled to the target ERP's entity model.
- 055. Trial load (sandbox, multi-pass)
Bulk-import into a non-production environment first—ideally three full-volume rehearsals: practice, UAT, then production cutover. In Dynamics 365 Finance & Operations, the Data Management workspace uses Data Entities with sequencing (execution units, levels, sequence numbers) to respect dependencies. In Odoo, the importer uses External IDs for idempotent create-or-update behavior. Measure elapsed time, exception rates, and reconciliation gaps after every pass.
- 066. Validate and reconcile
Compare row counts, hash totals, and checksums. Run full trial-balance reconciliation, match every open AR/AP and inventory item to legacy, test relationship integrity, and execute end-to-end process tests (order-to-cash, procure-to-pay). Penny-perfect financial tie-out beats "record counts look close." Sign-off is a business gate, not an IT checkbox.
- 077. Cutover and hypercare
Freeze the legacy system on a planned cut-off (prefer month- or quarter-end), run the final extract and load, smoke-test, open the new ERP, and staff a hypercare window (typically 2–8 weeks) with clear SLAs for P1 data defects. Archive legacy access for audit after stability; do not leave dual entry open indefinitely.
What to Migrate: Master Data, Open Transactions, and History
Scope creep is one of the most common single causes of ERP project failure. Deciding mid-project to migrate 10 years of closed history instead of 3, or adding entities and custom fields without change control, drives timeline slips and cost overruns. Lock scope before extraction begins.
A practical framing used by migration specialists in 2025–2026 is a four-bucket model: (1) migrate live and structured into the production ERP, (2) migrate as summary balances for comparative reporting, (3) archive in a queryable store outside the live ledger, and (4) do not migrate (test data, voids, expired drafts, pure junk). Microsoft’s own GP and QuickBooks migration paths are selective by design—masters, open documents, on-hand inventory, beginning balances, and optional chosen history—not a blind copy of every legacy row.
The recommended SME pattern is clear: migrate clean master data and open transactions (unfulfilled orders, open AR/AP, current inventory balances, and the trial balance / opening balances), keep a bounded window of detailed history when reporting requires it, and archive the rest in a read-only legacy system or data lake. Compliance retention (often discussed as a multi-year or ~7-year practical safe harbor for financial records) usually requires accessibility, not that every closed invoice lives inside the new cloud ERP. Data migration workstreams are frequently under-resourced relative to cleansing, mapping, and multiple validation cycles—treat data as a first-class stream with a dedicated lead, business stewards per domain, and a technical analyst for mapping.
- Prefer month-end or quarter-end cut-offs; mid-month freezes force partial-period splits and harder reconciliation.
- For open AR/AP, migrate open documents (not a single balance-forward journal) unless the business explicitly accepts loss of invoice-level continuity.
- Archive older history in a read-only backup or warehouse so auditors can query without polluting the new ledger.
- Define history depth per object (GL, AR, AP, inventory, fixed assets, attachments)—never as one vague SOW line called "historical data."
| Data class | Examples | Bucket | Why |
|---|---|---|---|
| Master data | Customers, vendors, items/products, chart of accounts, BOMs, price lists, employees (as needed) | Live — full (active + needed inactive) | Required for day-one transactions and referential integrity; cleanse and dedupe to golden records first |
| Reference / config | Payment terms, tax codes, units of measure, warehouses, posting groups, number series | Live | Must exist before masters and documents load; load in dependency order |
| Open transactions | Open AR invoices, open AP bills, open sales/purchase orders, open WIP, current inventory qty/cost | Live — as of cut-off | Collections, payments, fulfillment, and stock accuracy depend on document-level open items |
| Opening balances | GL trial balance / subledger control totals as of cut-off date | Live — mandatory | Books must open in balance; golden reference is the freeze-date trial balance from legacy |
| Recent closed history | Posted invoices, journals, inventory moves for last 1–3 years (sometimes 3–5) | Selective live or summary | Supports operational reporting; prefer full detail only for current + prior FY, summaries further back |
| Deep historical detail | 10+ years of closed POs, voided docs, retired CoA segments, old attachments | Archive (queryable) or drop | Inflates cutover time and carries obsolete structures; keep indexed archive for audit/tax |
| Lot / serial lineage | On-hand lot/serial tags, open WIP issues, receipt-layer cost, aging/receipt dates | Live for open stock; history often archive | Cutover killer if ignored: warehouse picks, recall traceability, and valuation layers break without it |
Validation Checks That Gate Cutover
Validation is not "did the import finish without errors." It is proving that the new system is financially and operationally trustworthy before users transact. Build a validation dashboard or reconciliation pack before the final load: if numbers do not match exactly on critical controls, nothing ships.
Run the same pack after every trial load. Finance owns trial balance and aging sign-off; operations owns inventory quantities and open order fidelity. IT owns row counts, referential integrity, and load logs.
| Check | Owner | Pass criteria | If it fails |
|---|---|---|---|
| GL trial balance (debits = credits; account totals) | Controller / Accounting Manager | 100% match to freeze-date legacy TB (to the penny) | Stop cutover; investigate CoA mapping and opening balance journals |
| Open AR aging (customer + total) | AR / Finance | Line-level match of open invoices and total AR | Do not open collections on new system until fixed |
| Open AP aging (vendor + total) | AP / Finance | Line-level match of open bills and total AP | Hold vendor payments from new system until reconciled |
| Inventory quantity and cost by item/location | Warehouse / Costing | Qty and valuation match legacy as of cut-off | Freeze shipping/receiving until corrected |
| Master data completeness | Data stewards | Required fields populated; no orphan FKs on open docs | Block document load until masters fixed |
| Row counts and checksums | Migration lead | Agreed entities within tolerance; hash totals on key amounts | Re-extract or re-run failed batches |
| End-to-end process smoke tests | Business process owners | Order-to-cash and procure-to-pay complete on migrated data | Delay go-live; treat as configuration or data defect |
Inventory, Lot/Serial, and Open Transactions: What Breaks Cutover
Practitioners consistently rank data quality above tool choice, and two domains punch above their weight at go-live: open subledger documents and inventory that is lot- or serial-controlled. A migration that finishes “without import errors” can still strand warehouse picks, break invoice matching, or misstate inventory valuation if these objects were treated as simple quantity dumps.
On-hand conversion is not only qty-on-hand as of the freeze date. Infosys’ on-hand conversion guidance for ERP transformations stresses four practical co-dependencies: inventory aging and consumption history (for reserves and obsolescence), co-conversion of open PO receipts (goods received not invoiced / GRNI) and open work orders with WIP material issues, cost attributes that match the target cost method (standard vs actual/average receipt layers), and lot or serial control at item level with correct tags on physical stock. Loading all inventory as “zero-age” on cutover date can satisfy valuation totals while destroying aging-based reserves and FIFO/layer logic.
Open transactions are the other classic killer. Open AR and AP must usually land as documents (invoice/bill level), not a single balance-forward journal, if collections, payment applications, and aging buckets must continue without a hard break. Open sales and purchase orders need valid item, customer/vendor, tax, and warehouse masters already present. Open WIP needs material issued to the job kept distinct from free on-hand so you do not double-count stock. In-transit inventory and receipt accruals need explicit ownership rules so the first post-go-live physical receipt does not double-post.
For lot- and serial-controlled items, rehearse the full path in a sandbox with production-like volumes: item control flags, lot/serial attributes on on-hand, warehouse location tags, and any lot-level cost. Enabling lot control for the first time in the new ERP is a warehouse labeling project as much as a data project—physical tags must match system tags before pick/pack starts. Industries that value inventory at lot or serial level (precious metals, life sciences, high-value chemicals) cannot treat lot history as optional fluff; valuation layers ride on those identifiers.
- Agree whether on-hand loads include or exclude quantities already on open PO receipts—ambiguity here is a reconciliation trap.
- Match cost method early: standard cost can load qty with standard independently; average/actual needs receipt-layer costs from legacy.
- If you turn on lot/serial control at go-live for the first time, budget warehouse tagging time inside the cutover runbook, not as an afterthought.
| Object | Minimum for day one | Common failure if skipped | SME decision |
|---|---|---|---|
| On-hand quantity by location | Qty + unit cost / valuation method aligned to freeze | Ship/receive freeze; wrong available-to-promise | Always migrate; cycle-count before freeze when possible |
| Lot / serial on hand | Lot/serial IDs on every controlled unit | Picks fail; recall/traceability broken | Required if control is on; label warehouse in parallel |
| Open PO receipts (GRNI) | Receipts not yet invoiced, or clear accrual path | Double inventory or stuck accruals on first invoice match | Co-convert with open POs; separate conversion clearing accounts |
| Open WIP / work orders | WO headers + issued material distinct from free stock | Double-counted inventory; shop-floor chaos | Convert open jobs; close what you can before freeze |
| Open AR / AP documents | Invoice-level open items + applications rules | Aging wrong; cash application nightmare | Prefer documents over balance-forward journals |
| Deep lot receipt history | Often archive outside live ERP | Bloated cutover; little day-one ops value | Keep open lots live; archive closed lot moves |
Assess Fitness With the DAMA-UK Data Quality Dimensions
Before you migrate, score source data against the six dimensions defined by DAMA-UK (the Data Management Association UK working group) in its Six Primary Dimensions for Data Quality Assessment, and adopted across DAMA-DMBOK, the UK Government Data Quality Hub, and industry practice. These are vendor-neutral and apply equally to Dynamics 365 and Odoo.
Gartner consistently identifies data risks among the key roadblocks to ERP success, noting that migration from legacy systems can cause data inaccuracy, redundancy, or loss. Poor source quality causes reconciliation failures, broken processes, bad reporting, and user distrust—trust that is lost in a week and rebuilt over months. Scoring against these dimensions turns that risk into a measurable, assignable workstream.
- Accuracy: the data correctly represents reality (a customer's actual address, a product's real cost).
- Completeness: all required fields are populated (no missing tax IDs, no empty posting groups).
- Consistency: data is uniform across systems (the same customer record does not differ between CRM and legacy ERP).
- Validity: data conforms to formats and business rules (postal codes match country patterns, account numbers respect the chart of accounts).
- Uniqueness: each entity is represented once, with duplicates merged to a survivor record.
- Timeliness: data is current and available when needed (open balances reflect the latest sub-ledger close).
Data Governance: Owners, Stewards, and MDM
Migration success depends on governance assigned before day one, not after the first reconciliation break. Per DAMA-DMBOK, a Data Owner is a senior business leader accountable for a data domain (defining policies, access, quality thresholds), while a Data Steward is a subject-matter expert who executes governance day-to-day (maintaining definitions, monitoring quality rules, resolving issues).
Gartner defines Master Data Management (MDM) as a technology-enabled business discipline in which business and IT work together to ensure the uniformity, accuracy, stewardship, governance, semantic consistency, and accountability of the enterprise's official shared master data assets. For SMEs, a formal MDM platform is rarely required, but the discipline is: pick one source of truth per master entity before you migrate, and route every duplicate to a survivor.
That survivor is the golden record: the single authoritative customer, vendor, or item profile that wins when duplicates merge. Decide merge rules in writing (which address, which payment terms, which tax ID, which credit limit survives) and re-point open documents to the golden key before trial load. Leaving three spellings of the same vendor with different bank details is how AP pays the wrong account on week one.
Freeze new custom fields and ad-hoc master attributes once mapping starts. Every late field is built, tested, and reconciled twice—once in legacy cleanup and once in the target—and is a classic timeline killer. Controller or finance lead involvement from cleansing—not only from UAT—is a recurring pattern in successful Business Central migrations: tax IDs, RFC-style identifiers, and posting group gaps surface earlier when finance owns quality gates.
Dynamics 365 Migration: Configuration Packages and the Data Management Framework
Microsoft splits migration tooling by product line.
In Business Central, RapidStart Services evolved into the Configuration Packages feature. Packages are applied via a Configuration Worksheet that bundles setup tables, master data (customers, vendors, items), posting groups, and number series. Packages are strong for setup and moderate master volumes; partner guidance in 2025–2026 still treats them as a poor sole tool for large related datasets because parent/child failures can leave orphans if relationships are not carefully sequenced and validated. Many SME projects combine Configuration Packages (or RapidStart-style loads) for masters and setup with API, Azure Data Factory, or scripted loads for open documents and history. Watch for silent package failures—imports that appear complete while some tables never applied—and always reconcile row counts and sample records after every package apply.
For supported legacy sources, the built-in Cloud Migration tool replicates SQL data to BC online. Microsoft documents that Dynamics GP (2015 and later) and Dynamics SL (2015 and later) are directly supported; Dynamics NAV is not directly supported and must first be upgraded to Business Central on-premises before replication to BC online. From Business Central on-premises version 25 and later you can migrate directly online; versions 15–24 must upgrade on-premises to at least 25 first. For BC 14, Microsoft also documents a reimplementation path that migrates essential master data, opening balances, and setup without a full on-prem upgrade first. Configuration packages exported between companies still require matching schema (same table/field structure and package version alignment with the target environment).
In Dynamics 365 Finance & Operations, the Data Management workspace is the central UI for the Data Management Framework (DMF), which replaced the legacy AX 2012 DIXF. DMF uses Data Entities as the reusable abstraction. Entities are de-normalized business-object views over underlying tables, categorized by data type for sequencing: Parameter (functional settings), Reference (lookup data such as units and tax codes), Master (customers, vendors, products), Document (orders and journals with header plus lines), and Transaction (posted operational data, often summarized or excluded in migrations).
F&O configuration data templates provide predefined, sequenced entity lists per module (Financials, Supply Chain, and so on). Entities must be sequenced by execution units, levels, and sequence numbers to respect dependencies: system setup and global address book before the general ledger, before master data, before documents and opening balances. Staging tables let you preview, clean, and fix errors before the target load.
For large F&O migrations, Microsoft's official optimization guidance is explicit: disable change tracking where possible, enable set-based processing, use dedicated migration batch groups, tune threads and thresholds per entity, minimize validations during bulk load (and re-enable them after), clean staging tables, update statistics, and chunk files. Microsoft's Success by Design framework includes a dedicated Data Migration Strategy workshop that prescribes phased migration with sandbox testing and mock cutovers.
Odoo Migration: External IDs, the Built-in Importer, and OpenUpgrade
Odoo's migration model centers on External IDs (also called XML-IDs): stable, human-readable identifiers stored in the ir.model.data table. The built-in importer (list view, then Actions, then Import records) supports CSV and Excel files and ships with ready-made templates that always include an External ID (ID) column. Odoo's documentation states this column should never be removed, because it enables idempotent imports: new records are created, existing matching records are updated.
The recommended pattern for migrating from third-party systems is to use legacy unique keys as External IDs (prefixed to avoid collisions, for example legacy_customer_123) and to reference related records via the Field/External ID column pattern. This gives you create-or-update behavior so the same file can be re-imported safely as you iterate on cleansing. Imports must follow dependency order: parents and reference data before children. For large volumes, chunk files (for example a few thousand rows per batch) and validate each batch before the next.
For Odoo major version upgrades, the official Enterprise path is the Odoo Upgrade Service at upgrade.odoo.com: request a test upgraded database, validate it, then request the production upgrade. The Community Edition alternative is OCA's OpenUpgrade, the primary open-source tool for Odoo database upgrades. OpenUpgrade contains openupgrade_framework (a server-wide module), openupgrade_scripts (per-module analysis and migration scripts), and the openupgradelib Python helper library. OpenUpgrade requires version-by-version migration; you cannot skip major versions, and the process tends to surface data issues that older versions tolerated.
For developer-loaded data, Odoo XML data files use <record id='...' model='...'> with ref='module.id' for relations, and CSV data files use id as the first column; noupdate='1' protects records from overwrite on upgrade. Most SME migrations use the importer with External IDs for master data, write custom Python against the Odoo ORM (via odoo-bin shell or XML-RPC) for complex transforms, and reserve OpenUpgrade for version jumps.
Cutover Strategy: Big Bang vs Phased, Freeze, and Downtime
For ERP cutover, a Big Bang approach (single cutover date) offers a faster timeline but the highest risk, while a Phased approach (by module, site, or function) reduces per-phase risk but extends the timeline and requires dual-system operation. A third pattern—dual-run or parallel period—keeps legacy and new ERP live for a defined window (often weeks to a few months for finance) so outputs can be reconciled before the legacy is locked read-only. SMEs with clean data and simple operations often choose Big Bang; multi-warehouse or regulated businesses tend to favor Phased; mission-critical or low-trust-data environments use dual-run when the business can absorb double entry or invest in temporary dual-write/integration.
Regardless of approach, industry best practice is to run multiple full test migrations in a sandbox with production-like volumes before cutover, and to mock the cutover itself end to end. Skipping full-volume mock runs is a leading cause of cutover duration overruns—the classic failure is a short test on a tiny extract that becomes a multi-hour outage in production. Practitioner guidance in 2026 is blunt: if your rehearsal used a small fraction of production volume, your cutover duration estimate is a guess, not a measurement—index rebuilds, conversion scripts, and validation passes do not scale linearly with row count.
Write a cutover runbook before dress rehearsal: named owners, minute-by-minute swimlanes, freeze rules, reconciliation gates with exact queries and tolerances, communication cadence, and a rollback decision owner with a clear point of no return. Plan the freeze explicitly: process pending bank recs, payment runs, and journals before hard freeze; export the golden trial balance on the freeze date; run final extract → transform → load → validate within the agreed downtime window. Post-cutover reconciliation techniques should be planned before cutover, not after: row counts, checksums, full trial balance on day one, open-item match for AR/AP and inventory, relationship integrity, and end-to-end process tests.
| Dimension | Big Bang | Phased | Dual-run / parallel |
|---|---|---|---|
| Timeline | Shorter overall; one cutover weekend | Longer; multiple go-lives | Longer calendar; shorter final switch if deltas are continuous |
| Risk profile | Highest single-event risk | Lower per phase; integration risk across phases | Lowest operational surprise if reconciliation is disciplined; high process load |
| Best fit | Single site/entity, cleaner data, tight freeze possible | Multi-site, multi-entity, or high regulatory complexity | Low downtime tolerance or low confidence in first-pass data quality |
| Data implication | One freeze, one opening balance set | Repeated extracts, deltas, inter-system reconciliations | Dual entry or CDC/delta sync; double close effort for finance |
| SME cost reality | Lowest process overhead if rehearsals are solid | Partner and PMO cost rises with waves | Often expensive for SMEs unless limited to finance for 1–2 periods |
How Long ERP Data Migration Takes for an SME
There is no honest one-size number, but ranges help leadership plan. The data workstream typically runs in parallel with configuration and often consumes a large share of calendar time—partner and practitioner guides commonly place data-related effort in the range of roughly 40–60% of migration project timeline when cleansing is non-trivial.
For a single-entity SME with one legacy ERP and moderately clean masters, expect multi-week data audit and cleanse (often on the order of 4–8 weeks of focused work when quality issues are material), then iterative map → trial load → validate cycles before a planned cutover weekend. Multi-source landscapes, heavy customization, multi-currency, or regulated industries stretch that into months. Always schedule at least two full-volume rehearsals plus a dress-rehearsal cutover before go-live.
What stretches the schedule: late scope adds ("bring 10 years of history"), no data owners, cleansing only discovered in UAT, and cutover estimates based on tiny extracts. What compresses it: locked entity list and history window, early profiling, idempotent loads (External IDs / DMF re-runs), and a written validation pack with named owners.
- Simple single-company, clean masters: data workstream often fits inside a 3–4 month overall implementation with continuous cleansing.
- Typical mid-complexity SME: plan months of parallel data work with 2–3 full mock loads before cutover.
- High complexity (multi-entity, multi-legacy, deep history): treat data as a multi-month program with formal change control on every new entity.
Common Failure Modes (and How to Avoid Them)
Most migration failures fall into a small number of recurring patterns. Naming them early is the cheapest way to avoid them.
- Dirty data loaded unchecked: nulls, orphans, negative prices, and duplicates that "worked" in legacy. Cleanse before mapping; score all six DAMA-UK dimensions on every master entity; merge to golden records.
- Scope creep on history: lock the entity list and history window before extraction. Any addition goes through formal change control.
- Open AR/AP as balance-forward only when the business never needed invoice-level continuity—otherwise collections and cash application break.
- Lot/serial and on-hand treated as simple qty dumps: warehouse picks, GRNI, open WIP, and cost layers fail after go-live even when GL totals match.
- Under-resourcing the data workstream: staff a dedicated data lead, business stewards per domain, and a technical analyst for mapping from day one.
- Sandbox-only volume testing: a small extract that finishes in minutes can become hours of downtime at full volume. Rehearse at production-like scale.
- No reconciliation plan on day one: define row counts, checksums, trial-balance match, open-item match, and process tests before cutover, not after.
- Ignoring sequencing and dependencies: in F&O, system setup and global address book before GL before master before documents; in Odoo, parents and reference data before children.
- Trust left to training: if finance and operations do not trust balances in week one, adoption stalls. Prove integrity at cutover, visibly, with signed reconciliation packs.
Frequently asked questions
How long does an ERP data migration take for an SME?
It depends on source system count, data volume, and cleanliness. For a single-entity SME with moderately clean masters, focused audit and cleanse often takes several weeks, with multiple full mock loads before a planned cutover weekend; overall implementations commonly span months with data work running in parallel. Multi-legacy or multi-entity landscapes take longer. Always budget 2–3 full-volume rehearsals—skipping them is a leading cause of cutover overruns.
What is the difference between ERP data migration and ERP data conversion?
Data conversion is the transform step: reformatting and remapping values so source fields fit the target ERP (CoA rollups, UoM crosswalks, tax codes, status enums). Data migration is the full program—scope, extract, cleanse, convert/map, trial load, validate, cutover, and hypercare. RFPs that say "data conversion" usually mean the whole migration workstream, not just file reformatting.
Should we migrate all historical transactions into the new ERP?
Generally no. The recommended SME practice is to migrate master data and open transactions (unfulfilled orders, open AR/AP, current inventory, and the trial balance), then archive closed history. Keep 1–3 years of detailed transactions for operational reporting (sometimes 3–5), extend further only for audit or tax, and leave older data in a read-only legacy system or data lake. Migrating 10 years of history when 3 will do is a classic scope-creep trigger.
Which is better for migration: Dynamics 365 or Odoo?
Both have mature, documented migration tooling. Dynamics 365 Business Central uses Configuration Packages and a built-in Cloud Migration tool for supported legacy sources (GP 2015+, SL 2015+; NAV must upgrade to BC on-prem first); Finance & Operations uses the Data Management Framework with Data Entities. Odoo uses External IDs and a built-in CSV/Excel importer for idempotent loads, plus the OpenUpgrade path (Community) or Odoo Upgrade Service (Enterprise) for version jumps. As a platform-neutral partner, Flectic helps SMEs choose based on fit, then runs the migration on whichever platform wins.
What is an External ID in Odoo, and why does it matter for migration?
An External ID (also called an XML-ID) is a stable, human-readable identifier stored in Odoo's ir.model.data table. Odoo's importer templates always include an External ID column, and the documentation says never to remove it. External IDs enable idempotent imports: re-importing the same file creates new records where needed and updates existing matching records, which is essential when you iterate on cleansing. Use legacy unique keys as External IDs to preserve continuity from the source system.
How do we validate that a migration succeeded?
Run a layered reconciliation: compare source and target row counts, check hash totals and checksums on numeric fields, reconcile the full trial balance on day one to the penny, match every open AR/AP and inventory item to its legacy balance, test referential integrity across master and child tables, and execute end-to-end business process tests across order-to-cash and procure-to-pay. Finance and operations sign-off should require all critical layers to pass before unrestricted go-live.
What should freeze before ERP cutover?
Define a cut-off aligned to month- or quarter-end when possible. Before hard freeze, finish pending bank reconciliations, payment runs, and journals. Export the final legacy trial balance as the golden reference. During freeze, no new operational postings land in the old system except an agreed delta process. After load, validate TB, AR/AP aging, and inventory before opening the new ERP for business.
Why do full-volume mock migrations matter?
Cutover time is dominated by operations that do not scale linearly—index rebuilds, conversion scripts, and validation passes. A rehearsal on a tiny extract underestimates downtime and misses volume-only defects. Run practice and UAT loads at production-like volumes so the go/no-go decision is based on measured duration and reconciliation, not extrapolation.
Should we migrate full lot and serial history into the new ERP?
Migrate lot and serial identifiers for every unit that remains on hand or on open WIP at freeze—warehouse picks and recall traceability depend on them. Deep closed lot movement history usually belongs in a queryable archive, not the live ERP, unless regulation or lot-level costing forces more. If you enable lot/serial control for the first time at go-live, treat physical labeling as part of the cutover runbook, not an optional warehouse chore.
What is a golden record in ERP master data migration?
A golden record is the single survivor profile for a real-world entity after deduplication—one customer, vendor, or item that owns the correct tax ID, bank details, payment terms, and addresses. Open documents must re-point to that key before trial load. Without written merge rules, you import three spellings of the same vendor and inherit three different payment paths on day one.
When should an SME use dual-run instead of a big-bang cutover?
Use dual-run (parallel period) when downtime tolerance is very low or confidence in first-pass data quality is weak, and the business can afford double entry or temporary dual-write for a bounded period—often one or two finance closes. Big bang remains the common SME default when masters are clean, freeze can hit month-end, and two or three full-volume rehearsals already prove duration and reconciliation. Dual-run is not free risk reduction; it trades cutover risk for process load and extended reconciliation.
What are the biggest cutover killers in ERP data migration?
Dirty or duplicated masters without golden-record rules; open AR/AP and open orders loaded without document-level fidelity; inventory without lot/serial, location, or cost-layer alignment; open PO receipts and WIP co-conversion ignored; history scope that expands mid-project; and cutover duration estimated from tiny sandbox extracts. Tool choice matters less than quality, sequencing, full-volume rehearsal, and a signed reconciliation pack on day one.
Sources & methodology
24 citedEvery pricing figure and statistic on this page is traced to a primary or vendor source with a verification date. Where partner pages are cited, their platform bias is disclosed in-line.
- 01Gartner predicts that by 2027, more than 70% of recently implemented ERP initiatives will fail to fully meet their original business case goals, and as many as 25% will fail catastrophically; data risks (inaccuracy, redundancy, loss during legacy migration) are identified among the key implementation roadblocks.↗gartner.com · verified Gartner's insight article on avoiding disappointing ERP initiatives publishes the 70%/25% projection and identifies data risks among the roadblocks; the Gartner ERP topic page pairs the same projection.
- 02A McKinsey article reports that approximately three-quarters (75%) of ERP transformations fail to stay on schedule or on budget.↗mckinsey.com · verified McKinsey's Agile-in-ERP article ('Agile in enterprise resource planning: A myth no more') publishes the three-quarters schedule/budget failure rate; the two-thirds negative-ROI figure is commonly attributed to this body of research but was not directly quoted in the accessible text, so it is not relied upon here.
- 03Industry analyses from Panorama Consulting repeatedly flag data quality and under-resourced migration as leading contributors to ERP budget overruns; data issues are listed among the contributors to overruns in their ERP reports.↗panorama-consulting.com · verified Panorama Consulting's data migration content flags data quality challenges, duplicates, and underestimation of cleansing effort as major migration issues; their ERP reports list data issues among budget-overrun contributors. Specific percentage benchmarks (e.g. 20-30% quality issues, 5-15% of budget) are widely circulated but not directly attested in Panorama's public materials, so the guide was softened to qualitative attribution.
- 04The six data quality dimensions (Accuracy, Completeness, Consistency, Validity, Uniqueness, Timeliness) were originally defined by DAMA-UK in its 'Six Primary Dimensions for Data Quality Assessment' working-group output, and are adopted by DAMA-DMBOK and the UK Government Data Quality Hub.↗gov.uk · verified The UK Government Data Quality Hub page states these six dimensions are 'as defined by the Data Management Association UK (DAMA(UK))'; the original DAMA-UK 2013 whitepaper is the authoritative origin.
- 05DAMA-DMBOK defines the Data Owner (senior business leader accountable for a data domain) vs Data Steward (subject-matter expert executing governance day-to-day) roles; Gartner defines MDM as a technology-enabled business discipline ensuring uniformity, accuracy, stewardship, governance, semantic consistency, and accountability of shared master data.↗dama.org · verified DAMA-DMBOK defines the Owner/Steward governance roles; Gartner's MDM topic page publishes the MDM definition cited.
- 06The enhanced ETL pipeline (Plan/Assess, Extract, Cleanse, Map/Transform, Load, Validate) and Data Entities categorization (Parameter, Reference, Master, Document, Transaction) are documented in Microsoft's Dynamics 365 F&O data entities guidance.↗learn.microsoft.com · verified Microsoft Learn documents data entities, their categories, sequencing, and the import/export pipeline for D365 Finance & Operations.
- 07In Dynamics 365 Business Central, the Cloud Migration tool directly supports Dynamics GP (2015 and later) and Dynamics SL (2015 and later); Dynamics NAV must first be upgraded to Business Central on-premises; BC on-prem 25+ can migrate directly online (15–24 upgrade on-prem first); BC 14 has a reimplementation path for essential master data and opening balances.↗learn.microsoft.com · verified Microsoft Learn migrate-data page (2026) documents supported sources and BC version paths including reimplementation.
- 08In D365 F&O, configuration data templates provide predefined sequenced entity lists per module with sequencing by execution units, levels, and sequence numbers.↗learn.microsoft.com · verified Microsoft Learn documents configuration data templates and the sequencing model for F&O data projects.
- 09Microsoft's official guidance for optimizing large F&O data migrations: disable change tracking, enable set-based processing, use dedicated batch groups, tune threads and thresholds, minimize validations during bulk load, clean staging tables, update statistics, and chunk files.↗learn.microsoft.com · verified Microsoft Learn's optimize-data-migration article publishes the full optimization checklist.
- 10Microsoft's Success by Design framework includes a dedicated Data Migration Strategy workshop prescribing phased migration with sandbox testing and mock cutovers.↗learn.microsoft.com · verified Microsoft Learn's 'Create a data migration strategy for Dynamics 365 solutions' module publishes the Success by Design Data Migration Strategy workshop guidance.
- 11Odoo's built-in importer supports CSV and Excel with templates that include an External ID (ID) column which should never be removed; External IDs enable idempotent create-or-update imports and can be reused from previous software to facilitate transition.↗odoo.com · verified Odoo's official documentation describes the importer, External ID column behavior, idempotent imports, and reuse of legacy External IDs for transition.
- 12OCA OpenUpgrade is the primary open-source tool for Odoo database upgrades, containing openupgrade_framework and openupgrade_scripts plus the openupgradelib helper, and requires version-by-version migration.↗github.com · verified The OCA OpenUpgrade GitHub repository documents the framework, scripts, helper library, and the no-version-skipping constraint.
- 13Accounting data migration checklists emphasize freeze windows, golden trial balance on cut-off, history scoping (commonly 3–5 years for operational need), and penny-perfect trial balance tie-out rather than record counts alone.↗clonepartner.com · verified ClonePartner May 2026 checklist covers cut-off/freeze, history scope, CoA mapping, open AR/AP approaches, and trial balance validation sequence.
- 14Practitioner ERP data migration planning guides treat data as a large share of migration timeline (commonly cited ~40–60%), recommend multi-pass test loads (practice, UAT, production), and list critical validations including GL trial balance, AR/AP aging, and inventory quantities.↗topdynamicspartners.com · verified 2026 planning guide publishes timeline share, audit/clean windows, three-run testing model, and validation checklist tables.
- 15Phased ERP data migration checklists stress strategy/scope first, cross-functional data owners, multiple test cycles, go/no-go, cutover runbook with rollback, and hypercare with issue taxonomy after go-live.↗kpcteam.com · verified KPC Team Dec 2025 checklist covers four phases through hypercare and decommissioning.
- 16Data migration vs conversion: migration is the broader move between systems; conversion is transforming format/structure during transfer; migration may include conversion as a step.↗ramp.com · verified Ramp accounting data migration article distinguishes migration, conversion, and integration in plain language.
- 17Practitioners report production data is messier than expected (null names, invalid emails, orphaned FKs, negative prices) and stress validation dashboards and production-scale rehearsals before trusting cutover duration estimates.↗x.com · verified Feb 2026 X thread describing large-row migration audits and validation-first approach; corroborates full-volume rehearsal theme in related practitioner posts.
- 18On-hand conversion in ERP transformations depends on inventory aging/consumption, co-conversion of open PO receipts (GRNI) and open WIP with material issues, cost attributes aligned to standard vs actual/average methods, lot/serial control with physical tagging, and GL inventory balance reconciliation between legacy and new ERP.↗infosys.com · verified Infosys viewpoint 'Mastering On-Hand Conversion: Key Considerations in New ERP System Implementations' details these co-dependencies and cutover controls.
- 19Four-bucket ERP migration scope (migrate live structured; migrate as summary; archive queryable; do not migrate) and selective Microsoft GP/QuickBooks migration design (masters, open docs, on-hand, beginning balances, optional history) argue against blind full-history loads; compliance retention requires accessible records, not necessarily live ERP residency.↗clonepartner.com · verified ClonePartner May 2026 guide publishes the four-bucket framework and cites Microsoft selective migration paths plus IRS-oriented accessibility vs system requirements.
- 20Business Central Configuration Packages suit setup and moderate master loads but are weak as a sole tool for large related datasets (relationship/orphan risk); successful patterns combine packages with API/ADF/scripted loads and controller-led cleansing; post-go-live errors often surface weeks later at month close.↗kcpdynamics.com · verified KCP Dynamics 2025–2026 BC data migration guide compares tools, cleaning operations, validation layers, and real-project patterns.
- 21Cutover strategies include big-bang, phased, dual-run/parallel live, and blue-green patterns; dual-run reduces operational surprise for mission-critical systems at the cost of process complexity; cutover runbooks need named owners, reconciliation gates, and rollback decision rights.↗codasol.com · verified CODA Technology Solutions dual-run / near-zero downtime guide publishes strategy matrix and runbook structure.
- 22Parallel-run vs hard cutover: parallel (typically one to three months in some finance contexts) reduces risk but doubles data-entry load; hard cutover is faster but needs tested rollback and high data-quality confidence.↗consolidate.io · verified Consolidate.io ERP migration guide discusses parallel-run duration, double entry burden, and hard-cutover prerequisites.
- 23Full-volume cutover rehearsal: teams that estimate cutover from small test datasets mis-estimate because index rebuilds, conversion, and validation do not scale linearly with row count—rehearse at real scale so duration is a measurement.↗x.com · verified Aug 2026 X post on migration testing and non-linear cutover operations; aligns with prior practitioner full-volume themes.
- 24Poor data quality is repeatedly cited among leading causes of ERP initiative shortfalls; 2026 practitioner and partner posts continue to flag dirty masters signed off in templates as a go-live invoice failure mode.↗x.com · verified Jul 2026 Fortude post restates Gartner-order failure magnitudes and data quality as a common cause, linking multi-site migration testing guidance.
Related services & solutions
Book an ERP Readiness Call
If you are planning a move to Dynamics 365 or Odoo, the data workstream is where schedules slip and budgets break. Flectic is an AI-driven, platform-neutral ERP and CRM implementation partner for SMEs across Canada, the UK, and the US. Our AI-accelerated delivery is designed to deliver up to 3x faster, with a migration pipeline built on cleansing, mapping, mock cutovers, and full reconciliation. Book an ERP Readiness Call and we will pressure-test your source data, scope, and cutover plan before you commit.