Zero-Based Budgeting in a Spreadsheet, Step by Step
Build a zero-based budget spreadsheet in Google Sheets: assign every dollar, track a live Left to Assign formula and move money mid-month. No bank feed.
In short
A zero-based budget spreadsheet gives every dollar of this month's income a job, so income minus everything you assign equals zero. In Google Sheets you need three things: a list of categories with an Assigned amount, a SUMIFS that totals what you spent in each, and one Left to Assign cell that should read 0 once the plan is done.
A zero-based budget spreadsheet gives every dollar of this month's income a job: rent, groceries, savings, debt, fun. You keep assigning until income minus assigned equals zero. In Google Sheets that takes one Budget tab, a SUMIFS for spending, and a single Left to Assign cell that should read 0. It's YNAB's core method in one sheet, without a bank feed. Here's how to build it.
The principle: every dollar gets a job
Zero-based budgeting starts from zero each month instead of from last month's numbers. You look at the money you actually have and decide what each dollar is for, before you spend it.
Three points people often get wrong:
- Zero doesn't mean spending everything. Savings, an emergency fund and extra debt payments are categories too. Assigning $500 to savings counts as giving it a job.
- You budget money you have, not money you expect. Plan with income that has already arrived. That's what makes the method work for irregular pay.
- The plan can change. When you overspend, you move money between categories. The total stays the same.
YNAB built an app around this idea. Its four rules are give every dollar a job, embrace your true expenses, roll with the punches and age your money. YNAB does the job well. Its envelopes and goals are polished, and it can import transactions from your bank automatically. If you'd rather not connect a bank, or you want the numbers in a file you own, a spreadsheet covers the first three rules with a handful of formulas. (Our guide to tracking expenses without linking your bank covers why many people choose that.)
How do I make a zero-based budget spreadsheet?
You need two tabs from any expense tracker, Expenses and Income, plus a new Budget tab. If you don't have a tracker yet, start with the free Google Sheets expense tracker template, or let Voice Sheet create its free Personal Finances template, which already has Expenses, Income and Monthly Budget tabs.
The layout this guide assumes:
| Tab | Column A | Column B | Column C |
|---|---|---|---|
| Expenses | Date | Category | Amount |
| Income | Date | Source | Amount |
| Budget | Category | Assigned | Spent |
If your columns are in a different order, change the letters in the formulas below.
Step 1: Set the month
At the top of the Budget tab, add two date cells so every formula looks at the same month:
| Cell | Label | Formula |
|---|---|---|
| E1 | Month start | =DATE(YEAR(TODAY()),MONTH(TODAY()),1) |
| E2 | Next month | =EDATE(E1,1) |
To plan next month in advance, type a date into E1 instead, such as 11/1/2026.
Step 2: Total this month's income
In E3, total the income that has actually arrived this month:
=SUMIFS(Income!C:C, Income!A:A, ">="&E1, Income!A:A, "<"&E2)
Log each paycheck or client payment on the Income tab as it lands. Don't add expected income.
Step 3: List every category
From row 6 down, list your categories in column A. Include the ones people forget:
- Fixed bills: rent, utilities, phone, insurance, subscriptions.
- Variable needs: groceries, transport, household.
- True expenses: costs that don't come every month, such as car repairs, gifts, annual renewals and holidays. Divide each yearly cost by 12 and assign that amount every month.
- Savings and debt: emergency fund, retirement, extra payments above the minimum.
- Fun money: eating out, hobbies, a small "anything" category.
Keep the category names exactly the same as the ones on your Expenses tab, or the SUMIFS won't match them.
Assigning every dollar
Now fill column B, Assigned, working from most to least important. A useful order: bills that are due first, then food and transport, then true expenses, then savings and debt, then fun.
Here's a worked example for someone whose October income is $3,600:
| Category | Assigned | Spent | Available |
|---|---|---|---|
| Rent | $1,250 | $1,250 | $0 |
| Utilities & phone | $180 | $164 | $16 |
| Groceries | $450 | $210 | $240 |
| Transport | $160 | $85 | $75 |
| Car repairs (true expense) | $60 | $0 | $60 |
| Gifts (true expense) | $50 | $0 | $50 |
| Emergency fund | $400 | $400 | $0 |
| Extra loan payment | $250 | $250 | $0 |
| Eating out | $200 | $142 | $58 |
| Subscriptions | $45 | $45 | $0 |
| Fun money | $155 | $60 | $95 |
| Total | $3,200 |
The total is $3,200, so $400 still needs a job. Until it's assigned, the budget isn't finished.
Two tips when assigning:
- Assign savings like a bill. Put the emergency fund near the top, not in whatever is left over.
- Fund true expenses even when nothing is due. The $60 a month for car repairs builds up in the sheet, so a $500 repair later doesn't break the month. This is the "embrace your true expenses" rule.
The formula for "Left to Assign"
This is the cell that makes a spreadsheet zero-based. Put it in E4:
=E3-SUM(B6:B)
It subtracts everything you've assigned from this month's income. In the example it shows $400, so you keep assigning. Put $250 more into the emergency fund and $150 into gifts, and it reads $0. The plan is done.
Then add the Spent and Available columns:
| Column | Header | Formula in row 6 (fill down) |
|---|---|---|
| C | Spent | =SUMIFS(Expenses!C:C, Expenses!B:B, A6, Expenses!A:A, ">="&$E$1, Expenses!A:A, "<"&$E$2) |
| D | Available | =B6-C6 |
Spent totals every expense in that category dated this month. Available is what's left to spend. For more on how SUMIFS and the date window work, see the formulas section of our guide to track expenses in Google Sheets.
Three checks worth adding:
- Color Left to Assign. Use Format → Conditional formatting: green when it equals 0, yellow above 0, red below 0. Red means you've assigned money you don't have.
- Flag overspending. Turn column D red when the value is below 0.
- Catch unmatched categories. In E5,
=SUMIFS(Expenses!C:C, Expenses!A:A, ">="&E1, Expenses!A:A, "<"&E2)-SUM(C6:C)shows spending whose category isn't on your Budget tab, usually a typo. It should be 0.
Mid-month moves: rolling with the punches
Budgets break. A friend's birthday dinner, a parking fine, a grocery week that ran over. Zero-based budgeting handles this by moving money from one category to another.
Say that by the last week of the month, groceries are at −$35 Available and Fun money still has $95. You move $35:
- Lower Fun money's Assigned from $155 to $120.
- Raise Groceries' Assigned from $450 to $485.
- Check that Left to Assign still reads 0.
Total assigned hasn't changed, so the budget still balances. That's the "roll with the punches" rule.
Keep a record of moves
If you edit the Assigned numbers directly, you lose the original plan. To keep it, add a Moves tab with Date, From, To and Amount columns. Leave your original plan in column B and add an Adjusted column in F (row 6, filled down):
=B6 + SUMIFS(Moves!D:D, Moves!C:C, A6) - SUMIFS(Moves!D:D, Moves!B:B, A6)
Then change Available to =F6-C6. Left to Assign doesn't need to change, because every move takes money out of one category and puts the same amount into another. At month end, the Moves tab shows exactly where the plan didn't match real life. If groceries borrow money every month, raise the groceries amount next month.
When extra income arrives
A refund, a side payment or a bonus lands mid-month. Log it on the Income tab, and Left to Assign goes above 0 again. Give it a job straight away, so it doesn't drift into spending.
Starting next month
On the first of the month, the date cells move on and Spent resets. Before you assign anything new:
- Note any category that ended below 0 and cover it first from the new income.
- Decide what to do with leftovers. Either move them into savings, or carry them forward by adding last month's Available to the new Assigned amount (for true expenses, carrying forward is the whole point).
- Assign the rest until Left to Assign reads 0.
Logging spending without a bank feed
The Spent column is only as good as your Expenses tab. Without a bank import, the habit that keeps it accurate is logging each purchase when it happens, not reconstructing the week on Sunday.
If you log from your phone, Voice Sheet adds each purchase as a row in your own sheet. The free version builds a form from your columns, with your category list as a dropdown. With Premium you can say "groceries 42 at the market" and it fills the date, category and amount. You can also use the app's monthly budget dashboard to check spending against budget per category. It's calculated by formulas in your sheet and resets on the 1st. Voice Sheet doesn't connect to your bank, so the budget only shows the purchases you choose to record.
If zero-based feels like too much detail, the 50/30/20 budget in Google Sheets uses the same sheet structure with three buckets instead of a dozen categories. Many people start there and move to zero-based once logging is a habit.
Whichever method you choose, the routine is the same: assign the month's income, log as you go, and look at Left to Assign and Available once a week.
Frequently asked questions
What is zero-based budgeting?
Zero-based budgeting means assigning every dollar of income to a category before the month starts, until income minus assignments equals zero. Savings and debt payments count as categories, so zero doesn't mean spending everything. It means nothing is left unplanned. YNAB calls this rule "give every dollar a job".
How do I make a zero-based budget in Google Sheets?
Make a Budget tab with Category, Assigned, Spent and Available columns. Total this month's income in one cell, subtract the sum of Assigned to get Left to Assign, and keep assigning until it reads 0. A SUMIFS over your Expenses tab fills Spent, and Available is Assigned minus Spent.
Can I do YNAB-style budgeting without linking my bank?
Yes. The method only needs your income, your categories and a record of what you spend. A spreadsheet you update by hand covers all three, with no bank login or aggregator involved. The trade-off is that you log each purchase yourself, which many people find keeps them more aware of their spending.
What do I do if I overspend a category?
Move money from another category that still has some Available, and record the move. Your total assigned stays the same, so Left to Assign stays at 0. If no category has room, the overspend comes out of next month's income: assign it first when you plan the next month.
Is zero-based budgeting good for irregular income?
It works well, as long as you only assign money you already have. Budget from the income that has actually arrived, not what you expect, and assign more as each payment lands. Over time, aim to build a buffer so you can fund next month entirely from last month's income.
