Slipsheet ยท Content Back to ledger
Home / How to detect duplicate receipts
How to detect duplicate receipts

How to detect duplicate receipts

Same slip is not two expenses. A paper photo and an emailed receipt of the same $14.82 coffee are one purchase, even when one line says STARBUCKS #1842 and the other says SBUX 1842.

Detecting a duplicate is that comparison: vendor, date, total, and whether the second file is just the other copy of the same tap. Two real coffees on the same morning will share a store and fail the rest.

The three rules people actually use

You do not need a model. You need three checks, in this order:

  1. Same vendor + same total + same day. That is the boring, high-confidence match.
  2. Paper + email within three days. The thermal slip in your pocket and the message that arrived after you tapped to pay.
  3. Fuzzy merchant. STARBUCKS #1842 and SBUX 1842 are the same store. The card network shortened the name. The receipt printer did not.

If a tool shows a confidence score, ask which of those three fired. On the pair below, all three fire. That is the score. There is no separate machine-learning number behind it.

A week of coffee, four rows

Four lines from one habit. Only one pair is the same slip.

Four receipt rows: paper and email of the same $14.82 coffee flagged as a duplicate, plus two real expenses that share a store or a total
Row 2 is the duplicate. Rows 3 and 4 are real expenses that look adjacent.
#SourceVendorDateTotalWhy it is or is not flagged
1Paper photoSTARBUCKS #1842Aug 12$14.82The original slip.
2EmailSBUX 1842Aug 12$14.82Flagged. Same vendor (fuzzy), same total, same day. Paper + email the same afternoon.
3Paper photoSTARBUCKS #1842Aug 12$6.15Keep. Same vendor and day, different total. A drip on the same visit is a second expense.
4EmailSTARBUCKS RESERVEAug 14$14.82Keep. Same-looking total, different store, two days later. A weekly habit is not a duplicate.

Row 1 is the paper. You photographed the thermal slip on the way out. STARBUCKS #1842, August 12, $14.82.

Row 2 is the email. SBUX 1842, August 12, $14.82. Same store, same total, same day, other copy of the same tap. Keep the paper or the email. Not both.

Row 3 is a $6.15 drip on that same visit. Same vendor, same day, different total. Two items, two expenses. The flag stays off.

Row 4 is another $14.82 two days later at STARBUCKS RESERVE. The total rhymes. The store does not. If a system still nags, that is rule 2 stretching past a same-day pair. You keep the row.

What to do with a flag

A flag is a review, not a delete. Open the pair. If they are the same slip, drop one. If they are two real expenses, keep both. The walk-through of that review, including what to do when you are not sure, is how to find duplicate receipts.

Slipsheet runs those three checks on the rows it extracts: vendor, date, total, and whether the second file is paper or email. You still decide. The product is the comparison.

A few straight answers

How do you detect duplicate receipts?

Line up vendor, date, and total. Then ask whether the second file is the other copy of the same tap (paper plus email, or the same image uploaded twice). Same store and same morning is not enough.

What is receipt duplication detection?

The job of telling one purchase stored twice from two real expenses that happen to share a vendor. It is a comparison of fields, not a file-hash of the photo.

Paper and email of the same coffee: which one do I keep?

Either. The fields are the same. Keep the copy you can still read. The thermal slip fades. The email does not.

Two coffees the same morning: will that flag?

Only if the totals match. A $14.82 latte and a $6.15 drip share a store and a day. They are not one slip.

Ready to stop typing receipts?

Open your ledger.

14-day trial. No card. Cancel anytime. Your receipts write themselves while you do literally anything else.