July 4th, 2026

🎯 v1.8.5: Goals That Fit How You Save, Review Without the Detour

This one is for the things you've been asking for the longest. Reviewing imported transactions no longer lives on a separate page, it happens right inside the register. And goals have been rebuilt from the ground up to be far more flexible: every goal now pairs a schedule with a behavior, so annual bills, spend-as-you-go trips, and top-up buffers each work the way you'd expect. If you set up goals a while ago, it's worth a fresh look, there may be a better fit for what you want now.

🧾 Transactions

  • New: review happens in the register. The separate pending page is gone. Unapproved imports now sit in an In-Review section at the top of your transactions, split into Pending and Posted, with Approve, Reject, and Unlink available everywhere: row menus, bulk selection, mobile cards, and the action sheet. Editing an in-review row offers Save & Approve in one step, and the "N transactions need review" banner now filters the register down to just those rows, with a clear way back.

  • See what the bank actually sent. When the import pipeline renames a payee, the original bank text stays one hover (or one tap) away, and unmatched imports show the raw name instead of a blank payee.

  • Teach payee names from anywhere. Renaming a payee on an imported transaction now offers a "Remember" action, on every surface, so next time the bank's text maps straight to your name.

  • Your filters apply to the In-Review section too, so a filtered register stays filtered top to bottom.

  • New: an Untagged option in the tag filter, for finding everything you haven't tagged yet.

β†’ Transactions

🎯 Goals

  • Rebuilt: every goal is now a schedule plus a behavior. Pick how often the goal asks (weekly, biweekly, monthly, yearly, by a date, or open-ended), then pick how it counts: Budget another counts what you budget so you can spend along the way, Fill up to tops the category back up each period and lets carryovers count, and Reach a balance tracks the balance itself toward a date.

  • Annual bills finally behave. A repeating by-date goal now resets every cycle on schedule: whatever is left carries into the next cycle, and once the bill is paid, the next cycle starts asking again. No more "achieved" hangover on money that was always earmarked.

  • Save for a trip and spend as you go. A by-date goal with Budget another keeps asking the same monthly slice no matter what you spend, so booking flights early doesn't reopen the goal.

  • Weekly and biweekly goals can now Fill up to, with leftover money covering the earliest weeks first, and monthly funding caps work on them too.

  • A simpler goal dialog. Frequencies are a clean card grid, each behavior explains itself in a sentence, and a live summary spells out exactly what you're creating before you save.

  • Honest statuses and a little celebration. Funded means this period's budgeting is done, Achieved means the money is actually there, and a reached goal now celebrates on the card without hiding what the goal is.

  • Check your existing goals. Everything migrates automatically, but with the new behaviors available, some of your goals may now have a shape that matches your intent better than what existed when you created them.

β†’ Goals (fully rewritten, with worked examples and an FAQ)

πŸ“Š Budget

  • New: one Underbudgeted action that fixes everything short. It covers overspending, funds goal asks, and tops up categories with an upcoming bill, in one Ready-to-Budget-constrained pass, with a preview grouped by reason. It's honest when money runs out: partially funded and skipped rows are shown, not hidden. Also available from the command palette.

  • Upcoming bills count every occurrence. A bill that fires twice in a month now counts twice in the yellow "short for upcoming" math, and scheduled transfers to tracking accounts or loans count too when they carry a category.

  • The previous month shows its real Ready to Budget. Last month's number no longer hides what folded forward, so budgeting in the past finally adds up.

  • "Unhide all" on partially hidden groups, one click to bring a group's hidden categories back.

β†’ Budgets & categories

🏦 Loans

  • New: reconcile a loan. Enter the real balance from your lender and Zerosum records the adjustment as a proper loan entry, undoable like everything else.

πŸ› οΈ Polish & Fixes

  • A faster app across the board. The main budget payload is a fraction of its former size, credit-card-heavy budgets compute smoother, and merging many payees is dramatically faster.

  • File imports got smarter. Re-importing the same QIF/CSV no longer duplicates rows, deleted rows stay deleted on re-import, and imported transactions keep the bank's cleared status.

  • TWD and HUF display without decimals, matching how those currencies are used.

  • CSV exports of split children carry the parent's cleared status.

  • Reconciling closes its dialog on success, accepts a genuine $0.00 balance, and the mobile reconcile sheet's actions are easier to reach.


Thank you for being here. ❀️