🎉 Groundwork 1.1 is here — free to download and use. Get the latest version.
What's changed

Changelog

Every release, shipped honest and dated. Download the latest to get all of the below.

20261008-d25 October 8, 2026

Groundwork 1.1.1: local AI built in, and corrected debt, net worth and investment figures

Fixed
  • A blank APR, balance or minimum payment is kept as unknown instead of being treated as zero, and payoff projections say what they assumed
  • A debt's current APR and minimum payment show where they came from, and figures entered from a statement are no longer reverted
  • Each debt's payoff month comes from your payoff plan, and every payoff month says which scenario it belongs to
  • The Budget page's payoff forecast is now the same plan the Debt page shows
  • "Minimums only" means the same thing on every page, and an interest-savings line appears only when the figures show it
  • Net worth counts a mortgage once: the home's value as the asset and the mortgage once as the liability
  • Before You Buy no longer records a financed purchase as a $0 debt at 0%
  • A card added by mistake can now be deleted, so its history stops counting, and the Remove card dialog says what removing does
  • The credit utilization line describes your utilization instead of telling you what to do
  • Investments: a holding with no price is shown as unpriced, instead of being valued at what you paid or counted as all gain, and net worth uses the same valuation
  • Fund expense ratios are kept in the unit you typed them in, so fee costs are calculated correctly
  • Marking a debt paid off no longer writes a $0 net worth into your history
  • The trip planner no longer shows an estimate of how a trip delays your debt-free date. It understated the real effect, sometimes by more than four times
  • The trip planner's flight search no longer stops with an "API key missing" message
  • The 401(k) field on the Net Worth page shows its help icon instead of a line of code
Added
  • Local AI now runs inside Groundwork itself. There is no separate Ollama program to install: the model comes with the installer, is checked before it loads, and never leaves your computer
  • A Mortgage debt type. Its payoff projections use the principal and interest part of the payment, not the whole payment with escrow
  • Flights in the trip planner: a button that opens Google Flights with your airports, dates and travelers filled in, and a box for the fare you choose, which is used in the trip total
  • Setup asks which state you live in and how often you are paid, and utility estimates use the latest month the EIA has published for your state
Improved
  • No part of Groundwork sends your data to a cloud AI service any more. Cloud AI has been removed, and the Terms of Use (version 1.1) say so
  • Groundwork responds faster. It now runs on a web server built for the job, and pages that took about a quarter of a second now take a few milliseconds
  • Exports are saved where you choose, instead of always to your Downloads folder
  • On Windows 10 the installer suggests Windows 11, which still receives security updates, and then installs as normal
20260826-d24 August 26, 2026

Groundwork 1.1 — one-click local AI, a check-in streak, and more accurate numbers

Fixed
  • Card payments and transfers to savings are no longer counted as spending in your reports. Moving your own money between your own accounts was inflating the spending total, so a month you were comfortably under budget could be reported as over
  • The annual summary no longer counts transfers as income or ranks "Transfer" among your real spending categories, both of which were distorting the savings rate
  • Months with no deposits recorded no longer read as a shortfall. Groundwork now tells you which months are missing income and points you at your transactions, instead of subtracting a full month of spending from a blank month and reporting the difference as if you had overspent by that much
  • The "Unbreakable" trophy now tracks real progress. It showed "0 of 6 months" for everyone, permanently, and could never be earned
  • "What's changed since last month" now compares two finished months. It had been measuring a partial month against a full one, so categories you simply hadn't spent in yet appeared as decreases and pushed the real changes off the list
Added
  • Set up Local AI in one click from Settings. Groundwork now installs Ollama for you — not just the model — so private, on-device AI no longer needs a separate download and install first
  • Dashboard check-in streak — how many days running you've opened Groundwork, shown once you're two days in
  • Terms of Use. Groundwork now has a written license and liability disclaimer, shown once for you to accept. The main term is the one that always applied: Groundwork helps you plan, but you are responsible for checking figures against your bank
Improved
  • The Historian now records app opens, budget reviews, and deliberate budget edits — all kept in your own local database, never sent anywhere — so future habit-aware features have real history to learn from instead of guessing
20260725-d21 July 25, 2026

Groundwork is now on macOS and Linux, plus a serious import fix

