Run a Trial Desktop to QuickBooks Online Migration Before the Live Cutover
A trial run into a throwaway QuickBooks Online company exposes the inventory, assembly, and average-cost faults that would derail the live cutover.
The built-in path from QuickBooks Desktop to QuickBooks Online is a one-way import with hard edges. Our engineers treat it like any cutover to production: rehearse first in a throwaway online company, log what breaks, and repair the source file. The live move then holds few surprises.
The case for a throwaway run
The Desktop export command builds a brand-new online company from your file. It will not merge into an online company that already holds data. That constraint is what makes rehearsal cheap: import, inspect, delete the company, import again.
The expensive alternative is finding a broken inventory valuation after the real company is live. Run the trial weeks before the planned cutover, while repairs are unhurried and nothing depends on the outcome. Use a trial subscription for the destination and leave any production online company untouched until sign-off.
Pre-flight checks on the source file
Fixes get cheaper the earlier they land, so the first pass happens in Desktop, before any export.
- Run Verify, then Rebuild until the file comes back clean. A file that will not verify needs QuickBooks Verify and Rebuild repair before it travels anywhere.
- Check the balance sheet on both the accrual and cash bases. If either is out of balance, the file carries damaged transactions; that is a balance sheet out of balance repair job, not a migration setting.
- Review the item list for anything showing a negative quantity on hand now or at any earlier date. That pattern corrupts average cost and must be repaired before export.
- Note the file size and combined list counts against the import ceilings. A crowded file needs preparing an oversized Desktop file for QuickBooks Online import first.
- Fix a cutoff date for history and record it; the live run must use the same one.
Take a QBB backup before the first change to the file. That backup is your first rollback point, and every later fix gets its own.
Running the trial import
Export from Desktop into the temporary company and follow the import wizard end to end. Record every choice the wizard offers, because the live run must repeat them exactly. Wait for the completion notice before judging anything; a half-loaded company produces false discrepancies.
Then compare, as of the cutoff date: balance sheet totals on both bases, and net income for the trailing year. Add the AR and AP aging totals, then the inventory valuation summary, item by item. Finish with the customer, vendor, and item counts.
Write every discrepancy into one list with its amount. The list, not the online company, is the deliverable of the trial.
Where does inventory go wrong?
Average cost is the main fault line. The online product values inventory on its own weighted-average basis and recomputes cost from the transactions it imports. If Desktop ran FIFO, or any item dipped below zero on hand, the imported per-item values drift and COGS stops tying.
Negative quantity on hand is the worst offender, because it corrupts average cost in the source and multiplies the error on the way in. Start with a negative quantity on hand repair in Desktop. Adjusting it inside the online company hides the symptom and leaves the cause in place.
Watch for three symptom patterns: values off by small amounts across many items, items missing entirely, and items that arrived as the wrong type. Each points to a different source problem, and the trial run is what tells you which one you have.
What happens to assemblies?
The online product has no inventory assembly item and no build transaction, so assemblies do not map. The import either skips them or lands them as something close but wrong, and build history never carries. Decide each assembly's fate before the trial: sell it down and retire it, keep production in Desktop until a later cutoff, or restructure the items.
One limit surprises many people: an inventory item cannot simply be switched to non-inventory. The type locks at creation, so converting inventory items to non-inventory is its own project with its own trade-offs. Budget for it in the plan rather than in the middle of cutover week.
Fixing the source file so the live run lands clean
Every fix belongs in Desktop. The temporary online company is a sensor, not a workspace: patching numbers there proves nothing, because the live import rebuilds everything from the source file anyway.
We work the discrepancy list top to bottom: repair damaged transactions, clear negative quantities, merge duplicate items, settle the assembly question, and trim a file that crowds the import ceilings. Then delete the trial company and run the whole import again. A rerun that adds no new discrepancies means the source is ready.
Rollback points
- The QBB backup taken before the first adjustment. Restore it if a repair goes sideways, then reapply only the fixes you trust.
- The trial online company itself. Delete it and start over rather than patching it; it exists to be destroyed.
- The production online company, if you have one. It never appears in a rehearsal, because an import cannot be undone there.
What does a clean run look like?
The balance sheet ties to the penny on both bases as of the cutoff date. The inventory valuation summary matches Desktop item for item, quantities and values both. Net income and the aging summaries agree.
The only differences left should be the known non-carries: bank reconciliation status and assembly builds do not transfer, so plan to re-establish them after cutover. Once the trial reads that way, the live move is the same steps against a fresh backup dated at cutover. Nothing about it should be new.