Community编程与开发github.com

daytrader1981/subscription-audit-skill

分析银行/信用卡CSV导出文件,找出所有循环扣款,计算每月和每年费用,并建议保留、取消或降级。当用户要求审计订阅、查找循环扣款或削减月度开支时使用。

subscription-audit-skill 是什么?

该技能帮助用户审计其银行或信用卡账单导出CSV文件中的循环扣款,以识别不必要的订阅支出。它要求用户提供至少90天以上的CSV导出文件,包含日期、描述和金额列。通过规范金额和商户名称,该技能按周期(周、双周、月、季、年)分组并识别循环商户,同时标记金额波动过大(变异系数>25%)或仅出现两次的交易为低置信度。对于支持Python的环境,它可以调用内置脚本 `python scripts/subscription_audit.py <csv>` 自动生成分析表格。最终输出包含每个商户的扣款频率、典型金额、上次扣款日期、下次预计扣款日期、每月和每年等效费用,以及可能的重复订阅建议(如两个音乐服务或同一商户出现在两张卡上)。它还允许用户交互式地对每项订阅做出“保留/取消/降级/不确定”的决定,并生成按下次扣款日期排序的取消清单和总节省金额,同时仅提供服务的官方帮助页面链接。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/daytrader1981/subscription-audit-skill/tree/HEAD/skills/subscription-audit

Installed? Explore more 编程与开发 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

订阅审计

输入

  • 一个或多个CSV导出文件(最好包含90天以上的数据),包含日期、描述和金额列。如果列标题不清晰,请询问用户哪个列对应什么。
  • 可选:用户已知的订阅列表。

流程

  1. 加载CSV文件。规范化金额,使扣款为正数。排除转账、退款和信用卡还款(描述类似于 "PAYMENT THANK YOU"、"TRANSFER")。
  2. 规范化商户名称:转为大写,去除店铺编号、日期、参考ID和城市/州后缀。按规范化商户名称分组。
  3. 当商户的中位间隔与某个周期匹配(每周7±1天、双周14±2天、每月30.4±4天、每季度91±7天、每年365±10天),且至少60%的间隔符合该周期,同时金额稳定时,将该商户标记为循环。变化超过10%的项目会被保留但标记为“金额可变”(如水电费)。金额波动较大的商户(变异系数>25%)应排除,这些属于普通购物而非订阅。仅出现两次的扣款标记为“低置信度”。超过1.5倍周期无扣款则标记为“可能已取消”。
    • 如果Python可用,运行 python scripts/subscription_audit.py <csv>(该脚本位于此技能文件夹内;相对于此SKILL.md文件解析路径),并审查其表格,而不是手动计算。
  4. 对于每个循环商户记录:周期、典型金额、上次扣款日期、下次预计日期(上次扣款日期+周期)、每月等效费用(每周×52/12、每年÷12)和年度费用。
  5. 标记可能的重复:同一类别中的两个商户(例如两个音乐服务、两个云存储计划)或同一商户出现在两张卡上。
  6. 询问用户每个项目“保留/取消/降级/不确定”。如果被要求,根据重叠和最后使用日期提供建议。绝不施加压力。
  7. 输出:
    • 表格:商户 | 周期 | 金额 | 每月 | 每年 | 下次扣款 | 标记 | 决定
    • 总计:当前的每月/每年支出,以及应用决定后的节省金额
    • 取消清单:按下次扣款日期排序(最近优先),并提醒在扣款前取消。
  8. 在提供取消步骤时,仅链接该服务的官方帮助页面,或告知用户搜索“[服务] 取消订阅 site:[官方域名]”。绝不编造步骤。

规则

  • 展示您的匹配假设;将“可能的循环”项目单独列出,当置信度低时。
  • 绝不询问银行密码或登录账户。
  • 非财务建议。

相关技能