You've decided to move from QuickBooks Online to Xero. Your vendor lists look clean, your chart of accounts maps neatly, and you're thinking the migration will be straightforward. Then week three hits: your accountant flags that aged receivable buckets don't match the old system, class-by-location reporting is gone, and three years of memo field notes are truncated. You're now reconciling two sets of books manually. Xero is a solid platform, but it doesn't map one-to-one with QuickBooks Online. The gap isn't a failure of either tool—it's that QuickBooks and Xero store and expose data differently. The solution is to audit and document those gaps before you migrate, not after. Here are the nine breaks that catch most finance teams off guard, how to find them, and what to do about them. 1. Multi-currency revaluation history evaporates QuickBooks Online stores every revaluation journal entry—date, rate, gain/loss, invoice tied to it. Xero stores the current revaluation, but not the full audit trail of how you got there if you're using QB's native multi-currency module. What breaks: You cannot reconstruct why a particular month's P&L included a ¥15,000 gain or loss. If your auditor asks for the rate used on a specific date, you're hunting through QB exports. Audit query (QuickBooks): Export all journal entries with 'Revaluation' in the memo or account name. Cross-reference against your invoice aging report—map which invoices triggered each revaluation. Document the exchange rate, date, and P&L impact of each entry. Migration step: Before you cut over, print or export a full 36-month revaluation journal and store it separately in your accounting archive. Xero will handle future revaluations cleanly, but historical audit trails must live outside the system. 2. Class and location data collapse into a single dimension QuickBooks Online lets you split a transaction by both Class (department, project) and Location. Xero uses a single tracking category hierarchy. If you've been using both dimensions to slice cost and revenue by project and office, Xero will force you to choose one or build a workaround. What breaks: Your profit-by-project-by-location report can no longer be generated in Xero without exporting data and pivoting manually. Reporting that took 10 minutes now takes 45. Audit query (QuickBooks): Run a P&L by Class and Location for the last 12 months. Count how many transactions use both Class and Location. Identify which dimension is more critical for compliance or decision-making (usually Class, for project margins). Migration step: Decide which dimension to prioritize in Xero's tracking categories. For the secondary dimension, create a naming convention in the primary category—e.g., 'Marketing-Boston', 'Marketing-Singapore'—that preserves the split. Test reporting in Xero before cutover to confirm you can still access the metrics you need. 3. Memo field text is clipped at different lengths QuickBooks stores memo/description fields at up to 4,000 characters per transaction. Xero caps most memo fields at 255 characters. If your team has been recording detailed transaction notes—client codes, contract references, dispute history—much of that gets truncated on migration. What breaks: A memo like 'Invoice #AB-2024-0099, PO ref XYZ-2891, disputed Mar 2024 re: delivery delay, resolved Apr 2024, credited $500' becomes 'Invoice #AB-2024-0099, PO ref XYZ-2891, disputed Mar 2024 re: de' in Xero. Audit query (QuickBooks): Export all transactions (journal entries, invoices, checks) for the past 24 months. Filter for memo fields longer than 255 characters. Review a sample of 20–30 entries to assess what data would be lost. Migration step: For high-value or compliance-sensitive transactions, create a separate archive spreadsheet or PDF and link it in Xero's notes. Use a naming convention: 'See Archive Entry QB-[date]-[ref]'. For future transactions, train your team to keep memos under 200 characters in Xero, and use Xero's Attachments field for longer notes or supporting docs. 4. Aged receivable buckets and payment application detail QuickBooks applies payments to specific invoices and tracks partial payments granularly. Xero does too, but if you have complex payment applications—one check covering multiple invoices, credits applied months later, or disputed amounts—the aged receivable bucket that QB shows may not match Xero's after migration. What breaks: Your 'Over 90 days' AR bucket shows ₹500K in QB but ₹420K in Xero. The delta is real unpaid invoices that are now showing as current because a partial payment was applied differently, or a credit memo didn't migrate cleanly. Audit query (QuickBooks): Run an Accounts Receivable Aging report as of your migration date. Export the underlying invoice-to-payment detail (QB > Reports > Customers > Transactions by Customer). Identify invoices with partial payments, credits, or payments applied out of order. Calculate AR by age bucket (Current, 1–30, 31–60, 61–90, 90+). Pre-mig