github letehaha/moneymatter v0.32.2
v0.32.2 – AI review for transfer matching & a shorter transaction form

3 hours ago

What's Changed

🔁 AI review for transfer matching

Transfer matching in MoneyMatter scores pairs by amount and date alone, so a restaurant bill can match an unrelated salary of a similar amount. Switch on AI review next to Scan, and AI also reads each pair's payees, notes, categories and accounts. It hides pairs that don't look like transfers and marks the rest Likely or Possible, with a short reason. A pair that AI review hides isn't rejected: switch AI review off and scan again to see every match. If a regular scan turns up many weak matches, the page offers Review with AI.

AI review comes with Plus. With your own AI model, it works on any plan. Each scan counts toward your monthly AI allowance, and you can pick its model in Settings > AI under Transfer matching.

Transfer matching also hides pairs that score below 50%, and the Skip button is now called Reject.

🔗 Find transfers after an import

Imports don't pair transfers between your accounts. When a CSV, statement or OFX import finishes, a Find transfers link opens Transfer matching for the dates you just imported.

✍️ A shorter transaction form

The transaction form hides fields you rarely use until you need them. Tags, attachments, link, reference, location and original amount each get a chip: click it to add the field. A field that already holds a value always shows. The optional fields setting in Settings > General picks which of link, reference, location and original amount get a chip.

On mobile, the "More options" sheet is gone. Every field sits in the form itself, two to a row.

✨ Improvements

  • Trackers: Planned > Trackers uses larger text and icons, so the list reads more easily.

🔌 MCP

  • The tracker tools now use "tracker" in their names instead of "budget". For example, get_budgets is now get_trackers, and create_budget_line is now create_tracker_line. If you call these tools by name in your own prompts or scripts, switch to the new names.

🐛 Bug Fixes

Thanks to @nnemirovsky for every fix in this release.

  • On subscriptions with a due date, the next payment date moved whenever you paid early or late, because MoneyMatter counted from your last payment. It follows the schedule now. Paused and ended subscriptions no longer show an upcoming payment. Subscriptions without a due date still count from your last payment.
  • When a subscription rule linked a payment automatically, that period stayed unpaid, so the subscription showed it as upcoming or overdue. Confirming a planned transaction linked to a subscription left the period unpaid in the same way. Both now mark the period paid when the payment lands within half a billing cycle of the due date, for example 15 days for a monthly subscription.
  • Subscription rules checked a transaction only when you created it. If an import brought in "APPLE.COM/BILL" and you then edited the note to name the service, the rule never matched. Rules now check a transaction again after you edit its note, amount, account, type, payee or time. A transaction you unlinked from a subscription stays unlinked, and a category you picked by hand stays.
  • Nested account groups, such as Banks › Indonesia, showed up wrong. The sidebar, the Accounts page and Settings > Account groups listed subgroups as top-level rows, and a subgroup name used under two parents appeared twice. A parent whose accounts all sit in subgroups was hidden or showed "No accounts / $0.00", and the account picker in transaction filters left it out. The link-to-group dialog, the account page and the automations group picker now show the full path, such as "Banks / Indonesia". Groups without subgroups were never affected.

📝 Code Changes

  • fix(subscriptions): follow the schedule for due dates and settle periods on payment by @nnemirovsky in #753
  • fix(subscriptions): match an edited transaction to subscription rules by @nnemirovsky in #754
  • fix(account-groups): render nested account groups as a tree everywhere by @nnemirovsky in #747
  • test(common): move the expiring upload cache clock instead of sleeping by @nnemirovsky in #772
  • chore: Rename legacy Budgets tables and models to Trackers by @letehaha in #769
  • feat: Reveal optional form fields via quick-add chips by @letehaha in #774

Full Changelog: v0.32.1...v0.32.2

Don't miss a new moneymatter release

NewReleases is sending notifications on new releases.