v0.1.219
davidfowl/tallyv0.1.219Jan 1, 2026by github-actions[bot]
AI Summary
A major release removing all built-in classification assumptions. Users now define all rules via `merchants.rules` and `views.rules` files.
Key Highlights
- Removed hardcoded rules for monthly vs. variable spending and category exclusions.
- Introduced `merchants.rules` for extract, clean, match, and tag operations.
- Introduced `views.rules` for defining custom visualization filters.
- New match functions include `normalized()`, `anyof()`, `fuzzy()`, `startswith()`, and `regex()`.
Breaking Changes
- Transactions may need re-categorization as built-in classification rules have been removed.
New Features
- Full customization of classification rules
- New match functions for merchant rules
- Customizable view definitions
- UI improvements (search, sortable columns)
Full Release Notes
### Tally is Now Fully Customizable
This release removes all built-in classification assumptions. Previously, tally had hardcoded rules for what counts as "monthly" vs "variable" spending, which categories to exclude, and how to calculate averages. **That's all gone.**
Now, **you and your LLM define everything**. Tally provides the engine; you write the rules that match how *you* think about your money.
### merchants.rules — Extract, Clean, Match, Tag
One file to control how transactions are processed:
```
[Netflix]
match: normalized("NETFLIX")
category: Subscriptions
subcategory: Streaming
tags: entertainment, recurring
[Amazon Large Purchase]
match: anyof("AMAZON", "AMZN") and amount > 500
category: Shopping
subcategory: Large
tags: big-purchase
[Uber Rides]
match: regex("UBER\\s(?!EATS)")
category: Transport
subcategory: Rideshare
tags: business
```
Match functions: `normalized()` (ignores spaces/punctuation), `anyof()`, `startswith()`, `fuzzy()`, `contains()`, `regex()`
### views.rules — Visualize Your Way
Define views that make sense to *you*:
```
[Monthly Bills]
description: Consistent recurring expenses
filter: months >= 6 and cv < 0.3 # cv = amount consistency (lower = more consistent)
[Business Expenses]
description: Expenses to submit for reimbursement
filter: tags has "business"
[Big Purchases]
description: Major one-time expenses
filter: total > 1000 and months <= 2
```
### ⚠️ Breaking Changes
**Transactions may need re-categorization.** Built-in classification rules have been removed—merchants that were previously auto-categorized may now appear as "Unknown" until you add rules for them.
Old rule formats will warn or fail when unsupported features are used. If you see warnings:
1. **Use your LLM to migrate** — paste the warning and your old config, ask it to update
2. Run `tally discover` to find merchants that need rules
3. `tally reference` shows the complete new syntax
### UI Improvements
- Text search, sortable columns, category color dots
- Credits/refunds shown separately
- Match info popups show which rule matched
---
### Install
**Linux / macOS:**
```bash
curl -fsSL https://tallyai.money/install.sh | bash
```
**Windows PowerShell:**
```powershell
irm https://tallyai.money/install.ps1 | iex
```
Or download the zip for your platform below.
See https://tallyai.money for more info.