Remove Duplicate Bank Transactions
Every bank export eventually doubles itself: pending charges that post, re-downloads that overlap, imports run twice. Cleaning by hand is a losing game.
Duplicate transactions don't just look messy — they wreck budgets, inflate spending reports, and break import tools. The catch is they're rarely identical: a pending SQ *COFFEE SHACK becomes a posted charge with a new date and a cleaned-up name.
How Gristmill matches duplicates
- Exact matching — same date, amount, and merchant: obvious copies, gone.
- Fingerprint matching — amount + tight date window + normalized merchant: catches the pending→posted shuffle.
- Pending-awareness — pending rows lose to their posted twins instead of the other way around.
How to dedupe your export
- Drop your OFX/QFX/CSV into the cleaner.
- Keep “remove duplicates” checked (it is by default).
- Download — the stats line tells you exactly how many were cut.
Matching happens on integer cents with a normalized merchant key, so $45.30, -45.3, and (45.30) all agree they're the same money.
🔒 Everything runs in your browser. Files never leave your device.