By Glyf
Duplicate Receipt Detection
Detection is cleanup. By the time you're staring at two rows with the same vendor and the same total, the duplicate already made it into your workflow. It just hasn't been caught yet.
The real fix isn't a smarter detector. It's a workflow that gives duplicates fewer places to sneak in. That's the angle this guide takes on duplicate receipt detection: not one feature to switch on, but a set of habits at the points where repeats actually enter (email inboxes, phone cameras, resubmitted PDFs, card statements), plus the steps that make catching them cheap instead of expensive.
Where duplicate receipt detection actually needs to start
Every duplicate has an entry point, and it's rarely the same one twice.
The most common is the same receipt reaching you two different ways: a phone photo taken at the counter, then the same purchase arriving as a PDF invoice by email a day later. Add a habit of resubmitting files "just to be safe" after a shared drive sync, and you get exact copies with different filenames. Card and bank statement workflows create a second kind: someone enters an expense straight from the statement line, then the paper receipt for that same purchase turns up in a monthly pile and gets uploaded too. And monthly vendor invoices (software subscriptions, recurring suppliers) often look alike enough on sight that a resent invoice from last month gets mistaken for this month's and uploaded again. None of these are careless. They're just what happens when documents move through more than one channel before landing in one place.
Step 1: Match documents at the source, not after upload
The cheapest place to catch a duplicate is before it's a Glyf record at all.
If a receipt might already exist as an email attachment, check the inbox before photographing the paper copy. If you're clearing a shared drive into Glyf, sort by date first so resubmitted PDFs from a prior sync stand out before you drag the whole folder in. This step has nothing to do with software. It's a habit that removes exact-file duplicates before they reach the upload zone at all. Glyf's own upload validation catches the identical file added twice in the same batch, but a phone photo and an emailed PDF of the same purchase are two different files, and no upload check can tell they're the same receipt without a human looking first.
Step 2: Let the 12 extracted fields do the comparing
Once a document is processed, you're not comparing two images anymore. You're comparing structured data.
Glyf extracts 12 fields from every document: invoice number, invoice date, issuing company, category, description, total cost, currency, primary tax rate, tax details, line items, payment method, and discount amount. That's a consistent set of fields across every record, which means a phone-photo receipt and an emailed PDF of the same purchase (two files that look nothing alike) end up with the same vendor, date, and total once extracted. That's what makes the results table and Analysis History useful here: filter by company and amount, or search by invoice number, and two records from completely different sources line up next to each other. It's slower than an automatic verdict, but it's also right more often, since you're the one confirming the match instead of a system guessing at content it can't fully verify.
Step 3: Build a review pass before export, not after
Catching a duplicate before export costs you a minute. Catching it after costs you a spreadsheet.
Set a rule: before any export, scan for rows sharing a vendor and total, especially around month-end when recurring vendor invoices are most likely to repeat. Glyf's Invoice Drawer shows the original document beside every editable field, so confirming a match takes one comparison, not a hunt through old emails. If a card-statement entry and a paper receipt for the same purchase both made it in, this is the pass where you'd correct or remove one of them, before it doubles a category total in an export someone else is relying on. The Data Extraction Engine is what puts those 12 fields on every record in the first place, which is what makes this comparison possible without opening every document.
Do near-duplicates count as duplicates?
Not automatically, and that's on purpose.
A same-vendor, same-total match is a strong hint, not a verdict. Recurring subscriptions, split payments, and repeat purchases from the same supplier all produce records that look like duplicates and aren't. Glyf's workflow is built to let you confirm before anything is removed: open the Invoice Drawer, check invoice number and line items against the original image, and only then decide. Treat "similar" as a reason to look, not a reason to delete. The duplicate detection signals feature page covers how that upload check and comparison layer actually behave in the app.
FAQ
How does Glyf prevent duplicate receipts at upload? Validation runs immediately when a file is added, before analysis starts, and blocks the exact same file from being added twice in a batch. Different files of the same receipt (a photo and a PDF, for instance) aren't caught this way. They need a manual compare after extraction.
What's the fastest way to check if two invoices are duplicates? Compare the same four fields first: invoice number, issuing company, invoice date, and total. Glyf extracts all four for every document, so filtering or searching history by any of them narrows a large batch down to the handful worth a closer look.
Should duplicate checks be a routine, or a once-a-year task? Monthly is the sweet spot for most workflows. It's often enough that a batch never grows large enough to hide a repeat, rare enough that it isn't a daily chore. See the monthly cleanup routine for how to fold it into a regular export habit, including how to use exported status and timestamps as part of that check.