Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Scan bank statements to detect recurring charges, flag suspicious transactions, and draft refund requests with interactive HTML reports.
Scan bank statements to detect recurring charges, flag suspicious transactions, and draft refund requests with interactive HTML reports.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
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.
"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"
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
Run the parser on their data: python -m refund_radar analyze --csv statement.csv --month 2026-01 Or for pasted text: 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
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
Tool automatically flags: Flag TypeTriggerSeverityDuplicateSame merchant + amount within 2 daysHIGHAmount Spike> 1.8x baseline, delta > $25HIGHNew MerchantFirst time + amount > $30MEDIUMFee-likeKeywords (FEE, ATM, OVERDRAFT) + > $3LOWCurrency AnomalyUnusual currency or DCCLOW
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: python -m refund_radar mark-expected --merchant "Costco" python -m refund_radar mark-recurring --merchant "Netflix"
Report saved to ~/.refund_radar/reports/YYYY-MM.html Copy 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
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.
# 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
PathPurpose~/.refund_radar/state.jsonLearned preferences, merchant history~/.refund_radar/reports/YYYY-MM.htmlInteractive audit report~/.refund_radar/reports/YYYY-MM.jsonRaw analysis data
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.
Python 3.9+ No external dependencies
https://github.com/andreolf/refund-radar
Trading, swaps, payments, treasury, liquidity, and crypto-financial operations.
Largest current source with strong distribution and engagement signals.