Stay Steady 1.5: Financial Environments, or One Budget App for Your Household, Your Company and Your Club
Most budgeting apps assume you are one person with one wallet. Belgium is full of people for whom that is not true: the zelfstandige with a vennootschap, the freelancer whose business account pays the rent, the treasurer of a sports club who keeps the club’s money in the same banking app as their own. Every one of them has the same problem. The moment a company invoice or a club membership fee lands in a personal budget app, the personal numbers stop meaning anything.
Stay Steady 1.5 draws that line. It is called financial environments, and it is the biggest change to the app since it learned what a transfer is.
Financial environments: household, company, club
An environment is a self-contained set of books. Every bank account belongs to exactly one environment, and no analysis ever mixes them. Your household has its current account, its savings account and its pension pot. Your company has its business account. The club has the club’s account. Switch between them at the top of the Journal and Insights, and every screen — spending, budgets, savings goals, subscriptions, forecast, net worth — shows that environment and nothing else.
That sentence hides the point, so here it is plainly: a company invoice can no longer distort your personal savings rate. A €4,840 payment from a client is revenue for the company, and it is invisible to the household’s budget, its financial health score and its FIRE calculator. In 1.3 we special-cased this by excluding business accounts from the FIRE expense base. Environments are the general answer to the same problem, and they cover things the special case never could.
Environments come in kinds, and the kind does real work:
- Personal or household. The full app: budgets, savings goals, emergency fund, FIRE, what-if.
- Company. Turnover gets its own category, Revenue, so a paid invoice finally has a home instead of being filed under “salary” or “other income”. The personal-finance tools disappear, because a company has no retirement date.
- Non-profit, foundation or club. The emergency fund is called what it is there: an operating reserve.
Budgets, goals, category rules and backups all follow the environment. A category rule you teach the company — “this counterparty is a supplier invoice” — does not leak into the household, and the other way round.
Existing users are not asked to redo anything. A wizard in Settings › Environments sorts the accounts you already have into a household and, if you want one, a company, and it changes nothing until you confirm. Accounts you leave unassigned stay exactly where they were.
If you have been searching for a budget app for freelancers or the self-employed, a way to separate business and personal finances without running two apps, or an app that gives a club treasurer a clean set of books — this is that, and it is still free.
Recurring payments follow the merchant, not the spelling
Recurring-charge detection is the feature people use most and trust least, and 1.5 fixes the two ways it lost that trust.
Banks rename their direct debits. One month the line reads PROXIMUS, the next PROXIMUS SA/NV, and a naive detector sees a subscription that stopped and a new one that started. Stay Steady now recognises a renamed series as the same merchant and carries it on, so a telecom bill you have paid for four years does not show up as “possibly missed” because the bank changed its label.
One payer, two series. If your employer pays you a salary on the 27th and reimburses expenses on the 12th, those are not one erratic income stream — they are two, with different amounts and different rhythms. The detector now splits them by amount band, which is what lets the forecast say, with a straight face, that the salary is still coming.
Every subscription now carries one of four states — overdue, due today, paid this period, upcoming — and you can overrule the detector: tell it that a recurring charge is a subscription when it disagrees, or that it is not.
A forecast that knows the salary is still coming
The month-end forecast used to be a list of bills. It now lists what is still expected to arrive as well, because the salary on the 27th is what makes the month work, and a forecast that forgets it will tell you the month is lost on the 25th. A bill a few days past its date is treated as late rather than missed, which is how bills actually behave.
Full backups that move between iPhone and Android
Export everything — accounts, goals, category rules, net worth, budgets, FIRE settings and your subscription decisions — into one file, and restore it anywhere. Anywhere includes the other platform: the backup format is identical on iOS and Android, pinned by the same test fixtures on both sides, so switching from iPhone to Android or back means one export and one import instead of starting over. The Mac app, which arrived the week after this post, restores the same file.
There is no cloud in this sentence on purpose. The file is yours; put it in iCloud, in a drawer, or on a USB stick.
Net worth with a memory, and a what-if that is a simulator
Net worth now records history. The app writes down where you stand each month instead of trying to reconstruct it later from transactions — which never worked for the assets a bank statement knows nothing about, like the flat or the car.
What-if is a real simulator. Change a monthly contribution and watch what it does to your FIRE date; or set the date and let the app tell you what it would take to hit it. For a net worth tracker and a FIRE calculator to be worth anything they have to answer that question, and until now ours only answered the first half.
The smaller things
- Insights shows where your income comes from, not only where it goes.
- Brush across the Journal chart to zoom into any period.
- Remove a transaction from a goal from the goal itself.
- Spanish. Five languages now — English, Dutch, French, German, Spanish — with real singular and plural forms everywhere, and category names in your language.
- Typed amounts are read the way Belgians write them: 2.500,50 is two and a half thousand, not a rounding error.
- The on-device AI answers about what the screen shows — the same environment, month and account — and sees enough of the earlier months to compare them.
- The offer to apply a category correction to similar transactions is back.
What was quietly broken
As in every release post on this blog, here is what 1.5 fixes that should not have shipped.
A health-score calculation could freeze the app for fifteen seconds. It was doing real work inside a view body, which is the one thing a SwiftUI view must never do, and every production hang we have had so far has been exactly that.
Numbers you could not believe. A retirement target of €7.17 million. A savings rate you had not achieved. Account balances that drifted from the moment you vouched for them. Each had a different cause, and each is fixed.
Model updates never arrived. The on-device categorisation model can be updated without an app release, and that mechanism had been broken since March, on every version ever published. Your copy only ever used the model it was installed with. It now updates, so improvements to the categoriser reach you without waiting for an app release.
A crash while a list was redrawing, and an emergency-fund default that drifted between screens.
Update, 9 September: now on the Mac too
Stay Steady is now also a budgeting app for the Mac, and you do not have to wait for the Mac App Store to get it. The Mac version is available today as a notarized direct download and through Homebrew:
brew tap data-consulting-services/apps
brew trust data-consulting-services/apps
brew install --cask staysteady
Prefer a plain download? The Stay Steady page has the DMG, its size and its SHA-256 checksum. Either way the app is signed with our Developer ID and notarized by Apple, so it opens like any other Mac app, and brew upgrade brings future versions.
It is the same app, not a companion viewer. Financial environments, imports of CSV, CODA, MT940 and OFX statements, on-device categorisation, budgets, goals, the forecast, net worth and FIRE are all there, and everything syncs with your iPhone through your own iCloud — the Mac and the phone share one private CloudKit database, with no server of ours in between. Two things are Mac-only: the Journal shows a month overview next to a separate summary of exactly the transactions you have filtered, and the Ask AI screen can run on a local model through Ollama or LM Studio instead of Apple Intelligence. It needs macOS 26.
One honest note on the direct download: Apple does not allow Sign in with Apple in apps distributed outside the Mac App Store, so in that build the optional account is not available. Your data, your sync and every feature work without it; only category corrections stay on your Mac instead of improving the shared model, and the classifier stays the one that shipped. The Mac App Store version, which is with App Review, has the account like the iPhone does.
So if you have been searching for a budget app for Mac, a free budgeting app for macOS without a subscription, personal finance software for Mac that works offline, an expense tracker for Mac that imports bank statements instead of connecting to your bank, a YNAB or Mint alternative for Mac, a money manager for iPhone and Mac that syncs through iCloud, a huishoudboekje app voor Mac or a budget app voor macOS, une app de budget pour Mac or un logiciel de gestion de budget gratuit pour Mac, a budget app for freelancers on Mac, bookkeeping-light software for a self-employed person, a small company or a club treasurer on a Mac, a privacy-first finance app for Mac, a Belgian budgeting app that reads CODA, CSV, MT940 and OFX exports from KBC, Belfius, ING, BNP Paribas Fortis, Argenta or Crelan, or simply a budgeting app you can install with Homebrew — this is that, and the Mac version costs what the phone versions cost: nothing.
Availability
Stay Steady 1.5 is live on the App Store and Google Play as of this week, and on the Mac since 9 September. If your phone still shows 1.3, give it a little — the stores take a while to reach every device.
The rest has not changed. Still free, still no subscription, still no ads, still no bank connection: every transaction comes from a statement you import — CSV, CODA, MT940 or OFX — or a line you type, and it stays on your device. If you came here looking for a privacy-first budgeting app, a YNAB alternative without the monthly fee, or simply a huishoudboekje app that understands a Belgian bank export, the Stay Steady page has the full feature list, and the privacy policy spells out, per service, what does and does not leave your phone or your Mac.