DATA CONSULTING SERVICES

Stay Steady 2.2: Stocks and ETFs in Net Worth, Rules With a Condition, and Your Own Currency

by Data Consulting Services
iOSAndroidmacOSFinTechBudgetingPrivacyNet WorthFIREStay Steady

On 30 September we posted Stay Steady 2.0 on r/macapps. The replies were kind, and they were specific. Seven things came up, most of them more than once: the app outside Europe, a currency other than the euro, stocks and ETFs in net worth, a rule that can tell two kinds of purchase at one shop apart, a bank that only hands out PDFs, a Mac that stops at macOS 15, and a connection to the bank.

Ten days later five of those are in the app, one got a different answer from the one asked for, and one stays out. This post covers the two releases that did it: 2.1, earlier this week, and 2.2, out now.

Your own currency

Until 2.1 the euro was written into the app. Someone in the United Kingdom could install Stay Steady and then import nothing, because every row that was not in euros was left out.

Now you choose your currency when you start: dollar, pound, euro or any of 159. Each environment has its own, so a household in euros and a company in dollars sit side by side in one app. Nothing is converted. Where two currencies meet, Stay Steady shows one total per currency, ”€ 4.200 and £ 1.150”, and never adds them up. We would rather show two true figures than one converted one.

When a file holds rows in another currency than the account they are meant for, the import no longer takes them at face value. It asks which account they go to.

Banks outside Belgium

A US statement writes 03/14/2026. Stay Steady 2.0 read dates day-first only, so it took 03/04 for the third of April and could not read 03/14 at all. In 2.1 the file’s own dates vote on the order, and the region of your device settles a tie. The import also reads English column names, a debit/credit column, card statements where a purchase is a positive number, and Revolut’s export.

Categories were the harder part. The built-in rules knew Belgian merchants, and the model had never seen an English statement line. We measured before changing anything. On 205 typical US and UK statement lines the app filed 81 right, left 100 unfiled and got 24 wrong. After adding about 300 US and UK chains to the rules and fixing a handful of general words that fired wrongly (“mobile” had made Parkmobile a phone bill), it files 203 of the 205 right.

Chains are the easy half. A small independent business is in no list, so there the model has to do the work, and we retrained it with English lines. On 109 such lines that neither model had seen, the old one answered 21 and was right on 9. The new one answers 47 and is right on 42. More than half still gets no answer, and the store listing says so: Stay Steady knows Belgian and European merchants best, and elsewhere your corrections do more of the work.

With that in place the app opened in the United States, Canada, Australia, New Zealand and Singapore.

Stocks, ETFs and pension funds, position by position

Net Worth had one line for investments: an amount you typed. From 2.2 an investment or pension item can hold positions, each with a name, a quantity and a price. The item is worth their sum, and Net Worth and the FIRE calculator follow.

It is not a portfolio tracker. There is no purchase price, no gain or loss, no list of buys and sells. It answers one question: what is this portfolio worth today, as part of everything you own?

The price is yours to type, as your broker shows it. If you would rather fetch it, you set up a price source yourself in Settings: Alpha Vantage, EODHD or Twelve Data with a key you request from them (each offers a free one), or a web address of your own. Stay Steady has no price source of its own. We looked for one that needs no key, may be used by an app and covers European listings, and found none.

Nothing is fetched until you press Refresh prices. Then the symbols of your positions go straight from your device to the source you chose: IWDA.AS, not how many you hold or what they are worth. Quantities, values and your net worth stay on the device, and none of it passes through our servers. A price quoted in another currency is converted with the European Central Bank’s daily rate, shown with its date; it is the one place where the app converts anything. And when a price is older than 30 days, Net Worth and FIRE say so instead of passing an old figure off as today’s. The privacy policy lists exactly what a refresh sends, and to whom.

One shop, two kinds of spending

A learned rule was tied to the shop alone: Colruyt is Groceries. That breaks at the pump, because the fuel you buy at the supermarket’s station is not groceries.

