Migrating opening balances into Odoo with reconciliation
Opening balances need a fixed cut-off date, account-level control totals, partner details, currency treatment, open items, and documented reconciliation.
A trial balance that nets to zero can still be wrong. Receivables may lack customers, payables may lose due dates, foreign currency may be missing, and bank or stock balances may not match their operational records. Fix the accounting boundary Choose the last closed period in the old system and the first transaction date in Odoo. Document how late entries, audit adjustments, and documents crossing the boundary will be handled. Separate balance types General ledger totals, open receivables, open payables, bank items, fixed assets, inventory valuation, taxes, retained earnings, and foreign currency need different import methods and validation evidence. Preserve open-item detail Customer and supplier balances should retain partner, document reference, invoice date, due date, residual amount, currency, and payment terms where required. A single control-account journal prevents useful ageing and reconciliation. Reconcile in layers Compare the source trial balance, target trial balance, subledger totals, open-item schedules, currency balances, and operational modules. Record exact differences and their resolution rather than accepting unexplained rounding. Practical checklist Approve one cut-off date and late-entry procedure. Prepare control totals by company, account, partner, and currency. Import open receivables and payables with document detail. Reconcile bank, assets, inventory, tax, and subledgers separately. Keep signed evidence of final balances and adjustments. Final decision Opening balances are accepted when every material total can be traced to a source schedule and the new system can continue reconciliation and settlement correctly.