Sam Wight

Actual Budget for YNAB users

This is an explanation of Actual Budget for YNAB users. With YNAB's recent price increases, I decided now would be a good time to see how the alternatives are fairing. I was really surprised with how competitive Actual was! It has some features that I think would be great for YNAB to adopt, and a few shortcomings (though nothing major).

This was exciting to me for a few reasons. First, Actual is open source. I'll never have to pay for it, and I can help out if I want to. Second, Actual is fast, quite faster than YNAB in my experience. It loads quickly on mobile and much faster on desktop. And third, Actual has a lot of features that YNAB doesn't have. While YNAB users love to talk about the features that are missing from YNAB alternatives, I was delighted to find a relatively feature-complete YNAB alternative that actually has some things I wish YNAB had.

This post is a guide to using Actual for heavy YNAB users. I'll show you how to set it up, import your budget, and what all of the equivalent things in Actual are (compared to YNAB). Without further ado, let's get started!

Setting up Actual

There's a few ways to set up Actual to use it.

If you are nontechnical (read: if you don't know what the words Docker or Node.js mean), use PikaPods. This is a service that you pay a flat monthly fee to host Actual for you (as low as a dollar a month!). Setting up should be pretty easy, and you get $5 for free!

If you're technical, you have a few choices. You can install Actual locally on your laptop with Node.js. Or if you have a NAS or a server, you can install it with Docker. Note that wherever you install it, you will need SSL in front of it. You cannot serve Actual just off of an http endpoint, it has to be https. Otherwise certain browser features that Actual uses will not be enabled. I use Cloudflare's zero trust tunnel and it works fantastically for me.

Once you get Actual running, set it up with a password (pick something you'll remember). Then you'll want to import your YNAB budget.

Importing a budget from YNAB

To import your YNAB budget, use this exporter for YNAB.

First, click "Authorize":

It'll then ask you to log in with YNAB. After you log in with YNAB, you'll get a screen with a list of your budgets. Click the link on the budget you want to download:

Then click Download:

After you do that, press Import in Actual and import the file you just downloaded. Click nYNAB and select the file:

Now your budget should be loaded into Actual!

Note that you might have to follow these steps to clean up the Ready to Assign for previous months (Actual does this a little differently, as covered later).

Reading the budget

Budgeting in Actual is zero-based, just like YNAB. You only budget with the money you have. However, the budget is laid out slightly differently.

First, the similarities. Actual has a familiar tri-column layout for its budget. The left column is what you've budgeted, the middle column is what you've spent, and the right column is the current balance. The budget has months, and you can see the ready to assign up at the top:

However, there's an immediate difference: actual has income categories.

Income categories

When you receive income in Actual, you can optionally assign it to any of your income categories. Then Actual will show you the income for the month by category at the bottom of your screen.

Here's an example: if I create an 'Interest from Bank' income category and add a transaction for it, Actual updates the category with the amount I received.

This doesn't affect anything else in the budget. All income categories get dumped into the same Ready to Assign for the month. This can be helpful for tracking stuff for taxes, seeing how much you've gotten from friends on Venmo, or other things like that.

To Budget

To Budget works just like Ready to Assign does in YNAB. You can click the little dropdown at the upper left of the month to see how it calculates it.

Available funds is all of the income you've received, budgeted is what you've set aside so far, and overspent is all of the money you've overspent in the previous month. However, Actual has one additional feature: you can set aside money from To Budget for future months. This lets you budget this month's income for next month, putting it into next month's To Assign.

In YNAB, you might've done this by creating a rollover category. For example, you might create a "Next Month's Expenses" category and assigned all the money you need for next month to it. This removes the money from Ready to Assign and gets YNAB to stop bugging you about it.

In Actual, you don't need a separate category to do this. Instead, click the To Budget number. In the dropdown that shows up, click "Hold for Next Month" and then enter how much you want to save for next month.

Once you click save, you'll see the to budget for this month go to zero. The To Budget for next month should stay the same.

Oh wait, look! A new feature!

Multi-month view

In Actual, you can view the budget for multiple months at the same time. You can set the number you want to view at the upper left hand corner of the screen:

Then when you click on the months you want to view, you'll see a little preview of which months Actual will show you.

Creating categories and groups

Categories and groups work just like they do in YNAB, with an extra feature or two, click the "Create group" button at the bottom of the screen.

To create a new category, click the down arrow next to the name of the group you want to make it under. Then create it just like you would in YNAB.

In Actual you can both hide and delete categories. YNAB has gone through different variations of this over the years. Currently it just lets you delete a category. Actual lets you do the same thing, requiring you to move transactions to a different category if there are any.

When you hide a category, it gets hidden from the budget. To view it again, click the three dots next to "Categories", then click "Toggle hidden categories". The category will show up in gray.


Accounts function the same in Actual as in YNAB, with a few small differences.

First, there are no account types. Just create an account for each of your accounts.

Untracked vs tracked accounts are created by setting the "Off budget" checkbox. If checked, it creates an off budget account (which is the same as an untracked account). If unchecked, it creates an on budget account (the same as a tracked account).

Off budget accounts won't have their account totals included in your budget (hence the name). They will be included in your net worth calculations, just like in YNAB.

Working balance

Coming from YNAB, you'll be used to the Cleared Balance, Uncleared Balance, and Working Balance (which is the Cleared Balance + Uncleared Balance). Actual shows the Working Balance by default.

By default, Actual doesn't show the Cleared and Uncleared Balance. When you're looking at an account, click the account total to show the Cleared and Uncleared Balance:

Actual will remember which accounts you've toggled this on or off for. So if you have some accounts where you want to see the cleared and uncleared totals (credit cards, bank accounts), you can enable this for those, and for the rest you can keep the simple working balance (retirement, investment accounts, etc).

Credit cards

Like we covered earlier, there are no account types in Actual. This means that credit cards work differently than in YNAB.

In Actual, there's no categories for each credit card like YNAB has. Instead, you just spend money from the credit card like you would any other account. This is a bit weird, but it makes sense with an example.

Say I have $600 in my checking, and I've set aside $100 for my food budget.

If I buy lunch at Taco Bell on my credit card, I would go into the credit card and input the transaction just like any other transaction:

When I click Add, my new account total on the credit card becomes $-20.00 (just like in YNAB). You'll also notice that the "For budget" total has gone down by $20.

Now when I go back to my budget, I see that my balance in the Food budget has gone down by $20 too.

Instead of creating a new category and moving the money to it, Actual just subtracts the amount you spent from the category itself. Then your payment for the month is whatever your account balance is. In this case, mine would be $20.

Let's fast forward to when my pretend credit card payment happens. I create a $20 transfer from my Checking into my Credit Card. This works just like it does in YNAB:

For bonus points, if you click on the little arrow next to Checking, Actual will take you to the corresponding transaction in your Checking account.

When I add this transaction, my credit card balance goes to zero. For budget in the sidebar doesn't change at all.

And none of my account balances change either because this is just a transfer:

So to recap, instead of transferring money to a special credit card category, Actual will just subtract it from your budget. This lowers the balance of the category. Because the balance of the category is lower (meaning you have less available to spend) but your checking account balance hasn't changed, this means you'll have that money saved for that credit card payment.

Then at the end of the month (or whenever your credit card payment is due), you just pay the full account balance. Because your budget lines up and you haven't overspent, you can be sure the money is all there.

In a lot of ways this is simpler than YNAB's approach. If you're on autopay (like I am), you don't pay attention to these numbers a lot and the credit card categories can often get in the way. My credit card categories always end up overbudgeted for some reason and have a bunch of extra cash in them (either because of returns, cancelled transactions, or other reasons). Actual completely avoids this by getting rid of them and just keeping it simple: when you spend money, regardless of where, it's taken from your budget balances.

Future transactions

Future transactions are called Schedules in Actual. They work basically the same but are slightly different.

First, they get their own tab in the sidebar:

Second, Actual has a feature where it can find some recurring transactions for you. If you click "Find schedules" at the bottom left hand corner of the page, Actual will look through your transaction history and find recurring payments. This isn't just stuff paid monthly, it can even guess your paycheck!

By default, the transactions for schedules aren't automatically created. This is the opposite of how YNAB works. This is for a good reason.

Each of your schedules gets a status. This can be Due, Upcoming, Overdue, etc. This can alert you of transactions that haven't come through yet that should, or transactions that you can expect later this week.

You can also skip transactions if you know they're not going to happen this time around (unlike YNAB):

Creating transactions for a schedule

Transactions for a schedule either get created when you create the transaction yourself (and it'll automatically get linked), or by selecting the scheduled transaction and clicking "Post transaction".

If you really want the behavior of YNAB where it automatically creates the transaction, you can edit the Schedule (by clicking on it in the Schedules tab) and click "Automatically create transaction".

Schedule superpowers

Last, schedules have much more power in them than YNAB with a few extra features.

Do you ever have those transactions that are just ever so slightly off of a perfect schedule? (Mine is electricity.) Schedules come with a few special repeat tools that make it easy to set up more complicated payment structures.

If your payment happens every month, you can set which specific day it happens on. You can also set more than one day. For example, if you get paid on the first and the 20th of the month, you can set that up like this:

Actual will also show a preview of the dates at the bottom of the window for you.

Some transactions only come through on weekdays, not weekends (like ACH transactions). This is how my electricity is billed for some reason. You can tell Actual to skip the weekend by scheduling it before or after the weekend (using the "Move schedule" checkbox).

One last little trick (and this is by far the best one): if you don't know exactly what the amount of your transaction will be, you can give Actual an approximation or even a range:

So if you have an electric bill that varies from $20 to $75 some months, you can do it like this:

Then when you create the transaction for this, Actual will still recognize the transaction for the schedule. :D

Payees and Rules

In YNAB, you can edit Payees in the Payees panel. You can do the same in Actual, in the sidebar under More -> Payees.

This looks and works just like it does in YNAB, where you can merge Payees together and delete them if you need to.

However, instead of automatic categorization and renaming rules like in YNAB, Actual has a single thing called Rules. And they're extraordinarily powerful.

What are rules?

Rules tell Actual what to do to a transaction when it is added. Each rule has a condition and an action. Every time you add a transaction in Actual, Actual goes through alllll of the rules you've told it about. If the condition if the rule matches the transaction you added, then Actual will run the action of the rule.

To see all of the rules in Actual, go to the Rules tab in the sidebar under More.

There you'll see a list of rules like this:

Rules replace automatic categorization and renaming rules in YNAB. But they're also significantly more powerful than anything YNAB offers too. They can save you a ton of time, especially if you're a manual entry person.

Automatically categorizing transactions

Let's try creating a rule for automatically categorizing interest from a savings account (remember, Actual has income categories too!).

First, click "Create new rule" in the Rules tab. You'll see a window pop up like this:

Let's set the payee as "Bank Interest" (the dummy payee I created). As I do that, the table at the bottom of the screen populates with previous transactions that match. This is really useful for making sure you're writing a rule right!

This looks ok. So now, let's set the action to set the category to "Bank Interest" (the category is named the same thing as the Payee for some reason).

Now if I save the rule and try entering a new transaction for "Bank Interest" in my checking account, the category is immediately set to "Bank Interest":

Renaming payees automatically

If make a lot of Amazon purchases, you might have a lot of payees that look like this (this screenshot is from YNAB):

YNAB lets you set renaming rules to match all of these to one payee. In Actual, you just do this with a rule. It looks like this:

We use the "contains" check on the "imported payee" condition. So if the imported payee (either from bank account linking, YNAB import, or bank file imports) contains the word "Amazon", Actual will set the payee to Amazon.

If you have a lot of transactions like these from your YNAB import, you can tell Actual to go ahead and apply the rule to all of the transactions:

Automatically categorizing transactions from the same payee

How do you automatically categorize transactions from the same payee? By spending money from different accounts!

Here's an example. I get my prescriptions from a CVS Pharmacy inside of Target. I also sometimes buy groceries at Target. I want my prescriptions to come out of my Prescriptions category, and my groceries to come out of my Groceries category.

YNAB can't do this out of the box, so I have to categorize each transaction manually as I enter / import it. To get this to work in Actual, all I have to do is spend the money on two separate cards: one for prescriptions, the other for groceries.

In Actual, we can set up two rules like this:

Now any transactions I add to my Venture X card will automatically be set as prescriptions:

And now anything I add on my other cards is tagged as groceries:

Setting transaction amounts

What about transactions that happen regularly but don't have a schedule? You can also get Actual to set the amount for you. Here's an example of a rule where whenever I add a transaction from Amazon Prime, Actual automatically sets the amount to 14.99:

Now when I create a transaction with Amazon Prime as the payee, the category is set right and the amount is instantly set to 14.99:

This is great for things like subscriptions where you don't want to create a schedule, or for things like public transportation payments where the ticket price is always the same. All you have to do is set the Payee, and everything else is set right :)


YNAB lets you set targets for categories so you can painlessly save for them easily over time. While Actual doesn't have this feature exactly as implemented in YNAB, it has some things that are similar to it.

Multi-column view

First, do you really need a target? Sometimes you can get by just by looking at two or three months at the same time. For example, I could set my food budget for next month by looking at last month's spend and this month's budget, then coming up with a new number:

All I have to do is look at the numbers that are on the same row. For monthly bills with consistent pricing, this should work for the most part.

Template goals

Actual has an experimental feature called Template Goals that are similar to targets. Note that this feature is experimental and won't show up by default. To enable it, go to More -> Settings:

Click on "Show advanced settings":

Then scroll down and click on "I understand the risks, show experimental features":

Then select "Goal templates":

Writing template goals

Because template goals are experimental and very early, they don't have a great GUI yet. The Actual devs intent to have a GUI for them before they become not experimental. For now, this means you will have to write some text.

You can create template goals by adding text to the Note of a category. The simplest goal looks like this:

This will tell Actual to set aside $200 each month. This will happen regardless of the balance in the category.

To do the equivalent of Auto-assign in YNAB, go to the upper right hand corner of the month, click the three dots, and click "Apply budget template".

This will go through each of your template goals and assign the relevant amount for them for the month.

Goals and schedules

By far the most useful feature of template goals is that you can link them to a schedule. For example, you can link your Rent category to your Rent schedule via a template goal.

First, make sure your schedule has a name (Schedules -> Click on the schedule to edit -> Name).

Next, in your category that you want linked to the schedule, set the note to be this:

The format is #template schedule , where is replaced with the name of your schedule.

Now when you go to auto-assign, Actual will automatically calculate exactly how much you need to save based on the Schedule:

This works as a temporary workaround to the lack of a GUI for stuff :)

More complicated templates

There is a LOT more you can do with templates, like setting the equivalent of savings goals or spending goals. I'd recommend looking through this table to look at the syntax and what all you can do. Use the "Check templates" button in the budget to validate that you wrote your templates right.

For now, remember again that this is experimental and might not work how you're used to with Auto-Assign. For example, the apply button will overbudget because it sets all the templates. It's not smart about how it does it like YNAB is. So you'll need to zero out ones you want.

Wrapping it up

That's about all of the things you need to know about Actual coming from YNAB, just off the top of my head. If you have any questions, please let me know! I'm really enjoying Actual so far and will likely stick with it.