After you correct a transaction there is now a third answer next to “apply to all similar”: “Only when…”. The rule that follows looks at the text the bank wrote, at the amount, or at both. Colruyt with DATS in the text is Car, and the rest stays Groceries. Before you save, the form says how many stored transactions the rule will move. A rule with a condition goes before the shop’s ordinary rule, and when two fit, the more specific one wins.

Both kinds of rule are listed under Settings > Category Rules on iPhone and Android and under Rules & Categories on the Mac, where you can change or remove one.

One thing is left out on purpose. If you are signed in, your corrections help the shared model learn. A correction you turn into a rule with a condition is not sent: “Colruyt is Car” is true for some of your purchases only, and it would teach the model something wrong.

A Mac that stops at macOS 15

One reader had an Intel Mac that cannot go past Sequoia, and the app asked for macOS 26. The only code that truly needs macOS 26 is Apple’s on-device model, in six files. Those are now guarded, the app is built for Apple silicon and Intel alike, and the minimum is macOS 15. We walked through its screens on a 2018 Intel MacBook Pro before lowering it.

What a Mac on macOS 15 does not get is asking questions through Apple Intelligence, which needs macOS 26. A local model through Ollama or LM Studio works on both.

A shorter start

Someone new had to pass 24 screens and at least 28 taps before seeing the app. We went through them one by one and asked what the app did with each answer afterwards. It used two: the currency, and the choice about anonymous usage data. So the start is now four screens: a welcome, the currency, your first file, and that choice. On the Mac, which never had a start of its own, a first launch asks once which currency you count in.

The two we did not build

“My bank only gives me a PDF.” Stay Steady still does not read PDF statements. We tried it before 2.0 with an on-device model, and at best one statement in six came out with the right balance. That is not good enough for a budget. What helped the reader who asked was simpler: the bank’s app only offered PDFs, and its website offered a CSV. So an import now starts with a tip, and a help page says where a bank keeps its export.

A connection to the bank. Not in these releases. Stay Steady reads the files you give it and does not connect to your bank. That sentence is in the privacy policy, and we are keeping it true.

What was quietly broken

As in every release post on this blog, here is what these two releases fix that should not have shipped.

The Mac’s 2.1.0 opened wrong for a new user. With no transactions yet, the empty Journal carried the new tip about bank exports, and the window asked for more height than a laptop screen has. The sidebar and the top of the Journal were pushed out of view. Anyone who already had data never saw it, which is why we did not either. 2.1.1 followed the next day.

A learned rule could not be removed on iPhone. The swipe to delete was attached to a list that could never show it. The new rules screen can.

The first-file step of the old start did not work for everyone. On Android its “Import file” button opened nothing, and on iPhone a CSV that needed its columns chosen was dropped without a word. Both now open the app’s own import.

On Android, a reminder switched on later posted nothing. The app asked permission for notifications only during the start. Answer “maybe later” there, switch a reminder on in Settings afterwards, and nothing ever arrived. Settings now asks at the moment you switch one on.

Our store privacy labels said less than the app does. Google Play’s listing read “No data collected”. That was wrong: crash reports, and usage data if you allow it, are kept, not only passed through. The form now lists what the privacy policy describes, the App Store’s labels were corrected the same way, and the policy says what a crash report carries.

Availability

Stay Steady 2.2 is live on the App Store, the Mac App Store and Google Play. iPhone and iPad need iOS 26.1, the Mac needs macOS 15, and Android phones need Android 11. With 2.2, Google Play adds Canada, Australia and Singapore to the countries where the App Store already offered the app.

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, OFX or QFX) or a line you type, and it stays on your device. If you came here looking for a free budget app in your own currency, a net worth tracker for stocks and ETFs that does not want your portfolio, a YNAB alternative without the monthly fee, or a budgeting app that still runs on an Intel Mac, the Stay Steady page has the full feature list.

Weighing it against a subscription budget app? See how it compares: Stay Steady vs YNAB, Stay Steady vs Monarch Money and Stay Steady vs Copilot Money.