ERP Migration Guide for 2026: NetSuite, SAP, QuickBooks & Beyond
ERP migrations are different from CRM migrations. The data is regulated, every transaction is auditable, and "the trial balance must tie to the penny" is a hard constraint, not a goal. This guide covers when ERP migration makes sense, the most common migration paths, and the technical decisions that determine success.
When ERP Migration Makes Sense
ERP migrations are expensive (typically $50K-$500K+) and disruptive (3-12 months). They make sense when the cost of staying exceeds the cost of moving. Concrete triggers:
- You've outgrown QuickBooks. Multi-entity, multi-currency, inventory complexity, or audit requirements have hit QuickBooks' limits. Common path: QuickBooks → NetSuite or Sage Intacct.
- You're shrinking out of SAP or NetSuite. Divestiture, downsizing, or strategic refocus. Common path: SAP → NetSuite, NetSuite → QuickBooks, NetSuite → Sage Intacct.
- You acquired a company on a different ERP. Maintaining two ERPs forever is expensive and creates reporting nightmares. Common path: consolidate to whichever ERP the buyer uses.
- Your industry shifted compliance requirements. Move to an ERP with native support for new regulatory regimes (revenue recognition standards, multi-jurisdictional tax, industry-specific compliance).
- Your current ERP is end-of-life. Sage 50, Microsoft Dynamics GP (sunsetting 2030), legacy Sage 100. Vendor support ends and you migrate or you accept stagnation.
If none of those apply and your current ERP works, don't migrate. The biggest mistake in ERP planning is thinking "newer platform = better."
Common ERP Migration Paths
Most enterprise ERP migrations fall into one of these patterns:
| From | To | Reason | Typical Timeline |
|---|---|---|---|
| QuickBooks | NetSuite | Multi-entity, inventory, advanced rev rec | 4-6 months |
| QuickBooks | Sage Intacct | Multi-entity, dimensional reporting | 4-6 months |
| NetSuite | QuickBooks | Divestiture, downsizing | 2-4 months |
| SAP ECC / S/4HANA | NetSuite | Standardize on cloud ERP, smaller footprint | 6-12 months |
| Sage Intacct | NetSuite | Inventory or manufacturing requirements | 3-5 months |
| Xero | QuickBooks | US expansion, US tax compliance | 1-3 months |
| Microsoft Dynamics GP | NetSuite / Dynamics 365 BC | GP end-of-life | 4-8 months |
Each pattern has its own data model translation challenges. See specific migration paths.
Chart of Accounts Migration
The Chart of Accounts mapping is the most important decision in any ERP migration. Every transaction posts to GL accounts. Get the COA wrong and every subsequent migration step compounds the error.
Mapping decisions to make first
- Account number scheme. Keep source numbering or renumber? Common pattern: keep source numbers if both ERPs support flexible numbering; renumber if migrating from a 4-digit scheme to a hierarchical 6+ digit scheme.
- Account type alignment. NetSuite has 30+ account types. QuickBooks has 15. Sage Intacct has its own. Each source account needs to map to a destination account type, and the mapping determines how it shows up in financial statements.
- Account hierarchy. Some ERPs (Sage Intacct) use account groups for rollup; some (NetSuite) use account hierarchies natively. Convert your existing rollup logic to the destination's pattern.
- Inactive accounts. Don't migrate accounts with no transactions in the last 3 fiscal years unless required for audit retention. Inactive accounts create clutter and dead-end picklists in the destination.
Pitfalls
- Don't change account numbers mid-fiscal-year. Wait until year-end. Mid-year renumbering breaks YTD reports and confuses controllers.
- Don't merge accounts during migration. If you want to consolidate "Travel - Domestic" and "Travel - International" into "Travel," do it before migration as a separate cleanup project. Doing both at once means you can't isolate which change caused which variance.
Historical Transaction Migration
Three approaches, depending on requirements:
Opening balances only
Cheapest. Migrate balances at cutover date as opening JEs. Historical transactions stay in the source for audit reference. Source must remain accessible (read-only) for the regulatory retention period.
Best when: source can be retained read-only at acceptable cost; team rarely drills into historical detail; auditor doesn't require full transaction history in the destination.
Summary historical (monthly aggregates)
Middle ground. Migrate opening balances plus monthly summary JEs going back N years. Drill-down to transaction detail still requires the source. Useful for trending in the destination without full data load.
Best when: trending and YoY comparisons matter; transaction-level audit is rare; source has a clean monthly close.
Full transaction history
Most expensive, most complete. Every Invoice, Bill, JE, and Bank Transaction migrates. AR aging, AP aging, GL drilldown all work in the destination. Source can be decommissioned.
Best when: source decommission is required (license cost, compliance); auditors require destination-only access; full operational continuity needed.
Most enterprise migrations choose full transaction history for the last 5-7 years (typical retention period) plus archive PDFs for older periods.
Integration & Workflow Migration
ERP integrations are usually the long pole. Common ERP integration partners:
- Bank feeds. Plaid, Yodlee, direct bank APIs. Each bank connection needs to be re-authenticated against the destination's connector.
- Payment processors. Stripe, Authorize.net, Bill.com. Re-link payment methods; historical payment data may not migrate cleanly.
- Tax engines. Avalara AvaTax, TaxJar, Vertex. Re-configure tax codes against destination COA.
- Expense management. Expensify, Concur, Ramp, Brex. Re-map cost centers and approval workflows.
- Payroll. ADP, Gusto, Paylocity. Re-link GL posting accounts; historical payroll usually stays in payroll system.
- CRM. Salesforce, HubSpot. Re-configure quote-to-cash workflow; historical sync goes one direction (CRM source-of-truth wins).
- E-commerce. Shopify, Magento, BigCommerce. Re-link order sync; revenue recognition rules may differ between source and destination ERP.
- Reporting/BI. Adaptive, Workday Adaptive Planning, Anaplan, Tableau, Looker. Re-point against destination data warehouse.
For each integration: document current connection, identify the destination's equivalent connector, schedule re-auth and re-test, validate against historical reconciliation. Each integration is its own mini-project.
Testing & UAT for ERP Migrations
ERP UAT is more rigorous than CRM UAT because mistakes have audit consequences.
Required validations
- Trial balance reconciliation. Source TB at cutover date must equal destination TB at cutover date, account by account, to the penny. Any variance is investigated, not waived.
- AR aging reconciliation. Source AR aging by customer must equal destination AR aging by customer. Any variance: investigate before sign-off.
- AP aging reconciliation. Same as AR but for vendors.
- Bank balance reconciliation. Each bank account: source balance = destination balance at cutover date. Reconciled status preserved.
- Inventory valuation reconciliation. Total inventory value (units × cost) must match between systems. Cost method translation (FIFO, weighted average, standard) needs explicit handling.
- Customer balance test. Pick 10 random customers; verify their AR detail matches between systems.
- Vendor balance test. Same as customer test, for AP.
- Period-end close test. Run a fake month-end close in the destination using migrated data. All standard close steps complete without errors.
Auditor involvement
If you're audited (annual financial statement audit, SOX compliance), involve your auditor in the migration plan. They will want to validate: data lineage from source to destination, change controls during migration, segregation-of-duties in the destination tenant. Get their sign-off as part of go-live, not after.
Go-Live Planning
ERP go-live is more carefully timed than other migrations.
Pick a calendar date wisely
- Best: Start of fiscal year. New year, new system, no mid-year period adjustments.
- Acceptable: Start of fiscal quarter. Reduces but doesn't eliminate mid-period complexity.
- Risky: Start of fiscal month. Avoid Decembers and quarter-ends. Avoid weeks with payroll runs, AP runs, or month-end close.
- Bad: Mid-month. Source has open transactions; destination has no operating context.
Cutover sequence
- T-2 weeks: Final data load + reconciliation rehearsal in destination sandbox.
- T-1 week: Source enters "soft freeze," no new master data, only operational transactions.
- T-2 days: Final master data sync; operational transactions still flow in source.
- T-0 (cutover day): Source freeze; final delta load; production cutover; integration repointing; smoke tests.
- T+1 day: Production validation by each team; integration end-to-end tests.
- T+1 week: First week-end close in destination; reconciliation report.
- T+30 days: First month-end close in destination; full reconciliation.
- T+90 days: First quarter close in destination; rollback window expires; source decommissioned.
ERP migrations require this level of discipline. The reward: a clean financial system on day 91 with full audit trail and no surprises.
If you're planning an ERP migration, talk to us first. We've moved every common pair: NetSuite → QuickBooks, SAP → NetSuite, Sage Intacct → NetSuite, Xero → QuickBooks.