Subscription Audit
Inputs
- One or more CSV exports (ideally 90+ days) with date, description and amount columns. Ask which column is which if headers are unclear.
- Optional: the user's list of subscriptions they know about.
Procedure
- Load the CSVs. Normalize amounts so that charges are positive. Drop transfers, refunds and card payments (descriptions like "PAYMENT THANK YOU", "TRANSFER").
- Normalize merchant names: uppercase, strip store numbers, dates, reference IDs and city/state suffixes. Group by normalized merchant.
- Flag a merchant as recurring when its median interval matches a cadence (weekly 7±1, biweekly 14±2, monthly 30.4±4, quarterly 91±7, yearly 365±10 days), at least 60% of intervals fit that cadence, and amounts are stable. Items varying more than 10% are kept but flagged "variable amount" (utilities). Reject merchants whose amounts swing widely (coefficient of variation > 25%); these are ordinary shopping, not subscriptions. Two charges only = "low confidence". No charge for 1.5× the cadence = "possibly cancelled".
- If Python is available, run
python scripts/subscription_audit.py <csv>(the script ships inside this skill folder; resolve the path relative to this SKILL.md) and review its table instead of computing by hand.
- If Python is available, run
- For each recurring merchant record: cadence, typical amount, last charge date, next expected date (last + cadence), monthly equivalent (weekly ×52/12, yearly ÷12), and yearly cost.
- Mark possible duplicates: two merchants in the same category (e.g., two music services, two cloud storage plans) or the same merchant on two cards.
- Ask the user Keep / Cancel / Downgrade / Unsure for each item. If asked, suggest based on overlap and last-used date. Never pressure.
- Output:
- Table: Merchant | Cadence | Amount | Monthly | Yearly | Next charge | Flag | Decision
- Totals: current monthly/yearly spend, and savings if the decisions are applied
- Cancel checklist ordered by next charge date (soonest first), with a reminder to cancel before that date.
- When giving cancel steps, link only the service's official help page, or tell the user to search "[service] cancel subscription site:[official domain]". Never invent steps.
Rules
- Show your matching assumptions; list "possible recurring" items separately when confidence is low.
- Never ask for bank passwords or log into accounts.
- Not financial advice.