Release Notes0.0.106Oct 22, 2019

This is a small update for desktop:


  • Implement a "cover overspending" option in the menu when clicking on a category balance in the budget. This is essentially the same thing as transferring money, but in reverse. It allows you to take money from another category to cover overspending.
  • Relax transaction matching. Previously, it would only match transactions if the dates were relatively similar, the amounts were exactly the same, and if the payees were relative similar. Now it will match regardless of the payee (only check date and amount), but it will still prefer the payees to be similar. That means if there are multiple transactions with the same amount, it will at least to attempt to match the correct one.
  • Revamp settings page
  • Provide the option to customize where files are stored (see "global" tab in settings)
  • Add cmd + , shortcut to open settings in macOS
  • Implement a lot of internal UI changes to prepare for the automatic bank syncing feature.


  • Fix problem where buttons are in the "hover" state even after you click on them
  • Fix number formatting. The 0.0.106 accidentally broke alternate number formats.
0.0.105Oct 11, 2019

This is a small followup release to 0.0.104 which caused a couple regressions. That release included a lot of changes so this release is focused stability.

Regression fixes:

  • Certain categories and categories groups that have budget data over a year old caused problems when deleting them and transferring data to another category. Old data was in an unexpected format, and the new budget system handles it correctly now.
  • Fix the overspending screen in the tutorial. Previously it would crash the UI.


  • Fix a bug where sometimes the UI would crash when creating or deleting an account. This is a rare edge case but it should (hopefully) never happen now.
  • Make reopening an account undo-able
  • Show a loader when force deleting an account instead of closing the modal immediately. If the account has a lot of data, force closing it may take some time you shouldn't be able to interact with the UI while it's deleting it, or there will be errors. Once force closing is finished, the modal will automatically close.
0.0.104Oct 10, 2019

First of all, I want to say sorry. There's no excuse to wait months between releases, and I'm really sorry about that. This is a big release and everything ended up being wrapped into it, but I took it slowly because making sure your data is safely upgraded and works smoothly is of utmost importance to me.

A completely new budgeting backend

This release has a totally new budgeting backend. I'll blog about this soon, but basically the entire budget used to be implemented internally as a spreadsheet, even with it's own custom language! The original idea was to expose this to the user and allow customization of the budget formulas, but I've learned a lot since then. I still have ideas related to this, but it was silly how complex the previous implementation made everything.

It made everything in the budget slow. If you had a couple years worth of data, adding a category would lag between the time you pressed enter and it actually showed up in the budget. Same with deleting a category, or anything else.

This has been completely fixed. Now, all of the interactions with the budget are instant. The backend is insanely faster, and the frontend has been meticulously optimized to make it feel even faster.

The new budgeting backend should be transparent to you - the budget should work exactly the same way as it did before, and your data should be exactly the same. Let me know if it's not.

This release also has a few other huge features, such as syncing between any devices (desktop-to-desktop), and API, and more!

Brand new site

Along with all these big changes, a new website has been release! This is a total redesign and reflect Actual's values a lot more accurately.

The main reason this happened is I need to write documentation for the API. One thing led to another and now there is a full documentation site about how to use Actual. This will be expanded more over time.


Big improvements in the budget UI

While the budgeting backend allows the budget to update much faster, on the frontend I optimized it even more. The whole UI is now optimistically updated, which means when you make a change it doesn't even wait for the server. It just instantly updates the UI locally.

Additionally, the hover state for budget rows was removed. This allows more specific interactions with the values themselves. When you hover over a budget amount, a faded textbox will appear making it clear that you can edit it. The values in the balance column are now more clearly clickable. This tweaks will always feel instant regardless of the number of categories. (Previously, the row hover state would lag with a huge amount of categories)

Revamp how you interact with categories

You can now edit categories and category groups by hovering and clicking the the drop down menu to reveal several actions. This will make it easier to add more actions in the future, and fixes the confusing interaction of renaming category groups.

A big thank you to Henri Maurer who has helped contribute on this release and implemented this feature!


Another major feature: Actual now has an API! Read the docs on the website.

This gives you full access to your data. The main use case is to write custom importers (if your bank gives you transactions in a specific format), but you can write anything on top of it. This is considered experimental and will stabilize over time.

Improved syncing setup (including desktop-to-desktop)

Previously, only the mobile app could discover a desktop device by reading a QR code with the camera. That flow is simplified now, and Actual uses something called multicast DNS to discover devices. The desktop app puts itself into "broadcasting" mode and another desktop or mobile app will automatically discover it when setting up a new synced file.

