信用卡账单分析器
月底对着信用卡账单发呆:钱到底花哪儿了?哪些会员在悄悄自动续费?还款日是不是又快到了?这个 skill 把这些事一次说清。
痛点
- 银行 App 只给流水,不给"消费结构",想省钱没抓手。
- 视频 / 音乐 / 云盘会员开了就忘,连续包月默默扣钱。
- 偶尔一笔大额消费被埋在几百条记录里,没人提醒。
- 忘记还款日,产生利息和逾期记录。
目标用户
所有持有信用卡 / 习惯用支付宝微信记账的人——几乎人人每月都有一张账单。
核心能力
- 自动分类:餐饮 / 交通 / 购物 / 居家 / 娱乐 / 医疗 / 教育 / 通讯 / 旅行,关键词规则零配置。
- 订阅猎手:识别"相同商户 + 相同金额 + 约每月一次"的交易,揪出自动续费。
- 大额提醒:单笔超过阈值(默认 ¥2000)单独列出。
- 收入排除:工资、退款、转账、还款自动不计入消费,金额才真实。
- 还款提醒:传入距还款日天数,报告顶部提示。
- 多格式:银行 / 支付宝 / 微信导出的 CSV 都能吃,列名自动识别。
执行方式
脚本 analyze.py(零依赖,仅标准库)存于技能目录。设 SKILL 变量后调用:
SKILL=~/.workbuddy/skills/credit-card-statement-analyzer
PY=python3 # 或受管理 Python:/Users/simon/.workbuddy/binaries/python/versions/3.13.12/bin/python3
# 1) 分析账单(CSV 路径)
$PY $SKILL/analyze.py 账单.csv --due-in-days 12
# 2) 输出到文件 / 机器可读 JSON
$PY $SKILL/analyze.py 账单.csv --output report.md
$PY $SKILL/analyze.py 账单.csv --json
# 3) 调整大额阈值 / 排除额外关键词
$PY $SKILL/analyze.py 账单.csv --big 1000 --exclude 报销,对公
# 4) 手动指定列(列名识别失败时用)
$PY $SKILL/analyze.py 账单.csv --date-col 交易日期 --amount-col 交易金额 --desc-col 商户名称 --type-col 收付款方式
# 5) 没有真实账单?生成示例自测
$PY $SKILL/analyze.py --demo --output sample.csv
$PY $SKILL/analyze.py --selftest
如何拿到 CSV 账单
- 银行 App:账单页 → "导出" / "下载流水" → 选 CSV(Excel 可"另存为 CSV")。
- 支付宝:我的 → 账单 → 右上角"..." → 开具交易流水证明 → 导出 CSV。
- 微信:服务 → 钱包 → 账单 → 常见问题 → 下载账单 → 用于个人对账的 CSV。
示例输出(节选)
💳 信用卡账单分析报告
- 总消费:¥7,465.80(共 13 笔支出)
- 距还款日:约 10 天,记得按时还款避免利息与逾期。
📊 消费分类
- 购物:¥6,208.00 (83.2%) ████████████████ [5笔]
- 交通:¥716.50 (9.6%) █ [2笔]
- 餐饮:¥405.30 (5.4%) █ [4笔]
🔁 疑似自动续费 / 订阅扣费
- Netflix 会员自动续费:¥68.00 × 2次 = ¥136.00(周期≈30.0天)
- 腾讯视频 VIP 连续包月:¥25.00 × 2次 = ¥50.00(周期≈26.0天)
⚠️ 大额支出提醒
- ¥5,680.00 2026-06-30 大额数码 相机镜头
边界与说明
- 纯本地运行,账单不上传任何服务器,隐私安全。
- 分类基于中文关键词启发式匹配,特殊商户名可能归到"其他",可自定义
CATEGORY_RULES扩展。 - 不支持直接读 PDF / Excel 原文件;请先导出为 CSV(银行 App 均支持)。
- 只能分析"已发生"的流水,不能代还款,仅做提醒。
Scan to join WeChat group