Collect comparable billing cycles
Use complete statements for the same card and preserve each cycle's opening and closing dates. A partial month or a different card account can create false gaps.
Normalize merchants without deleting source text
Group processor prefixes, store numbers, location fragments, and small spelling variations in a separate merchant field. The exact issuer descriptor must remain available for verification.
Build a recurrence evidence card
Give every candidate a visible basis and confirmation state.
Source rows
Keep each exact descriptor, amount, date, and statement cycle.
Merchant group
Document the normalization rule and conflicting possibilities.
Cadence
Calculate intervals and explain expected date movement.
Amount pattern
Record fixed, stepped, seasonal, or usage-based behavior.
Confirmation
Name owner, agreement evidence, current status, and next action.
Test interval and amount behavior
Measure days between posted charges and compare calendar positions across cycles. Monthly services can shift around weekends, short months, or settlement delays.
Verify ownership and current status
Check authorized users, receipts, emails, app-store histories, merchant accounts, and agreements. Determine whether the charge is expected, shared, paused, canceled, or unfamiliar.
Turn candidates into a review queue
Record likely merchant, amount range, interval, first and latest appearance, confidence, owner, and next review date. Keep uncertain groups separate from confirmed commitments.