Duplicate expenses across cards and reports
Finds the same purchase claimed twice, whether on a corporate card and a personal reimbursement, across two corporate cards, or in separate reports filed weeks apart.
- Employee
- Priya Raghunathan, Director of Partnerships, Lumenridge Health
- Merchant
- Hotel Arts Barcelona (folio #20917)
- Amount
- $905.17
Folio #20917 was charged to the corporate Amex ending 4418 on April 14 for $893.41. On May 22 the same folio number appeared in a separate out-of-pocket reimbursement for $905.17 on a personal Visa ending 0263, and the $11.76 difference matches a foreign transaction fee line on the uploaded personal card statement. Both lines carry the same folio image, with an image similarity score of 0.98.
- Category
- Duplicates & fraud
- Default severity
- High
- Basis
- Company policy
- Rule ID
- duplicate-cross-card
Why this rule exists
Exact-match duplicate checks inside a single expense platform catch the easy cases. The expensive ones cross systems: a hotel paid on the corporate card and submitted again as an out-of-pocket reimbursement from a personal card, or a team dinner split between two managers who each claim the full receipt. The amounts differ by a tip, a currency conversion or a foreign transaction fee, so exact matching misses them.
Duplicates are a classic expense reimbursement scheme. The ACFE Report to the Nations finds these schemes make up 14% of asset misappropriation cases, with a median loss of $40,000 and a median duration of 14 months before detection. Most duplicates are honest mistakes, but the detection method has to be the same either way, and the follow-up should stay just as polite.
They are also costly to unwind. GBTA research puts the average cost to process one expense report at $58, and correcting a report with errors costs $52 and 18 minutes. Recovering a duplicate after reimbursement adds payroll or repayment work on top of that.
Detection logic
The steps the audit engine runs, in order, on every submitted line.
- 01
Normalize merchant names across card feeds, receipts and reimbursements, so 'SQ *BLUE BOTTLE 0423', 'Blue Bottle Coffee' and 'BLUEBOTTLE SF' resolve to one merchant entity with a single location.
- 02
Compare every new line against 180 days of history across all corporate cards, personal reimbursements and every report, not just the current report or the employee's own expenses.
- 03
Match candidates on normalized merchant, transaction date within three days, and amount within a tolerance window of 2% or $3.00, which absorbs tips, currency conversion and foreign transaction fees.
- 04
Compare receipt fingerprints: the receipt or folio number, the last four card digits printed on the slip, and an image similarity hash, so the same photo uploaded twice is caught even when typed amounts differ.
- 05
Check attendee overlap on shared meals. If two employees claim the same restaurant, date and amount, and each lists the other as an attendee, flag both lines as a possible double claim.
- 06
Exclude legitimate repeats such as daily parking at the same garage, recurring subscriptions and per-night hotel charges by requiring a fingerprint or attendee match before raising a finding on frequent merchants.
The drafted message
Clause-cited, specific and easy to resolve in one click. AP edits or approves it before it reaches the employee in Slack, Teams or email.
Phyto Nex AI, on behalf of Finance
Draft, awaiting AP approval
Hi Priya, thanks for submitting your Barcelona expenses. It looks like Hotel Arts folio #20917 may have been claimed twice: once on your corporate Amex ending 4418 in April, and again as an out-of-pocket reimbursement for $905.17 in this report. Section 9.1 of the Expense Policy asks that each charge be claimed once. If these were two different stays, could you upload the itemized receipt for the second one or add context? If the second claim was an oversight, you can mark that line as personal so it is not paid out. Thank you!
Tuning tips
- Widen the date window for lodging to seven days, since folios post at check-out and an employee may claim the deposit date instead, while keeping three days for meals and ground transport.
- Tighten the amount tolerance for high-frequency merchants such as coffee shops and parking garages, or require an exact receipt number match, to avoid flagging a regular's identical daily order.
- Include former employees' history in the comparison pool, because duplicates sometimes appear when a manager resubmits a departed team member's expenses under their own name.
- Connect every card program, including purchasing cards and departmental cards held by office managers, since the cross-card case is invisible if only travel cards feed the comparison.
- When a duplicate is confirmed, record the resolution, such as removed before payment or repaid, so the 180-day history does not raise the same pair again in a later report.
Basis
Company policy. There is no statutory requirement behind this rule, so thresholds are entirely yours to set.
Related rules
Next: Split transactions below an approval threshold- Duplicates & fraudWeekend and holiday spendFlags card transactions and reimbursements dated on weekends or company holidays with no overlapping trip, event or on-call record, a common early signal of personal spend on business cards.
- Duplicates & fraudSplit transactions below an approval thresholdDetects purchases broken into smaller charges or reports that each fall under an approval limit but together exceed it, such as charges of $1,284.60 and $1,317.46 days apart.
- Meals & alcoholAlcohol without a client attendeeDetects alcohol on itemized restaurant and bar receipts when the attendee list has no external guest, so internal team drinks are separated from client hospitality your policy actually reimburses.
- SubstantiationMissing receipt at or above $75Checks that every expense of $75 or more, and every lodging charge at any amount, carries documentary evidence showing amount, date, place and nature of the expense.
Turn on "Duplicate expenses across cards and reports" for your own receipts.
Connect your expense tool read-only and Phyto Nex AI runs this rule, and 40 more, on every report. Your team approves every message.
14-day free production trial. Read-only connectors. No card required.