Original post here.

You migrated your accounting system. Then chaos arrived.

1. Data Integrity: Your opening balances are off, and you don't know why

Balance sheet accounts often carry over with rounding differences, misclassified retained earnings, or entirely missing sub-ledger detail. The trial balance can technically "balance" while the underlying data is wrong.

What most people miss: The migration tool often consolidates what should be separate - AR aging detail, prepaid schedules, accruals - into a single lump figure. Clean on the surface, broken underneath.

2. Duplicate Entries: Ghost transactions start inflating your expenses

Bank feeds reconnecting to a new system often pull in transactions that already exist from the historical import. The result: duplicated expenses, inflated COGS, and P&L figures you can't reconcile without going line by line through both systems.

What most people miss: This usually surfaces 30-60 days post-migration when the month-end closes. By then, you're looking at two months of compounded duplicates, not one clean fix.

3. Chart of Accounts: Your chart of accounts mapping was "close enough"

Migration tools do their best to map old GL codes to new ones, but category logic differs by system. Payroll expenses end up in COGS. Software subscriptions hit capital expenditures. Suddenly, your gross margin looks completely different.

What most people miss: A miscategorized account doesn't just hurt your financials - it corrupts any KPI dashboards, forecasting models, or lender covenants tied to those line items.

4. AR/AP Breakage: Open invoices and bills lose their history (or vanish entirely)

Partially paid invoices, applied credits, and vendor advance payments often don't survive the migration intact. Collections teams start chasing invoices that were already settled. Vendors get duplicate payment runs. AR aging reports become unreliable overnight.

What most people miss: The damage becomes relational. Clients receiving duplicate invoices or vendors getting double payments quietly erodes trust before anyone internally even notices.

5. Audit Trail: The audit trail goes dark - right when you need it most

Historical transaction-level detail, user timestamps, approval workflows, and document attachments rarely migrate cleanly. You're left with totals but no lineage. That's fine until a tax audit, investor due diligence, or legal review asks you to show your work on a transaction from 18 months ago.

What most people miss: Most teams don't archive a clean, read-only snapshot of the old system before cutting over. Two years later, that old system is gone, and so is the only source of truth.

The Pattern: Every one of these problems has the same root cause.

Systems migrate data. They don't migrate context.

The logic your team built over years - how expenses were categorized, how credits were applied, what those unusual GL entries actually meant — lives in people's heads, not in the export file.

"A migration is a technical event. The financial cleanup afterward is a human one. Most companies budget for the first and ignore the second."

If you're planning a migration, save this. These aren't edge cases. The companies that catch them early just had someone watching for them.

Join 1000+ founders who get our insights straight to their inbox.

If you're building and scaling a business, our monthly newsletter brings you practical strategies, real stories, and hard-won lessons from founders who’ve done it -all curated to help you grow smarter and move faster.