Phase 0
Decide & Plan
Resolve the questions that determine whether the migration is even the right move.
-
Risk if skipped: Scope creep mid-project forces re-do of the configuration package mapping after sandbox tests have already started.
-
Risk if skipped: Loading several years of historical entries multiplies storage cost against the 80 GB plus per-user database allowance and slows every report.
-
Risk if skipped: Re-tiering after go-live forces a re-quote and may block users from modules they were trained on.
-
Risk if skipped: Picking the wrong topology forces a re-implementation when consolidation reporting fails to roll up across entities.
-
Risk if skipped: GDPR or sector data-residency findings post-go-live force a re-migration into a new environment in the correct geo.
-
Risk if skipped: Retention defaults silently delete log data that a later audit needs.
-
Risk if skipped: Without explicit numeric exit criteria the project never formally closes and resources keep getting pulled back for rework.
Phase 1
Pre-Migration Prep
Cleanse the source, stand up the destination, and prep the people — before exporting a single row.
1a. Source-system audit and cleansing
-
Risk if skipped: Duplicate customers create double AR balances and confuse statement runs.
-
Risk if skipped: Duplicate vendors fragment AP aging and cause double payment.
-
Risk if skipped: Non-ISO codes silently drop on import and addresses come in with blank country, breaking tax determination.
-
Risk if skipped: Records with missing posting groups stop the entire batch import and force a transform re-run.
-
Risk if skipped: Garbled vendor names and addresses look fine in the export file but render as question marks after import.
-
Risk if skipped: Without a frozen reference run, post-migration variances cannot be traced to a known starting point.
-
Risk if skipped: Custom data discovered mid-cutover triggers a re-import.
1b. Destination-system setup
-
Risk if skipped: Loading test data into production cannot be cleanly undone without restoring an environment backup.
-
Risk if skipped: A too-tight Allow Posting From/To window blocks the opening journal at the worst moment.
-
Risk if skipped: Users without the right Permission Set cannot open the pages they need on day one, causing a flood of help-desk tickets.
-
Risk if skipped: Missing one row in General Posting Setup throws a posting error on the very first sales or purchase document.
-
Risk if skipped: Adding a Mandatory Dimension after data is loaded forces a back-fill on every historical entry.
-
Risk if skipped: Missing historical rates block import of open foreign-currency invoices until rates are back-filled.
-
Risk if skipped: An active bank feed during load can double-post incoming bank transactions or notify customers with placeholder data.
1c. People prep
-
Risk if skipped: Untrained users avoid the new system on day one and continue working in shadow spreadsheets, fragmenting data.
Phase 2
Source Export
Extract every byte you will need, with timestamps captured so you know the delta at cutover.
-
Risk if skipped: Without a dimension-level trial balance you cannot rebuild the opening journal with the right analytical splits.
-
Risk if skipped: Missing Costing Method on import forces a default that may not match the source valuation.
-
Risk if skipped: Mixing a half-frozen source with a half-loaded destination creates phantom orders.
-
Risk if skipped: Open AR loaded as a single net balance per customer destroys aging and remittance allocation.
-
Risk if skipped: Without the unreconciled list the first bank rec in Business Central reports a phantom variance.
Phase 3
Transform & Map
Translate the source exports into Business Central–shaped Configuration Package files and RapidStart templates.
3a. Mapping spreadsheet
-
Risk if skipped: Re-running an import without a stable upsert key creates duplicate masters that then need manual merge.
-
Risk if skipped: Skipping this and relying on a default at import time silently routes entries to the wrong GL accounts.
3b. Data transformation
-
Risk if skipped: Off-by-one-day dates on posted documents distort aging and period attribution.
-
Risk if skipped: String-too-long errors halt the entire batch and force a re-export with truncation rules applied.
-
Risk if skipped: A single un-escaped comma in an address splits the row and shifts every column to the right for the rest of the file.
3c. Audit trail and ownership decisions
-
Risk if skipped: Re-stamping every document to today destroys aging buckets and historical analytics.
-
Risk if skipped: Leaving Change Log on during bulk load creates millions of log rows that compete with transactions for database storage.
3d. ERP-specific transforms
-
Risk if skipped: A misnumbered or mis-categorized account distorts every financial statement until it is renumbered, which is painful once entries exist.
-
Risk if skipped: Posting the journal with an out-of-balance net forces a manual correcting entry that audit will question.
-
Risk if skipped: Loading items with zero cost or default cost destroys subsequent margin reporting and COGS posting.
-
Risk if skipped: A single missing exchange-rate row blocks import of the open document and cascades into open-AR reconciliation failure.
-
Risk if skipped: A net-balance load forces manual application of every incoming payment after go-live and destroys customer statement detail.
-
Risk if skipped: Forgetting to open the User Setup window blocks the migration user even when General Ledger Setup is open.
Phase 4
Sandbox Test Migration
Find every breakage in the sandbox before it costs you a real cutover window.
-
Risk if skipped: Field-level drift caught after full load forces a destructive re-import.
-
Risk if skipped: A sandbox trial balance that does not tie forces a transform fix before any production load.
-
Risk if skipped: Hitting tenant throttling mid-cutover forces the load to back off and extends the window past business hours.
-
Risk if skipped: Issues that only surface in real workflows (statement runs, payment proposals, inventory picks) stay hidden until go-live.
-
Risk if skipped: Skipping written sign-off means later disputes about whether the sandbox passed at all.
Phase 5
Production Cutover
Tight, sequenced execution. Every step is logged and idempotent.
-
Risk if skipped: An active recurring job queue can post against partially loaded master data and create orphan ledger entries.
-
Risk if skipped: Continuing past an out-of-balance opening journal compounds the variance into every downstream report.
-
Risk if skipped: Without recorded row counts you cannot prove reconciliation later.
Phase 6
Validate
Prove correctness against the frozen source numbers before any user is let in.
6a. Reconciliation
-
Risk if skipped: Any unexplained variance carried into go-live will be questioned by audit.
-
Risk if skipped: Inventory variance after cutover usually traces to a unit-cost or UoM conversion error and is expensive to unwind.
6b. Relationship validation
6c. Audit and compliance
-
Risk if skipped: A wrong-geo deployment may force a re-migration to comply with GDPR or sector rules.
6d. User-acceptance check
6e. Sign-off
-
Risk if skipped: Opening up without written sign-off leaves the migration team owning every downstream issue indefinitely.
Phase 7
Post-Migration Cleanup
Decommission the source, rebuild what did not migrate, and close the project.
-
Risk if skipped: An integration hitting the throttle in production silently fails to deliver bank feed, EDI, or webshop data.
-
Risk if skipped: Throwing away the export files before audit closes their books on the migration year forces a forensic recovery later.
Watch list
Risks to track throughout
These risks live across multiple phases — keep an eye on them from kickoff through cutover.
-
Tenant throttling and concurrent-operation caps
Business Central enforces tenant-level concurrency limits; bulk loads, retry storms during sandbox tests, and re-runs after transform fixes all share the same budget. Track cumulative throughput from Phase 4 onward and stagger imports so the production cutover does not collide with parallel integrations or job queues.
-
Posting Group and General Posting Setup gaps
Every Customer, Vendor, and Item must resolve cleanly through Customer Posting Group, Vendor Posting Group, Inventory Posting Group, and the four-way General Posting Setup intersection to route entries to the right GL accounts. A single missing intersection blocks every downstream document and silently misroutes others; verify the full matrix exists before any master-data load and re-verify after any setup change.
-
Database storage growth and the per-tenant capacity ceiling
Business Central includes 80 GB plus a per-licensed-user allowance per tenant; loading multi-year historical detail, attachments, and Change Log entries during bulk import can quickly approach the ceiling. Decide attachment strategy and historical-detail scope before Phase 2, keep Change Log off during load, and monitor the Capacity page in the Business Central administration center across every phase.
-
Allow Posting From / To and Accounting Periods locking the team out at the worst moment
Period gating is enforced both at General Ledger Setup and at User Setup. The opening journal, Item Journal, and open-document loads all touch backdated periods and will fail silently or noisily if the window is closed for the migration user. Re-confirm both layers immediately before each posting step in Phase 5 and re-tighten them after validation in Phase 6.
Pair this with the long-form guide
The complete Microsoft Dynamics 365 Business Central migration guide
Same research, written as prose: data model, import mechanisms, mapping strategy, pitfalls, and partner landscape.