How to find duplicate charges, forgotten subscriptions, and spending spikes
Find suspicious charges by separating exact transaction duplicates, near-duplicate merchant and amount pairs, recurring subscriptions, and category-level spending anomalies. Candidate detection is not proof: compare posted status, refunds, household context, and source statements before disputing or deleting a transaction.
Why this gets messy
Two identical restaurant charges may represent duplicate processing or two valid visits. A subscription may change price or billing date, and one large annual payment can look anomalous in a monthly comparison.
The short version
- Create exact, near-duplicate, recurring, and aggregate-spike tests separately.
- Distinguish pending, posted, reversed, refunded, and disputed entries.
- Compare household, merchant alias, normal interval, and annual billing patterns.
- Keep candidates and decisions in an audit table rather than deleting source rows.
From the field · Personal budgeting coach
Review three months of card activity for avoidable charges
The export contains a pending and posted hotel charge, two identical café visits, a yearly software renewal, and a streaming subscription whose merchant descriptor changed.
Columns used in the example
account_id · transaction_id · posted_date · merchant_raw · amount · status · category
Follow it with your own file
- make consistent merchant candidates without changing transaction IDs.
- Pair pending/reversed entries and refunds before duplicate analysis.
- Identify same-merchant same-amount timing candidates and recurring intervals.
- Review candidates with the account owner and label confirmed, legitimate, refunded, or unresolved.
Check: No transaction should disappear from the source population. Confirmed findings plus legitimate and unresolved candidates should reconcile to every flagged record and amount.
Final checks before using the result
- Statuses handled
- Merchant aliases reviewed
- Candidate types separated
- Source rows retained
- Owner decisions recorded
A method you can follow
- Build candidate groups: Create exact, near-duplicate, recurring, and aggregate-spike tests separately.
- Use transaction status: Distinguish pending, posted, reversed, refunded, and disputed entries.
- Add context: Compare household, merchant alias, normal interval, and annual billing patterns.
- Review before action: Keep candidates and decisions in an audit table rather than deleting source rows.
An anomaly is a prompt to inspect evidence
Detection should prioritize review, not make financial claims. Combining transaction status, timing, merchant identity, and historical pattern reduces false alerts while keeping unusual activity visible.
Where this usually goes wrong
Do not label a charge fraudulent from spreadsheet patterns alone. Contact the financial institution through trusted channels when the account owner does not recognize it.
Clues in the source data
- The same merchant and amount post within a short interval.
- A merchant repeats every 28–35 days but was never categorized as a subscription.
- Category spend jumps because one annual or refunded item changed timing.
Choose the approach that matches the evidence and repetition
| Approach | When it works | What to verify |
|---|---|---|
| Exact duplicate check | Repeated transaction IDs or identical exports | Legitimate same-value purchases |
| Recurring interval check | Subscriptions and memberships | Price/date drift |
| Contextual anomaly review | Material spending investigation | Human confirmation |
Doing these steps in Prepyr
Prepyr accepts CSV files only. Export the worksheet or table you need as a UTF-8 CSV first; workbook formulas, formatting, macros, charts, and other sheets will not be included. Describe the result you need: Find duplicate transactions recurring subscriptions and unusual spending in bank CSVs. Check the columns selected, preview any proposed changes, and compare the output with the source before applying or exporting it.
Prepyr steps used here: Data reconciliation · Version history · Verified analysis · Report generation
A review list that distinguishes likely duplicate processing, recurring subscriptions, normal repeats, refunds, and unresolved spending changes without altering statement evidence.
Questions readers usually ask next
Are identical card charges always duplicates?
No. They may be valid repeated purchases, pending and posted versions, or split bills. Check transaction IDs, status, timing, and context.
How can I spot a subscription whose name changed?
make consistent merchant aliases and compare amount and recurring interval, then review candidate matches rather than merging automatically.