refund-radar
Scan bank statements to detect recurring charges, flag suspicious transactions, and draft refund requests with interactive HTML reports.
Best use case
refund-radar is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Scan bank statements to detect recurring charges, flag suspicious transactions, and draft refund requests with interactive HTML reports.
Teams using refund-radar should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/refund-radar/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How refund-radar Compares
| Feature / Agent | refund-radar | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Scan bank statements to detect recurring charges, flag suspicious transactions, and draft refund requests with interactive HTML reports.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
Related Guides
AI Agents for Coding
Browse AI agent skills for coding, debugging, testing, refactoring, code review, and developer workflows across Claude, Cursor, and Codex.
AI Agents for Marketing
Discover AI agents for marketing workflows, from SEO and content production to campaign research, outreach, and analytics.
AI Agents for Startups
Explore AI agent skills for startup validation, product research, growth experiments, documentation, and fast execution with small teams.
SKILL.md Source
# refund-radar Scan bank statements to detect recurring charges, flag suspicious transactions, identify duplicates and fees, draft refund request templates, and generate an interactive HTML audit report. ## Triggers - "scan my bank statement for refunds" - "analyze my credit card transactions" - "find recurring charges in my statement" - "check for duplicate or suspicious charges" - "help me dispute a charge" - "generate a refund request" - "audit my subscriptions" ## Workflow ### 1. Get Transaction Data Ask user for bank/card CSV export or pasted text. Common sources: - Apple Card: Wallet → Card Balance → Export - Chase: Accounts → Download activity → CSV - Mint: Transactions → Export - Any bank: Download as CSV from transaction history Or accept pasted text format: ``` 2026-01-03 Spotify -11.99 USD 2026-01-15 Salary +4500 USD ``` ### 2. Parse and Normalize Run the parser on their data: ```bash python -m refund_radar analyze --csv statement.csv --month 2026-01 ``` Or for pasted text: ```bash python -m refund_radar analyze --stdin --month 2026-01 --default-currency USD ``` The parser auto-detects: - Delimiter (comma, semicolon, tab) - Date format (YYYY-MM-DD, DD/MM/YYYY, MM/DD/YYYY) - Amount format (single column or debit/credit) - Currency ### 3. Review Recurring Charges Tool identifies recurring subscriptions by: - Same merchant >= 2 times in 90 days - Similar amounts (within 5% or $2) - Consistent cadence (weekly, monthly, yearly) - Known subscription keywords (Netflix, Spotify, etc.) Output shows: - Merchant name - Average amount and cadence - Last charge date - Next expected charge ### 4. Flag Suspicious Charges Tool automatically flags: | Flag Type | Trigger | Severity | |-----------|---------|----------| | Duplicate | Same merchant + amount within 2 days | HIGH | | Amount Spike | > 1.8x baseline, delta > $25 | HIGH | | New Merchant | First time + amount > $30 | MEDIUM | | Fee-like | Keywords (FEE, ATM, OVERDRAFT) + > $3 | LOW | | Currency Anomaly | Unusual currency or DCC | LOW | ### 5. Clarify with User For flagged items, ask in batches of 5-10: - Is this charge legitimate? - Should I mark this merchant as expected? - Do you want a refund template for this? Update state based on answers: ```bash python -m refund_radar mark-expected --merchant "Costco" python -m refund_radar mark-recurring --merchant "Netflix" ``` ### 6. Generate HTML Report Report saved to `~/.refund_radar/reports/YYYY-MM.html` Copy [template.html](assets/template.html) structure. Sections: - **Summary**: Transaction count, total spent, recurring count, flagged count - **Recurring Charges**: Table with merchant, amount, cadence, next expected - **Unexpected Charges**: Flagged items with severity and reason - **Duplicates**: Same-day duplicate charges - **Fee-like Charges**: ATM fees, FX fees, service charges - **Refund Templates**: Ready-to-copy email/chat/dispute messages Features: - Privacy toggle (blur merchant names) - Dark/light mode - Collapsible sections - Copy buttons on templates - Auto-hide empty sections ### 7. Draft Refund Requests For each flagged charge, generate three template types: - **Email**: Formal refund request - **Chat**: Quick message for live support - **Dispute**: Bank dispute form text Three tone variants each: - Concise (default) - Firm (assertive) - Friendly (polite) Templates include: - Merchant name and date - Charge amount - Dispute reason based on flag type - Placeholders for card last 4, reference number **Important**: No apostrophes in any generated text. ## CLI Reference ```bash # Analyze statement python -m refund_radar analyze --csv file.csv --month 2026-01 # Analyze from stdin python -m refund_radar analyze --stdin --month 2026-01 --default-currency CHF # Mark merchant as expected python -m refund_radar mark-expected --merchant "Amazon" # Mark merchant as recurring python -m refund_radar mark-recurring --merchant "Netflix" # List expected merchants python -m refund_radar expected # Reset learned state python -m refund_radar reset-state # Export month data python -m refund_radar export --month 2026-01 --out data.json ``` ## Files Written | Path | Purpose | |------|---------| | `~/.refund_radar/state.json` | Learned preferences, merchant history | | `~/.refund_radar/reports/YYYY-MM.html` | Interactive audit report | | `~/.refund_radar/reports/YYYY-MM.json` | Raw analysis data | ## Privacy - **No network calls.** Everything runs locally. - **No external APIs.** No Plaid, no cloud services. - **Your data stays on your machine.** - **Privacy toggle in reports.** Blur merchant names with one click. ## Requirements - Python 3.9+ - No external dependencies ## Repository https://github.com/andreolf/refund-radar
Related Skills
radar-collision-warning
雷达防撞预警 — 调用树莓派上 ROS2 节点的雷达预警服务。当用户说"雷达防撞预警"、"开启雷达监控"、"检查障碍物"等时使用。通过 rosbridge WebSocket 向树莓派发送 ROS2 Service 请求,获取最近障碍物距离并给出预警。依赖 Node.js 18+(内置 WebSocket,无需安装任何包)。
market-radar
Real-time market scanning and alert system. Monitors SPX, major indices, VIX, and key crypto prices. Generates alerts when significant levels are crossed.
Lead Radar
Every morning, scans Reddit, Hacker News, Indie Hackers, Stack Overflow, Quora, Hashnode, Dev.to, GitHub, and Lobsters for people actively asking for what you sell. Delivers the top 10 buying-intent leads to your Telegram with a pre-drafted reply. Powered by Gemini 2.5 Flash.
ai-layoff-radar
Detect AI-driven layoffs from global news and generate structured risk reports.
strikeradar
Monitor US-Iran strike probability using open-source indicators - news alerts, Iran internet connectivity, oil prices, flight traffic, military tanker detection, weather, Polymarket odds, and Pentagon activity. Use when user asks about "Iran strike probability", "strike radar", "Iran situation", "US attack Iran", "flights over Iran", "oil prices Iran", "Pentagon activity", "Polymarket Iran", "הסתברות תקיפה באיראן", "מצב איראן", "סטרייק ראדאר".
personal-deadline-radar
扫描个人待办、会议和消息摘要,找即将到期事项与时间冲突。;use for deadlines, calendar, tasks workflows;do not use for 自动改日历, 伪造截止时间.
meeting-risk-radar
会前识别高风险议题、模糊责任、缺失材料和可能失控的讨论点。;use for meeting-risk, preflight, facilitation workflows;do not use for 分析私密录音, 替代正式风险审查.
journal-submission-radar-all-types
统一检索国内外多类型期刊,输出投稿路径核验、定制写作建议、风险提示与可控广告插入的客户顾问型 Skill。
meme-risk-radar-skill
Bilingual meme token risk radar for Binance Web3 data. Scan newly launched or fast-rising meme tokens from Meme Rush, enrich with token audit and token info, produce a normalized risk report in Chinese or English, and support SkillPay billing hooks for paid scan and audit calls.
---
name: article-factory-wechat
humanizer
Remove signs of AI-generated writing from text. Use when editing or reviewing text to make it sound more natural and human-written. Based on Wikipedia's comprehensive "Signs of AI writing" guide. Detects and fixes patterns including: inflated symbolism, promotional language, superficial -ing analyses, vague attributions, em dash overuse, rule of three, AI vocabulary words, negative parallelisms, and excessive conjunctive phrases.
find-skills
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.