The same payment, booked twice
Duplicates get into a statement in ordinary ways. A bank re-sends a file and it is imported on top of the first one. A batch is submitted twice. Two overlapping date ranges are downloaded from the portal and both are loaded. The result is the same: a payment your ledger thinks happened twice, and a reconciliation that will not close.
This tool groups the entries in your statement that look like the same booking more than once, so you can check them before they reach the ledger rather than after.
Nothing is uploaded. This page is JavaScript running on your machine. Load it, disconnect from the internet, and it still works — which is the only honest way to hand a tool a live bank statement.
How entries are matched
Two entries are treated as the same booking when all of these agree:
- Value date
- Signed amount — compared in whole cents, so
1234,56and1234.560match and no floating-point rounding is involved - Counterparty — IBAN and name, whitespace and case normalised
- End-to-end reference (
EREF) and the purpose text from:86:
Why the bank reference is deliberately excluded
Every :61: line carries the bank's own reference. It would be the obvious thing to match on — and it is exactly wrong for this job, because a bank issues a new reference when it re-sends a statement. Matching on it would report zero duplicates on the one file that certainly contains them.
So the bank reference is not used for matching, but it is shown in the results, because it is the best evidence you have for the opposite conclusion: two entries with different bank references are usually two genuinely different bookings that happen to look alike.
Duplicates versus repeats
No tool can tell a mistaken duplicate from a legitimate repeat, and any tool that claims otherwise will eventually delete a real payment. A daily custody fee, a standing order paid twice in a period, two identical invoices from the same supplier on the same day — all of these are real, and all of them look like duplicates from the file alone.
That is why every group here is a candidate to review, never a confirmed error, and why nothing is removed automatically. The judgement stays with you; this just makes sure you get to make it.
How to check for duplicates
Add the file
Drop the .sta file above, or paste the statement text.
Review each group
Entries are grouped, with the bank reference shown so you can separate real repeats from real duplicates.
Export the candidates
Download them as CSV to work through in a spreadsheet or hand to whoever owns the ledger.