name: refund-radar
description: 扫描银行对账单,检测周期性扣款,标记可疑交易,并通过交互式 HTML 报告草拟退款请求。
扫描银行对账单,检测周期性扣款,标记可疑交易,识别重复项和费用,草拟退款请求模板,并生成交互式 HTML 审计报告。
向用户索取银行/信用卡 CSV 导出文件或粘贴的文本。常见来源:
或接受粘贴的文本格式:
2026-01-03 Spotify -11.99 USD
2026-01-15 Salary +4500 USD
对用户数据运行解析器:
python -m refund_radar analyze --csv statement.csv --month 2026-01
或针对粘贴的文本:
python -m refund_radar analyze --stdin --month 2026-01 --default-currency USD
解析器自动检测:
- 分隔符(逗号、分号、制表符)
- 日期格式(YYYY-MM-DD、DD/MM/YYYY、MM/DD/YYYY)
- 金额格式(单列或借/贷)
- 货币
工具通过以下方式识别周期性订阅:
- 同一商户在 90 天内出现 >= 2 次
- 金额相似(在 5% 或 2 美元范围内)
- 周期一致(每周、每月、每年)
- 已知订阅关键词(Netflix、Spotify 等)
输出显示:
- 商户名称
- 平均金额和周期
- 最近扣款日期
- 下次预期扣款日期
工具自动标记:
| 标记类型 | 触发条件 | 严重性 |
|---|---|---|
| 重复项 | 同一商户 + 相同金额在 2 天内 | 高 |
| 金额激增 | > 1.8 倍基准值,差额 > 25 美元 | 高 |
| 新商户 | 首次出现 + 金额 > 30 美元 | 中 |
| 类似费用 | 关键词(FEE、ATM、OVERDRAFT)+ 金额 > 3 美元 | 低 |
| 货币异常 | 异常货币或动态货币转换(DCC) | 低 |
对于标记的项目,以 5-10 个为一批询问:
根据回答更新状态:
python -m refund_radar mark-expected --merchant "Costco"
python -m refund_radar mark-recurring --merchant "Netflix"
报告保存至 ~/.refund_radar/reports/YYYY-MM.html
复制 template.html 结构。包含以下部分:
- 摘要:交易数量、总支出、周期性扣款数量、标记数量
- 周期性扣款:包含商户、金额、周期、下次预期扣款日期的表格
- 意外扣款:包含严重性和原因的标记项目
- 重复项:同一天的重复扣款
- 类似费用:ATM 费、外汇费、服务费
- 退款模板:可直接复制的邮件/聊天/争议消息
功能:
- 隐私切换(模糊商户名称)
- 深色/浅色模式
- 可折叠部分
- 模板上的复制按钮
- 自动隐藏空部分
针对每个标记的扣款,生成三种模板类型:
- 邮件:正式的退款请求
- 聊天:用于在线客服的快速消息
- 争议:银行争议表单文本
每种类型提供三种语气变体:
- 简洁(默认)
- 坚定(自信)
- 友好(礼貌)
模板包含:
- 商户名称和日期
- 扣款金额
- 基于标记类型的争议原因
- 卡号后四位、参考编号的占位符
重要:生成的文本中不包含撇号。
# 分析对账单
python -m refund_radar analyze --csv file.csv --month 2026-01
# 从标准输入分析
python -m refund_radar analyze --stdin --month 2026-01 --default-currency CHF
# 将商户标记为预期扣款
python -m refund_radar mark-expected --merchant "Amazon"
# 将商户标记为周期性扣款
python -m refund_radar mark-recurring --merchant "Netflix"
# 列出预期商户
python -m refund_radar expected
# 重置学习状态
python -m refund_radar reset-state
# 导出月度数据
python -m refund_radar export --month 2026-01 --out data.json
| 路径 | 用途 |
|---|---|
~/.refund_radar/state.json |
学习到的偏好、商户历史记录 |
~/.refund_radar/reports/YYYY-MM.html |
交互式审计报告 |
~/.refund_radar/reports/YYYY-MM.json |
原始分析数据 |
https://github.com/andreolf/refund-radar