smart-categorize
Installation
SKILL.md
Smart Categorize
Overview
Automatically categorize uncategorized transactions by matching vendor/description patterns against known rules. Uses existing categorization rules first, then suggests new rules for unmatched transactions based on common vendor names.
Wilson Tools Used
categorize— apply pattern-based categorization rules to transactionstransaction_search— find uncategorized transactions
Workflow
- Use
transaction_searchto find all transactions wherecategoryis null or empty. - Run
categorizeto apply existing categorization rules (pattern matching on description field). - Report how many transactions were categorized by existing rules.
- For remaining uncategorized transactions, group by vendor/description similarity.
- Suggest category assignments for each vendor group (e.g., "SPOTIFY" -> Entertainment, "SHELL OIL" -> Transportation).
- Ask the user to confirm or adjust the suggested categories.
- Apply confirmed categories and optionally save new categorization rules for future imports.
Without Wilson
You can categorize transactions manually in a spreadsheet:
Setting Up Category Rules in Excel/Sheets
-
Create a reference sheet called "Rules" with two columns:
PatternandCategory. -
Add your vendor patterns:
Pattern Category AMAZON Shopping WHOLE FOODS Groceries SHELL Transportation NETFLIX Entertainment STARBUCKS Dining -
In your transactions sheet, use a lookup formula in the Category column:
- Excel:
=IFERROR(INDEX(Rules!B:B,MATCH("*"&"AMAZON"&"*",Rules!A:A,0)),"Uncategorized")— but this only works for exact matches. - Better approach with Excel: Use a helper column with
=SUMPRODUCTor VBA macro to do partial matching. - Google Sheets:
=IFERROR(VLOOKUP("*"&A2&"*",Rules!A:B,2,FALSE),"Uncategorized")does not support wildcards in VLOOKUP. - Practical Google Sheets approach:
=IF(REGEXMATCH(A2,"(?i)amazon"),"Shopping", IF(REGEXMATCH(A2,"(?i)whole foods|trader joe"),"Groceries", IF(REGEXMATCH(A2,"(?i)shell|chevron|exxon"),"Transportation", "Uncategorized")))
- Excel:
Common Category Mapping
| Vendor Pattern | Suggested Category |
|---|---|
| AMAZON, TARGET, WALMART | Shopping |
| WHOLE FOODS, TRADER JOE, KROGER, SAFEWAY | Groceries |
| UBER EATS, DOORDASH, GRUBHUB | Dining |
| NETFLIX, SPOTIFY, HULU, DISNEY+ | Entertainment |
| SHELL, CHEVRON, BP, EXXON | Transportation |
| AT&T, VERIZON, T-MOBILE, COMCAST | Utilities |
| CVS, WALGREENS, PHARMACY | Healthcare |
| VENMO, ZELLE, PAYPAL (person-to-person) | Transfers |
Important Notes
- Pattern matching is case-insensitive and matches against any part of the transaction description.
- Rules are applied in the order they were created. If a transaction matches multiple rules, the first match wins.
- Categorization does not overwrite transactions that already have a category unless you explicitly ask.
- Wilson stores rules in the
categorization_rulestable so they persist across sessions and apply to future imports automatically.
Weekly Installs
3
Repository
openaccountant/skillsGitHub Stars
3
First Seen
7 days ago
Security Audits
Installed on
amp3
cline3
opencode3
cursor3
kimi-cli3
warp3