[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M74YBCRTM50T7M9Y89V3FEDN":3,"skill-same:01M74YBCRTM50T7M9Y89V3FEDN":46},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":24,"commitSha":25,"skillDirectory":26,"forksCount":27,"repositoryHtmlUrl":28,"repositoryHomepageUrl":6,"ownerHtmlUrl":29,"ownerBlogUrl":30,"ownerDescription":6,"updatedAt":31,"install":32,"resources":45},"01M74YBCRTM50T7M9Y89V3FEDN","subscription-audit",null,"Find recurring subscriptions, calculate total cost, and flag unused ones.","openaccountant\u002Fskills","openaccountant","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F264845549?v=4","01M74Y9H4M5RZ23X265W9B9GSC","OpenAccountant AI","01M74Y9H580Z745YB8EPFHF537",122,"MIT","https:\u002F\u002Fgithub.com\u002Fopenaccountant\u002Fskills\u002Fblob\u002Fmain\u002Fpersonal\u002Fsubscription-audit\u002FSKILL.md",[],[],"2026-11-11 17:30:46",false,"---\nname: subscription-audit\ndescription: >\n  Find recurring subscriptions, calculate total cost, and flag unused ones.\n---\n\n# Subscription Audit\n\n## Overview\nScans your transaction history for recurring subscription charges, totals your monthly and annual subscription spend, identifies subscriptions with no recent usage pattern changes, and recommends cancellation candidates.\n\n## Wilson Tools Used\n- `anomaly_detect` — detect unused or forgotten subscriptions via type `unused_subscriptions`\n- `transaction_search` — find all recurring charges and verify subscription patterns\n\n## Workflow\n1. Run `anomaly_detect` with `types: [\"unused_subscriptions\"]` to surface subscriptions that appear to be unused or redundant.\n2. Run `transaction_search` with `query: \"subscription OR recurring OR monthly\"` and `months: 6` to pull all subscription-like transactions over the past 6 months.\n3. Group results by merchant name and calculate the monthly charge amount for each subscription.\n4. Sum all recurring charges to produce a total monthly subscription spend and annualized cost.\n5. Cross-reference the anomaly detection results with the transaction list. Flag any subscription that appeared in the unused list.\n6. Present a table with columns: Merchant, Monthly Cost, Annual Cost, Months Active, Status (Active \u002F Flagged for Review).\n7. Recommend cancellation candidates — prioritize subscriptions flagged as unused, then sort remaining by cost descending.\n8. Calculate potential annual savings if all flagged subscriptions were cancelled.\n\n## Without Wilson\n1. Export transactions from your bank as a CSV file (Chase: Statements & Documents > Download Account Activity > CSV; Bank of America: Statements & Documents > Download Transactions).\n2. Open the CSV in a spreadsheet (Google Sheets or Excel).\n3. Sort by the Description column and look for repeating merchant names with consistent amounts.\n4. Use a filter: in Google Sheets, add a helper column with `=IF(COUNTIF(B:B, B2) > 1, \"Recurring\", \"One-time\")` where column B is the merchant\u002Fdescription column.\n5. Create a pivot table grouping by merchant name, summing the amounts, and counting occurrences.\n6. Any merchant appearing monthly with a consistent amount is likely a subscription.\n7. Multiply each monthly charge by 12 to get annual cost.\n8. Review each subscription and ask: \"Did I use this in the last 30 days?\" Cancel anything you answer \"no\" to.\n9. Common subscription merchants to search for: Netflix, Spotify, Hulu, Disney+, Amazon Prime, Adobe, Dropbox, iCloud, Google One, YouTube Premium, gym memberships, news subscriptions.\n\n## Important Notes\n- Subscription detection relies on pattern matching in transaction descriptions. Some merchants use varying names across charges.\n- Annual subscriptions (charged once per year) may not appear in a 6-month window. Extend the search range to 12-18 months to catch these.\n- Free trials that convert to paid subscriptions are easy to miss — look for small initial charges from unfamiliar merchants.\n","# Subscription Audit\n\n## Overview\nScans your transaction history for recurring subscription charges, totals your monthly and annual subscription spend, identifies subscriptions with no recent usage pattern changes, and recommends cancellation candidates.\n\n## Wilson Tools Used\n- `anomaly_detect` — detect unused or forgotten subscriptions via type `unused_subscriptions`\n- `transaction_search` — find all recurring charges and verify subscription patterns\n\n## Workflow\n1. Run `anomaly_detect` with `types: [\"unused_subscriptions\"]` to surface subscriptions that appear to be unused or redundant.\n2. Run `transaction_search` with `query: \"subscription OR recurring OR monthly\"` and `months: 6` to pull all subscription-like transactions over the past 6 months.\n3. Group results by merchant name and calculate the monthly charge amount for each subscription.\n4. Sum all recurring charges to produce a total monthly subscription spend and annualized cost.\n5. Cross-reference the anomaly detection results with the transaction list. Flag any subscription that appeared in the unused list.\n6. Present a table with columns: Merchant, Monthly Cost, Annual Cost, Months Active, Status (Active \u002F Flagged for Review).\n7. Recommend cancellation candidates — prioritize subscriptions flagged as unused, then sort remaining by cost descending.\n8. Calculate potential annual savings if all flagged subscriptions were cancelled.\n\n## Without Wilson\n1. Export transactions from your bank as a CSV file (Chase: Statements & Documents > Download Account Activity > CSV; Bank of America: Statements & Documents > Download Transactions).\n2. Open the CSV in a spreadsheet (Google Sheets or Excel).\n3. Sort by the Description column and look for repeating merchant names with consistent amounts.\n4. Use a filter: in Google Sheets, add a helper column with `=IF(COUNTIF(B:B, B2) > 1, \"Recurring\", \"One-time\")` where column B is the merchant\u002Fdescription column.\n5. Create a pivot table grouping by merchant name, summing the amounts, and counting occurrences.\n6. Any merchant appearing monthly with a consistent amount is likely a subscription.\n7. Multiply each monthly charge by 12 to get annual cost.\n8. Review each subscription and ask: \"Did I use this in the last 30 days?\" Cancel anything you answer \"no\" to.\n9. Common subscription merchants to search for: Netflix, Spotify, Hulu, Disney+, Amazon Prime, Adobe, Dropbox, iCloud, Google One, YouTube Premium, gym memberships, news subscriptions.\n\n## Important Notes\n- Subscription detection relies on pattern matching in transaction descriptions. Some merchants use varying names across charges.\n- Annual subscriptions (charged once per year) may not appear in a 6-month window. Extend the search range to 12-18 months to catch these.\n- Free trials that convert to paid subscriptions are easy to miss — look for small initial charges from unfamiliar merchants.\n",{"name":5,"description":7},"main","f5abe381f24b5b7d59f1d0b4a825b14494ff2034","personal\u002Fsubscription-audit",19,"https:\u002F\u002Fgithub.com\u002Fopenaccountant\u002Fskills","https:\u002F\u002Fgithub.com\u002Fopenaccountant","https:\u002F\u002Fopenaccountant.ai","2026-04-09 23:03:52",{"source":8,"skillName":5,"commands":33,"prompt":43,"zipAvailable":44},[34,37,40],{"tool":35,"command":36},"npx","npx skills add openaccountant\u002Fskills --skill subscription-audit",{"tool":38,"command":39},"bunx","bunx skills add openaccountant\u002Fskills --skill subscription-audit",{"tool":41,"command":42},"pnpm","pnpm dlx skills add openaccountant\u002Fskills --skill subscription-audit","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fopenaccountant\u002Fskills\u002Fblob\u002Fmain\u002Fpersonal\u002Fsubscription-audit\u002FSKILL.md",true,[],[47,54,61,68,75,82],{"skillNo":48,"name":49,"nameZh":6,"description":50,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":51,"categories":52,"keywords":53,"publishedAt":19},"01M74YCMH08XC7D0GJTX1P4CNR","year-end-summary","Generate an annual financial review with totals, trends, and highlights.","https:\u002F\u002Fgithub.com\u002Fopenaccountant\u002Fskills\u002Fblob\u002Fmain\u002Fshared\u002Fyear-end-summary\u002FSKILL.md",[],[],{"skillNo":55,"name":56,"nameZh":6,"description":57,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":58,"categories":59,"keywords":60,"publishedAt":19},"01M74YCJ3PYFTSQ98HDRVFS1GY","tax-prep","Organize business expenses by IRS Schedule C categories for tax filing.","https:\u002F\u002Fgithub.com\u002Fopenaccountant\u002Fskills\u002Fblob\u002Fmain\u002Fshared\u002Ftax-prep\u002FSKILL.md",[],[],{"skillNo":62,"name":63,"nameZh":6,"description":64,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":65,"categories":66,"keywords":67,"publishedAt":19},"01M74YCFN34E2S1F424V4JC5SB","smart-split","Split a single transaction across multiple categories with custom amounts.","https:\u002F\u002Fgithub.com\u002Fopenaccountant\u002Fskills\u002Fblob\u002Fmain\u002Fshared\u002Fsmart-split\u002FSKILL.md",[],[],{"skillNo":69,"name":70,"nameZh":6,"description":71,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":72,"categories":73,"keywords":74,"publishedAt":19},"01M74YCDB68Q9CYH1MMCYZQSV0","smart-categorize","Auto-categorize uncategorized transactions using vendor pattern matching.","https:\u002F\u002Fgithub.com\u002Fopenaccountant\u002Fskills\u002Fblob\u002Fmain\u002Fshared\u002Fsmart-categorize\u002FSKILL.md",[],[],{"skillNo":76,"name":77,"nameZh":6,"description":78,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":79,"categories":80,"keywords":81,"publishedAt":19},"01M74YCAHA923T5SC63S31KHXA","sales-tax-nexus","Determine sales tax obligations by state based on economic nexus thresholds.","https:\u002F\u002Fgithub.com\u002Fopenaccountant\u002Fskills\u002Fblob\u002Fmain\u002Fshared\u002Fsales-tax-nexus\u002FSKILL.md",[],[],{"skillNo":83,"name":84,"nameZh":6,"description":85,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":86,"categories":87,"keywords":88,"publishedAt":19},"01M74YC832W8BPW5PD7895S1G5","quarterly-taxes","Estimate quarterly tax payments using income totals and safe harbor rules.","https:\u002F\u002Fgithub.com\u002Fopenaccountant\u002Fskills\u002Fblob\u002Fmain\u002Fshared\u002Fquarterly-taxes\u002FSKILL.md",[],[]]