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:
- Same vendor + same total + same day. That is the boring, high-confidence match.
- Paper + email within three days. The thermal slip in your pocket and the message that arrived after you tapped to pay.
- 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.
| # | Source | Vendor | Date | Total | Why it is or is not flagged |
|---|---|---|---|---|---|
| 1 | Paper photo | STARBUCKS #1842 | Aug 12 | $14.82 | The original slip. |
| 2 | SBUX 1842 | Aug 12 | $14.82 | Flagged. Same vendor (fuzzy), same total, same day. Paper + email the same afternoon. | |
| 3 | Paper photo | STARBUCKS #1842 | Aug 12 | $6.15 | Keep. Same vendor and day, different total. A drip on the same visit is a second expense. |
| 4 | STARBUCKS RESERVE | Aug 14 | $14.82 | Keep. 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.