What's Changed
📂 Microsoft Money import
Bring your old Microsoft Money ledger into MoneyMatter. Upload the .mny file, then go account by account: create a new account, merge into one you already have, or leave it out. The same step maps Money's categories and payees onto yours, and a review screen shows what will land before anything is written.
Money's awkward rows land the way you'd expect. Split transactions come in as their separate lines instead of one lump, transfers come in once rather than as two mirrored copies, and you choose whether to bring voided entries along (they arrive at zero with the original amount kept alongside).
🤖 Categorize transactions on demand
Transactions that arrived through a sync or an import and never got a category used to stay that way. The new Optimizations page lists them and runs the AI over the whole set or over the rows you pick. A History tab keeps your past runs, so you can open one and see which transactions it touched and what it decided about each. Every transaction now records how it got its category, so you can tell your own edits apart from the AI's.
🐛 Bug Fixes
- Archiving or deleting an account failed when a subscription pointed at it. The account stayed put and you saw an error. Subscriptions attached to that account now detach on their own, and accounts with no subscriptions were never affected.
- Accepting a subscription MoneyMatter spotted for you failed when any of the transactions behind the suggestion had been deleted since. The remaining matching transactions now link up as they should.
- Portfolio gains came out wrong for holdings priced in a currency other than your base currency. The summary weighed today's market value against a cost basis stuck at the exchange rate from your purchase date, so a currency that had moved a lot could inflate a gain or show a loss where you were up. Holdings priced in your base currency showed the right number all along.
- Large imports failed partway through with a size error. A Budget Bakers Wallet import hit this as soon as the file itself grew; a statement import got through extraction and then failed at the duplicate check or at the final step when the file held a lot of transactions. Smaller files went through fine.
📝 Code Changes
- fix: Prevent DB constraint errors on archived accounts and txs by @letehaha in #443
- fix: Convert portfolio cost basis at current FX rate in summary by @letehaha in #444
- fix: Raise body-size limit on statement and wallet import endpoints by @letehaha in #445
- feat: Basic MS Money import (accounts and transactions only) by @letehaha in #447
- feat: Let users manually trigger AI categorization by @letehaha in #455
Full Changelog: v0.23.3...v0.24.0