You imported a converted statement and the account now shows transactions twice. The file didn't duplicate anything — the overlap is between the import and something already in the books.
The usual causes
- A live bank feed already delivered part of the period. Importing a full month over a feed that started mid-month duplicates the overlap.
- A previous partial import — a CSV of the same period uploaded earlier, or a colleague's attempt.
- Manually entered transactions that the import now shadows.
The fix, tool by tool
- QuickBooks Online de-duplicates on upload where rows match exactly, but near-matches (differing descriptions) slip through — review the period and exclude the older copies in the banking screen.
- Xero doesn't merge statement lines; delete the duplicated statement lines (or the shorter overlapping import) from Manage account → Bank statements.
- Everywhere: decide which source owns which date range. The clean pattern is feeds from their start date forward, converted statements for everything before.
Avoiding it next time
Check the feed's earliest transaction date before importing, and convert only up to the day before. Statement-by-statement imports (rather than one merged file) make trimming a period trivial — and each statement was independently balance-checked anyway.
What the balance check told you
The converted file reconciled against the statement's printed balances before export, so the file's total for the period is right. When a post-import balance is wrong, subtraction points at the books: the difference equals the duplicated rows.