See Setting up syncing.

Option to disable auto-update

If you want to stay with a certain version of the app for any reason, you can now disable auto-updating in the settings.

Support for Catalina

The new macOS version Catalina requires apps to be signed in another way, which is funny because the app is already properly code signed. I guess Apple really wants to control everything. Now the app is "notarized" by Apple which means they won't freak out when you try to run it.


  • Fix highlighting new transactions when importing
  • Fix various styling issues with reports
  • Tooltips/dropdowns are now dismissed with mouse down instead of mouse up (thanks Henri!)
  • Remove shortcuts for moving left/right in the budget, tab/shift-tab now move up and down (thanks Henri!)
  • Fix off-by-one date errors with OFX/QFX files if importing from certain timezones
  • Cash flow graph doesn't include off-budget accounts in the balance line
  • Improved YNAB4 import support. The import should be very robust now and import all of your data correctly.


The mobile app benefits from the new budgeting backend as well. The performance problems were even worse on mobile devices, but now loading a large budget from another device is far faster, as well as working with the budget.

Ability to reorder categories

To celebrate the new budgeting backend, the mobile app can now reorder categories. Move them around and even move them between groups. Just go into edit mode and drag them around. It sounds silly, but previously it was just too slow on mobile devices to do anything with categories. Now that it's all fixed, you'll be able to do everything on mobile. (deleting a category on mobile is coming soon)

