expense-optimizer

v2026.09.24

Find recurring expenses and subscriptions to cut or reduce.

GitHub
安装命令
npx skhub add openaccountant/expense-optimizer
Markdown
SKILL.md

Expense Optimizer

Overview

Analyze your transaction history to identify recurring expenses, unused subscriptions, duplicate services, and optimization opportunities. Surfaces actionable savings by detecting charges you may have forgotten about or services you could downgrade.

Wilson Tools Used

  • transaction_search — detect recurring charges by pattern and frequency
  • anomaly_detect — flag subscriptions with price increases or irregular charges
  • spending_summary — identify highest-spend recurring categories

Workflow

  1. Use transaction_search to find all transactions from the last 6 months.
  2. Identify recurring charges by grouping transactions with similar descriptions and regular intervals (weekly, monthly, annual).
  3. Build a recurring expense inventory:
    ServiceMonthly CostFrequencyLast ChargedCategory
  4. Use anomaly_detect to flag:
    • Subscriptions with recent price increases
    • Charges that stopped (possible cancellation or card expiry)
    • Services charged but not seen in a while (potential unused subscriptions)
  5. Classify each recurring expense into optimization categories (see table below).
  6. Present findings with estimated annual savings for each recommendation.
  7. Summarize total potential savings.

Optimization Categories

CategoryDescriptionExamples
CancelServices you likely don't useGym memberships with no related spending nearby, streaming services you haven't watched
DowngradePremium tiers you could reducePhone plan with unused data, cloud storage over 50% empty
NegotiateServices with competitive alternativesInternet, insurance, cell phone
ConsolidateOverlapping servicesMultiple streaming, multiple cloud storage, multiple music services
SwitchCheaper alternatives existBank fees (switch to no-fee), high-interest debt (refinance)
KeepGood value, actively usedNo action needed

Without Wilson

To find recurring expenses manually:

Step-by-Step in a Spreadsheet

  1. Export 6 months of transactions from your bank as CSV.
  2. Sort by Description alphabetically to group similar charges.
  3. Identify recurring charges:
    • Filter for common subscription amounts: $4.99, $9.99, $12.99, $14.99, $15.99, $19.99
    • Search for keywords: SUBSCRIPTION, RECURRING, MONTHLY, ANNUAL, RENEWAL
    • Look for identical amounts from the same vendor appearing monthly
  4. Build your subscription inventory in a new sheet:
    =SUMIFS(Amount, Description, "*NETFLIX*", Date, ">="&TODAY()-180) / 6
    
    This gives the average monthly cost for Netflix over the last 6 months.
  5. Detect price increases: Compare the most recent charge to the oldest charge for each vendor:
    Current:  =INDEX(Amount, MATCH(1, (Description="*NETFLIX*")*(Date=MAX(IF(Description="*NETFLIX*",Date))), 0))
    Original: =INDEX(Amount, MATCH(1, (Description="*NETFLIX*")*(Date=MIN(IF(Description="*NETFLIX*",Date))), 0))
    
  6. Calculate annual cost: =MonthlyCost * 12
  7. Sum potential savings: Add up the annual cost of services you'd cancel, downgrade, or switch.

Free Tools

  • Rocket Money (formerly Truebill): Automatically detects and helps cancel subscriptions
  • Trim: Negotiates bills on your behalf (takes a percentage of savings)
  • Bobby (iOS app): Manual subscription tracker with renewal reminders

Important Notes

  • Recurring detection works best with 3+ months of transaction history. With less data, some annual charges may be missed.
  • Annual charges (e.g., Amazon Prime, domain renewals) only appear once — Wilson looks back 12 months for these if data is available.
  • Some services use different billing descriptors than their brand name (e.g., "GOOGLE *YouTube" for YouTube Premium). Wilson groups these by learning common aliases.
  • This skill identifies candidates for optimization but does not cancel or modify any services on your behalf.
发现
标签

此技能尚未发布标签。

版本
最新版本元数据

版本

v2026.09.24

发布时间

Sep 24, 2026

分类

未分类

许可证

MIT

源路径

shared/expense-optimizer

默认分支

main

最新提交

f5abe38

Tree SHA

a575692