Subscription Audit & Cancellation Guide
Scans bank CSV exports for recurring charges, identifies all subscriptions with amounts and frequencies, calculates annual cost, and provides cancellation links via Brave Search. Prerequisites: python3, brave-search MCP.
MCP get_skill({ skillId: "subscription-audit-cancellation-guide-2cb6cafd" })Use this skill with your agent
Create a free account and connect via MCP
# Subscription Audit & Cancellation Guide
Find every recurring charge in your bank statements, calculate the true annual cost, and get one-click cancellation links.
## When to Use
- "What subscriptions am I paying for?"
- "How much do I spend on subscriptions per year?"
- "Help me cancel unused subscriptions"
## Requirements
- **python3** with pandas
- **Brave Search MCP** for finding cancellation pages
- Bank/credit card CSV export (at least 2 months of data)
## Workflow
### Step 1 — Detect Recurring Charges
```bash
python3 << 'PYEOF'
import pandas as pd
from collections import Counter
df = pd.read_csv("{BANK_CSV_FILE}")
# Normalize description column
desc_col = next((c for c in df.columns if c.lower().strip() in ['description', 'memo', 'name', 'payee']), df.columns[2])
amount_col = next((c for c in df.columns if c.lower().strip() in ['amount', 'debit']), df.columns[-2])
df['desc_clean'] = df[desc_col].astype(str).str.lower().str.strip()
df['amount'] = pd.to_numeric(df[amount_col], errors='coerce').abs()
# Find charges that appear multiple times with similar amounts
recurring = df.groupby('desc_clean').agg(
count=('amount', 'count'),
avg_amount=('amount', 'mean'),
total=('amount', 'sum')
).query('count >= 2 and avg_amount < 200') # Subscriptions are usually under $200
recurring = recurring.sort_values('total', ascending=False)
recurring['annual_est'] = recurring['avg_amount'] * 12
print("=== DETECTED RECURRING CHARGES ===")
for desc, row in recurring.iterrows():
print(f" {desc}: ${row['avg_amount']:.2f}/mo x {row['count']} charges = ${row['total']:.2f} (est. ${row['annual_est']:.2f}/yr)")
print(f"\nTotal recurring: ${recurring['avg_amount'].sum():.2f}/month = ${recurring['annual_est'].sum():.2f}/year")
PYEOF
```
### Step 2 — Build Subscription Inventory
Present findings and ask user to confirm/classify each:
- ✅ **Keep** — actively using
- 🤔 **Review** — might not need
- 🗑️ **Cancel** — not using / forgot about
### Step 3 — Find Cancellation Links
For each subscription marked for cancellation:
```
brave_web_search: "how to cancel {SERVICE_NAME} subscription"
brave_web_search: "{SERVICE_NAME} cancel account URL"
```
### Step 4 — Generate Audit Report
```markdown
# Subscription Audit — {DATE}
## Summary
| | Monthly | Annual |
|---|---------|--------|
| 💰 Total subscriptions | ${X}/mo | ${Y}/yr |
| ✅ Keeping | ${X}/mo | ${Y}/yr |
| 🗑️ Cancelling | ${X}/mo | ${Y}/yr |
| 💵 **Annual savings** | | **${SAVINGS}/yr** |
## All Subscriptions
| Service | Amount | Frequency | Status | Action |
|---------|--------|-----------|--------|--------|
| Netflix | $15.49 | Monthly | ✅ Keep | |
| Hulu | $17.99 | Monthly | 🗑️ Cancel | [Cancel here](URL) |
| Adobe CC | $54.99 | Monthly | 🤔 Review | Consider switching to Figma |
## Cancellation Checklist
- [ ] Hulu — [Cancel link](URL) — saves $17.99/mo
- [ ] {Service} — [Cancel link](URL) — saves ${X}/mo
```
### Step 5 — Save Report
```bash
mkdir -p outputs/finance
cat > "outputs/finance/subscription-audit-{DATE}.md" << 'EOF'
{REPORT}
EOF
```
## Important Rules
- Pattern-match recurring charges conservatively — confirm with user before labeling something a subscription
- Include cancellation links only from official sources
- Note if cancellation requires calling (not just a URL)
- Warn about annual prepaid subscriptions and cancellation deadlines
## Example Prompts
- "Find all my subscriptions from my bank statement" (provide CSV)
- "How much am I spending on subscriptions per year?"
- "Help me cancel Netflix and Hulu"Related Skills
More skills in Finance & Budgeting
50/30/20 Budget Planner
Creates a personalized monthly budget using the 50/30/20 framework. Calculates target allocations from income, maps actual spending from CSV data, and identifies overspending. Prerequisites: python3.
CSV Bank Statement Expense Analyzer
Imports bank/credit card CSV exports, categorizes transactions automatically, calculates spending breakdowns, and identifies savings opportunities. Prerequisites: python3, csvkit.
Investment Research & Stock Screener
Researches stocks, ETFs, and market data via Brave Search and public APIs. Generates comparison tables with key metrics, dividend info, and performance charts. Prerequisites: brave-search MCP, curl, jq, python3.
Savings Goal Calculator & Tracker
Calculates how long to reach savings goals with compound interest projections, generates a month-by-month savings plan, and tracks progress in a markdown file. Prerequisites: python3.
Tax Document Organizer & Deduction Finder
Creates a tax document checklist, organizes receipts and forms by category, identifies common deductions via Brave Search, and generates a tax prep summary for your accountant. Prerequisites: brave-search MCP, python3.
Explore Other Categories
Skills from other categories with shared topics
Travel Budget Calculator & Tracker
Researches real costs at your destination via Brave Search, builds a detailed budget estimate with currency conversion, and creates a trackable expense spreadsheet. Prerequisites: brave-search MCP, python3.
Book-to-Action Notes Generator
Researches a book's key ideas via Brave Search, generates structured chapter summaries with actionable takeaways, and creates an implementation checklist. Prerequisites: brave-search MCP.
Company Due Diligence Researcher
Conducts comprehensive research on a company via Brave Search covering financials, leadership, culture, news, and competitive landscape. Generates a diligence brief for job seekers, investors, or partners. Prerequisites: brave-search MCP, python3.