0.0.102Jul 18, 2019


  • Fix "keep negative spending in category" for rolling over negative spending. This was a regression with the undo feature.
  • Fix regression where the month selector could get stuck in the "small" mode where months were only displayed with the first character of each month (that wasn't on purpose!)
  • Many critical bug fixes with payees and default categories. Previously, deleting a category that a payee used as a default category would cause all sorts of problems. No more wreaking havoc on your data.
  • Pressing escape when editing a transaction's category could accidentally split the transaction. This has been fixed.
  • Cash flow report no longer shows on-budget transfers as income or expenses
0.0.101Jul 15, 2019


  • Only show open accounts in the accounts list. You don't have to stare at that closed account forever.
  • Fix bugs in syncing: it's now as robust as ever! If you've seen sync errors, it should be much more stable now.
  • Bring app code up to parity with desktop, bringing in several backend performance improvements


  • Undo: Fearlessly edit your data knowing that a undo is a keystroke away (cmd+z on mac, ctrl+z on windows/linux)! Undo will revert changes to anything, including the budget, transactions, payees, accounts, etc. Redo changes with shift+cmd+z (shift+ctrl+z on windows/linux).
  • Improve budget page performance: The budget page now persists in memory so navigating back to it will always show your budget instantly. The backend has been tuned for better performance.
  • Searching for transactions should feel faster: Searching performance has been improved.
  • Fix "Restart App" button when app crashes: Now the app will actually restart.
  • Fix importing transactions with empty payees: If an imported file contains transactions with an empty payee description, previously it might match it with a the wrong payee. Now it just leaves it empty.
  • Improve payees merging workflow: merging payees is much faster and will consistently scroll you to the right final payee. Other small bugs have been fixed in the Manage Payees screen.
  • Fix bugs in syncing: it's now as robust as ever! If you've seen sync errors, it should be much more stable now.
  • Fix bugs with transfers: When moving a transfer transaction to a different account, the transfer in the other account will appropriately update. Force closing an account will also "unlink" any transfer transactions.
  • Implement anonymous usage tracking: The app will send basic usage statistics anonymously to Actual's servers. We use Fathom which focuses on privacy and host the data ourselves. The only thing tracked is number of users and pages viewed. You can opt-out in settings:
Screen Shot 2019-07-12 at 2 26 34 PM
0.0.100Jun 27, 2019


  • Also contains the fix for off-budget transactions (see below)


  • The recently released payee feature sometimes caused off-budget transactions to effect the budget. This has been fixed, so you can confidently ignore the budget again.
  • Fixed importing certain OFX files that were missing fields.
  • Add ability reopen accounts, in case you accidentally close that all-too important account like I did.

Work is heavily underway for undo and an API, stay tuned!

0.0.99Jun 27, 2019


  • Fix the linux build! You should no longer see a "glibc version not found" error.
  • Update the internal mechanism for communicating between processes. This is big internal change and the only noticable effect should be improved performance. If you notice anything wrong, please contact us or join our Slack.
  • Make account field editable and enable transactions to be added on the "All Accounts" page
  • Make the date input always respect the current date format
  • Don't show a negative sign in the budget totals row if the amount is 0
  • Fix bug where recently added transactions could not be split
  • Fix about window
  • Title-case payees with non-latin character betters. Now, KÖLN will be title-cased to Köln instead of KöLn.
  • Properly create a transfer when importing transactions and automatically matching on transfer payees via rules
  • Always show the "create new payee" menu item at the top of the list of the payee autocomplete. Sometimes it wouldn't be shown.
  • Improved notification style
  • Show closed accounts in sidebar instead of on "All Accounts" page
  • Make the account header section always have consistent height regardless of contents
  • Fix a regression from 0.0.98 where closing an account didn't properly create a transfer transaction
  • Fix a bug where sometimes creating a new local account wouldn't show the existing balance
0.0.98May 6, 2019

Important note: the new payees feature requires your data format to be updated. You can only do this on desktop, and on first run you will be prompted to perform the update. After updating, syncing the mobile app will update your mobile budget (it may take a while to sync). Make sure you've downloaded the latest mobile app. Your transaction data will look wrong until you've completed this update.

  • An experimental linux build is available
  • Payees are now first-class and can be autocompleted, given default categories, and will be automatically matched via rules. You can manage them through a powerful payee editor where you can merge payees and change their rules. All existing payees will automatically be upgraded to be compatible, and payees have been integrated on both desktop & mobile apps.
  • Title case all payees when importing
  • Redesigned keyboard interactions with transactions. Enter/shift+enter go up and down, removed arrow key movement, and greatly improved UX around interacting with dropdowns
  • Make adding new transactions more intuitive as well: pressing enter in either the payment or deposit field will add it
  • Always properly add new category groups at the end of list, and fix styling issues with that workflow
  • Add a confirmation step when deleting a group, because it was just too easy (undo will come later!)
  • Allow date formats to be entered as just MM/DD, so 5/3 would be interpreted as May 3, 2019
  • Fix a bug where sometimes similar categories couldn't be selected ("Work" and "Work Expenses")
  • When loading a backup, disable syncing so that it doesn't sync with the latest data. You will need to re-setup syncing across all devices if loading a backup.
  • Show the available backups if a budget fails to load. This gives the user a chance to downgrade to a previous version of Actual if an update goes wrong and messes up data.
  • Add the undocumented ability to search specific transaction fields with the format field:value, so amount:120 would show all transactions with amounts of 120.00, and payee:target would only search the payee, etc
  • Fixed a bug where sometimes transaction search results didn't reflect the latest text entered by the user
  • Fix a bug where navigating away from the cash flow or net worth graph would crash the app
  • On macOS, change the behavior of closing the window so that it doesn't quit the app. Also change the "Close Budget" menu item to "Open Budget", and change the keybinding from cmd+W to cmd+O to show the budget list. This frees up cmd+W for the native behavior of closing the window.
  • Fixed a bug where a "Sync Error" would appear even though no error occurred Improved stability of filtering and splitting transactions
  • Many other small bugs fixed
0.0.97Feb 15, 2019


  • The "Show Running Balances" option for accounts now persists for each account
  • Fix a few small bugs in the subscription process, like calculating the number of days remaining in the trial (isn't daily savings the worst?)
  • Fixed a bug where a split transaction could be modified during a file import causing that account to be permanently broken. Effected accounts should display now. You may see an "orphaned transaction" with a red background that you need to delete. The underlying cause for this bug has been fixed.
  • Added some better internal logging to debug some obscure errors being reported. No personal data is transmitted but these errors will now better point to the source of the problem when they are logged.
0.0.96Feb 7, 2019


  • Fix file type detection when importing files (make it case-insensitive and allow arbitrary characters in the filename)
  • Support the macOS mode where scrollbars are always shown
  • Fix bugs when creating an account when the Starting Balance category has been deleted
  • Improve the workflow for deleting a category and transfering to another category, and make sure all of the values in the budget are updated after transferring
  • The category typeahead now also matching group names
  • Fix a few bugs with YNAB4 importing
  • The payee typeahead no longer selects the first item by default, so you can enter a payee even if it matches an account in the dropdown
  • Fix transaction count when adding or deleting transactions
  • Avoid losing focus on an input when the app goes into the background