Stay Steady 2.3: Fetch Your Transactions Through Lunch Flow or SimpleFIN, and See Where Your Balance Is Heading
In the post about 2.2 we listed the one request from r/macapps we were not building: a connection to the bank. “Stay Steady reads the files you give it and does not connect to your bank,” we wrote, “and we are keeping it true.”
It is still true. Stay Steady 2.3 does not connect to your bank, and it never asks for your bank login. What changed is that it can now fetch your transactions from a service you already pay for yourself, one that reads your bank with your consent and hands the transactions on to apps you choose. The reader who asked named two: Lunch Flow and SimpleFIN. Both speak the same open protocol, so one connection serves both.
Fetch your transactions through a service you choose
If you have an account at Lunch Flow (Europe) or SimpleFIN Bridge (the United States and Canada), the service gives you a token. Paste it in Stay Steady under Settings > Connection to a service (on the Mac: Data in the sidebar), tap Connect, and from then on Fetch now brings in what is new.
How it is built, because this is the part people rightly ask about:
- You sign in to your bank at the service, never in Stay Steady. The app sees no bank credentials, ever.
- The token is spent once and exchanged for an access address. On iPhone, iPad and Mac that address sits in the system keychain, and with iCloud Keychain your other Apple devices are connected without a new token. On Android it is encrypted with the Android Keystore, stays on that phone and is left out of its backup.
- Nothing is fetched behind your back. No background refresh: only when you tap Fetch now.
- The request goes from your device straight to the service. It does not pass through our servers, it is kept out of crash reports and analytics, and we receive nothing. The privacy policy has the details, and our guide walks through the setup in five languages.
- The service is another company’s. You have your own agreement with it and it asks its own price. Stay Steady has no service of its own and earns nothing from yours.
A fetch and an import meet in the same journal, so we spent most of the work on what happens when they overlap. A transaction that looks like one you already have, the same day and amount under a different description, is not written. It waits, with a line that says which row it resembles, until you choose: same payment, or another one. Your answer travels to your other Apple devices, so nothing is written twice. And when a bank has sent the service nothing new for more than four days, the app says so by name, because after ninety days a bank usually wants you to confirm the access again, at the service.
Importing your bank’s file works exactly as before. The connection is optional, and the app is just as complete without it.
The import preview tells you where each row goes
The preview of an import used to list dates, descriptions and amounts. Now every row also says where it will be filed and why: Groceries · Supermarket · Matches one of your learned rules, or Other · Not recognised: a best guess. It is the same chain that files the row when you import, so what the preview shows is what you get, and change the account the file goes to and the lines follow.
Disagree with one? Tap the row, pick another category, and import. The row is stored with your choice, and the app learns it like any other correction.
A balance forecast, and a warning before you go below zero
The month’s forecast told you what you would spend by the end of the month. 2.3 adds the question that matters more on the 20th: where is my balance going?
The balance forecast walks forward day by day from today’s balance, over a month, three months or a year. It takes your recurring payments and income, your bills, and what you spend on an average day on everything else, and it shows the lowest point and where you end up. For a company the average day also counts the income that does not recur, because invoices never form a neat monthly series.
On iPhone and Android you can ask for a low balance warning: a notification three days before an account is expected to drop below zero (Settings > Notifications). It names the account and the day, never the balance, and it only works for accounts whose balance you have set. Android accounts can now take an exact balance, as Mac accounts already could.
The “safe to spend” figure on the widgets now also subtracts the bills still to come this month.
Smaller things
- The CSV export can include your own names and comments, if you ask for them, and a custom category appears by its name. On the Mac you now pick a period and a format, and export with one button.
- On iPhone you can delete a transaction from the menu you get by touching and holding it in the Journal.
- Changes from your other devices arrive while the app is open. iCloud now tells the app when another device changed something, usually within a minute or two. Before, the Mac waited until you brought its window forward.
- On the Mac the window comes up in about half the time with a large history: our test journal of 18,500 transactions went from 0.88 to 0.43 seconds.
What was quietly broken
As in every release post, here is what 2.3 fixes that should not have shipped.
The import preview promised something the import did not do. Since February, on iPhone and Mac, the preview counted possible duplicates, rows of the same day and amount under another description, and its button said they would be skipped. The import then wrote them anyway. Android did the opposite: it skipped them without a word, a real second payment of the same amount on the same day among them. Now the import does what the preview says, on all three, and a switch, Import potential duplicates too, is there for the day you want them.
Rows that could not be read disappeared. A CSV row whose date the app could not read was skipped on iPhone and Mac without telling you. The import now says how many rows it could not read, as Android already did.
The app could hang after a change through iCloud. When iCloud brought in changes, the app read every transaction again on the main thread: three to five seconds of a frozen screen on an iPhone with 10,800 of them. The rows are now read in the background while the screen keeps what it had.
Financial Health ignored the month you picked. Every other card in Insights followed the month picker; the score kept showing today’s month.
A goal’s share of your income was hidden. On iPhone the card that shows it sat behind Show more insights, so someone who gave a goal a share of their income saw nothing happen. It is now with the cards at the top.
Android’s subcategories had no names. All 168 of them. Insights showed their storage keys instead. They are now named in English, Dutch, French and German.
Availability
Stay Steady 2.3 is live on the App Store, the Mac App Store and Google Play: on Apple’s stores since 17 October, on Google Play since 18 October. iPhone and iPad need iOS 26.1, the Mac needs macOS 15, and Android phones need Android 11.
Still free, still no subscription, still no ads, and Stay Steady still never connects to your bank itself. If you came here looking for a free budgeting app that works with Lunch Flow or SimpleFIN, a YNAB alternative without the monthly fee, or a budget app that keeps your transactions on your own device, 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.