Fixed
  • Importing the same account once via CSV and again via QFX/OFX no longer creates duplicate transactions. Banks format the same transaction differently between file formats (a generic "Withdrawal" prefix in CSV, and QFX/OFX truncating long transaction descriptions) — the duplicate checker now recognizes these as the same transaction instead of silently doubling your spending totals.
  • A transaction added manually and then immediately edited or linked to a debt in the same session now behaves correctly — previously it could reference the wrong internal record until the page was reloaded.
  • Editing a debt's balance, APR, or payment on the Debt Payoff page now properly records that month's numbers, so the "your minimum payment is dropping" indicator can actually track your progress over time. It previously only recorded this from a secondary editing screen most people never use.
Added
  • Groundwork is now available for macOS (Apple Silicon and Intel) and Linux (x86_64) — no Python required for either, just download and run.
  • The Ledger's transaction rows now have a real button to attach a payment to a debt account, in both the collapsed row and the edit view — previously it only existed as a small icon that was easy to miss.
20260724-v1 July 24, 2026

Groundwork 1.0 — debt reconciliation, adaptive learning

Added
  • Debt reconciliation: manual charge/payment entries directly on a debt card, with semantic Charged/Payment/Interest verbs and a running total
  • Recurring debt payments — save a payment pattern once, confirm/edit/skip a draft each month instead of re-entering it
  • Link a checking-account payment to a debt entry from either the debt ledger or the main Ledger — no double-entry, and unlinking keeps both records intact
  • Debt ledger activity now actually moves the account balance, so the avalanche/snowball payoff projection reflects what you've really paid
  • Distance Traveled report shows payment compliance (on-time vs. under/over plan) and a payoff confidence score, from your real payment history
  • Category suggestions when entering a debt charge, from your own merchant history
  • Budget variance learning — see which categories run volatile vs. stable, with a suggested buffer
  • Trip spending forecast — past trips to a region adjust a new trip's estimate
  • Recurring-transaction detection in the Ledger — spots subscription-shaped patterns (consistent merchant + amount) and offers to add them to your budget
  • AI narrative gate health panel in Settings — see what the validation gate has caught before it ever reached your screen
Improved
  • Historian: a structured, queryable record of what happened vs. what was expected, underneath the debt reconciliation and adaptive-learning features above
20260712-d20 July 12, 2026

Bug fixes and more accurate numbers

Fixed
  • Paying a debt down to exactly $0.00 now saves. Before, a zero balance would snap back to the old amount — so a card you'd paid off wouldn't stay at zero.
  • The dashboard no longer shows a debt-free date when your budget doesn't cover your minimum payments. It now tells you plainly that the budget falls short, instead of showing a date that couldn't happen.
  • Retirement projections are corrected: required minimum distributions (RMD) for ages 70–71, plus a few Social Security timing and Roth/Traditional cases, now match the current IRS and SSA figures.
  • Trying to record a sale of more investment shares than you own is now caught and explained, instead of quietly saving a transaction that doesn't add up.
  • The Trip Planner's dining estimate now reads your spending history correctly.
  • A debt card's balance now updates reliably everywhere it's shown — the balance you enter is the balance you see.
20260706-d19 July 6, 2026

Fixes intermittent 500 on data load

Fixed
  • Random 500 errors on transactions, net worth, and other endpoints — root cause was a SQLite connection pool that shared one connection across all threads. Some requests would collide and fail (bad parameter or other API misuse). Fixed by giving each request its own connection.
20260706-d18 July 6, 2026

Beta re-invitation build

Fixed
  • Record-transaction Account dropdown now populates and buys/sells save correctly (was silently failing on every submit)
  • Net Worth trend chart appears again — it had been invisible after a redesign dropped its container
  • Refresh Prices now says honestly that this beta doesn't include price lookups instead of blaming your internet
  • Sub-category creation from Settings works on desktop (was a silent no-op)
  • Recurring bills now appear in the dashboard's Upcoming card
  • Categorization no longer creates ghost buckets — unknown names land in Other where the budget can find them
Added
  • Downloads folder auto-import — bank exports downloaded from your browser land in Groundwork automatically
  • In-app update banner when a new version is available
  • Recurring-bill offer when you categorize a monthly merchant, alongside the import-rule offer
  • Full-text search inside the built-in help
  • Debt cards can link to an imported account for a bank-basis cross-check on balances
Improved
  • Every silent error path in the app now writes to a log the ⚑ Report button attaches
  • Ledger stays snappy on large histories (row cap with 'show all', debounced search)
  • Database gained performance indexes; imports and re-imports are noticeably faster
  • The deploy pipeline gates every release through 23 automated checks — no more version-string drift or silent regressions