Data Migration & Opening Balances
Moving data from an old system into Business Central is one of the most critical steps in any implementation. Learn how to migrate master data, create opening balances, and avoid the common pitfalls.
Why data migration matters
Data migration is like moving house.
You don’t just carry boxes randomly — you label them, decide what to keep, throw out the junk, and unpack in a logical order (kitchen first, then bedrooms). If you dump everything in the living room, you’ll spend weeks finding things.
In Business Central, the “boxes” are your customer lists, vendor lists, chart of accounts, item catalogues, and opening balances. The “unpacking order” matters — you can’t import customers before you’ve set up customer posting groups.
The migration sequence
Order matters. Priya always follows this sequence:
| Step | What to Migrate | Why This Order |
|---|---|---|
| 1 | Setup data — posting groups, number series, dimensions, payment terms | Everything else references these |
| 2 | Chart of accounts — GL accounts with categories | Posting groups map to GL accounts |
| 3 | Master data — customers, vendors, items, fixed assets | These reference posting groups and dimensions |
| 4 | Opening balances — GL balances, customer/vendor balances, item quantities | Must match the trial balance from the old system |
| 5 | Open documents — outstanding purchase orders, sales orders | Carry forward incomplete transactions |
The golden rule of migration order
Setup before master data. Master data before transactions.
If you try to import customers before posting groups exist, every customer will fail validation (no posting group to assign). If you try to import opening balances before the chart of accounts exists, the journal lines have nowhere to post.
Priya’s shortcut: use the configuration worksheet to order tables by dependency. Business Central even suggests the correct sequence when you add tables to a package.
Migration approaches
| Method | Best For | Data Volume | Complexity |
|---|---|---|---|
| Configuration packages | Full implementations, repeatable migrations | Large (thousands of records) | Medium — requires Excel skills |
| Data migration wizards | QuickBooks, Dynamics GP migrations | Medium | Low — wizard-guided |
| Edit in Excel | Small updates, manual corrections | Small (hundreds) | Low |
| Manual entry | Very small datasets, corrections | Tiny | High effort per record |
| Opening balance journals | GL/sub-ledger starting balances | Medium | Medium — must balance |
Creating opening balances
Opening balances establish where the old system left off and the new system picks up. This is typically done on the go-live date — the first day of a new fiscal period.
GL opening balances
Olivia needs to bring Coastal Traders’ trial balance into Business Central. She uses a general journal:
- Open General Journals (Tell Me > “General Journals”)
- Select or create a journal batch
- For each GL account, enter a line:
- Posting Date = go-live date (typically the first day of the new fiscal period)
- Document Type = leave blank
- Account Type = G/L Account
- Account No. = the GL account number
- Amount = the balance (positive for debit, negative for credit)
- The balancing account is usually a temporary Opening Balance equity account
- Post the journal
Exam tip: Opening balance posting date
The posting date for opening balances should be the last day of the previous period or the first day of the new period. This ensures:
- The old period closes cleanly
- The new period starts with correct balances
- Financial reports don’t mix old-system and new-system transactions in the same period
Most implementations use the day before go-live as the posting date for opening balances.
Customer and vendor opening balances
For sub-ledger balances (what customers owe you, what you owe vendors), Olivia creates separate journal entries:
| Ledger | Account Type | What to Include |
|---|---|---|
| Customer | Customer | Outstanding invoices — one line per open invoice with invoice number and due date |
| Vendor | Vendor | Outstanding bills — one line per open bill with vendor invoice number and due date |
| Bank | Bank Account | Current bank balances |
Critical: Customer and vendor opening balances must be entered as individual open entries (one per invoice), not lump sums. This ensures:
- Aging reports are accurate from day one
- Payment application works correctly
- The cash receipt and payment journals can match specific invoices
Item opening balances
For inventory, Raj uses an item journal to establish starting quantities:
- Open Item Journals (Tell Me > “Item Journals”)
- Enter one line per item per location:
- Item No. = the item
- Location Code = the warehouse location
- Quantity = on-hand quantity
- Unit Cost = the item’s current cost
- Post the journal — this creates item ledger entries and value entries
Migrating data within Business Central
The exam also covers migrating data between companies within the same environment. This uses the same configuration package approach:
- Export a package from the source company
- Switch to the target company
- Import and apply the package
Common scenario: a holding company creates a standard setup, then replicates it to subsidiary companies.
Knowledge check
Priya is migrating Coastal Traders from QuickBooks to Business Central. She has the chart of accounts ready, but customer posting groups haven't been created yet. She tries to import the customer list via a configuration package. What happens?
Olivia is entering customer opening balances for Coastal Traders. She has 150 customers with a total of 340 outstanding invoices. How should she enter the opening balances?
Priya is migrating item data for Summit Distribution. She exported items from the old system into a configuration package, imported it into Business Central, and sees 12 validation errors. What should she do next?
🎬 Video coming soon
Next up: Your company is created and data is loaded. Now let’s set up users, profiles, and security to control who can do what.