Logo

How to Build a Notion Budget Template (Free Download + Setup Guide)

Build a Notion budget that updates automatically. Two databases, a few formulas, and your spending tracks itself. Free template included.
How to Build a Notion Budget Template (Free Download + Setup Guide)

If you've ever tried to budget in Notion, you already know the trade-off: it's flexible, but most templates become too manual to keep up with.

This guide shows you exactly how to build a budget system that updates automatically when you add transactions.

Free template: Grab the to get started right away.

If you're looking for a more complete budget system, here's what a complete budget system looks like in Notion Finance Tracker:

The two-database structure

A working budget needs two databases:

  1. Budget - your categories and targets (Groceries: $400/month)
  2. Transactions - your actual spending (Grocery run: $45)

The key is connecting them with a relation, so when you add a transaction and tag it with a budget category, the budget updates automatically.

Transaction → links to → Budget Category
Budget Category → rolls up → all linked transactions

Setting up the Transactions database

Create a database called Transactions with these properties:

PropertyTypePurpose
NameTitleWhat you bought
DateDateWhen it happened
AmountNumberHow much you spent
BudgetRelationLinks to your Budget database

Now add three formula properties that return true/false depending on whether the transaction falls within a time period:

This Week (formula, returns checkbox):

year(prop("Date")) == year(now()) and
week(prop("Date")) == week(now())

This Month (formula, returns checkbox):

year(prop("Date")) == year(now()) and
month(prop("Date")) == month(now())

This Year (formula, returns checkbox):

year(prop("Date")) == year(now())

These return true if the transaction is within the period, false otherwise. The Budget database will use these to filter transactions.

Setting up the Budget database

Create a database called Budget with these properties:

PropertyTypePurpose
NameTitleCategory name (Groceries, Rent, etc.)
Weekly TargetNumberHow much you want to spend per week
Monthly TargetNumberHow much you want to spend per month
Yearly TargetNumberHow much you want to spend per year
TransactionsRelationLinks to Transactions (the other side of the relation you created)

Now add formulas that filter the linked transactions and sum the amounts:

Weekly Occurred (formula):

sum(prop("Transactions").filter(current.prop("This Week")).map(current.prop("Amount")))

Monthly Occurred (formula):

sum(prop("Transactions").filter(current.prop("This Month")).map(current.prop("Amount")))

Yearly Occurred (formula):

sum(prop("Transactions").filter(current.prop("This Year")).map(current.prop("Amount")))

These formulas:

  1. Take all linked transactions (prop("Transactions"))
  2. Filter to only those where the period checkbox is true (.filter(current.prop("This Month")))
  3. Extract the amount from each (.map(current.prop("Amount")))
  4. Sum them (sum(...))

Then add formulas for what's left and progress:

Weekly Left:

prop("Weekly Target") - prop("Weekly Occurred")

Weekly Progress:

if(
  prop("Weekly Target") > 0,
  prop("Weekly Occurred") / prop("Weekly Target"),
  0
)

Repeat for monthly and yearly. Format the Progress properties as percentages.

How it works in practice

  1. You add a transaction: "Lunch - $12 - tagged to Eating Out"
  2. The transaction's This Month formula returns true (because it's this month)
  3. The "Eating Out" budget's Monthly Occurred formula filters all linked transactions where This Month is true, then sums their amounts
  4. Monthly Left and Monthly Progress update automatically

When the month changes, old transactions' This Month formulas return false, so they're excluded from the filter. Your budget resets automatically.

Creating useful views

In your Budget database, create these views:

ViewSetupUse
WeeklyShow Weekly Target, Weekly Occurred, Weekly Left, Weekly ProgressQuick check during the week
MonthlyShow monthly columns, sort by Monthly Progress descendingSee which categories are overspent
YearlyShow yearly columnsBig picture view

In your Transactions database:

ViewFilterUse
This MonthDate is within "This month"Current spending
By CategoryGroup by BudgetSee breakdown

Adding income and goals

The same structure works for income:

  1. Add budget categories like "Salary" or "Freelance"
  2. Add income transactions linked to those categories
  3. Track income targets vs actual

For savings goals, create budget categories with targets representing how much you want to save, then add "savings" transactions when you transfer money to savings.

Recurring expenses

For subscriptions and bills that repeat:

  1. Create a database template with the recurring expense details
  2. Click the three dots on the template → "Repeat" → set frequency

Notion auto-creates the entry on schedule.

Notion Finance Tracker has a Recurring database that generates transactions automatically and links them to accounts and budgets.

What Notion Finance Tracker adds

The free template above covers basic budgeting. adds:

  • Accounts - track balances across checking, savings, credit cards
  • Recurring transactions - bills auto-create on schedule
  • Multi-currency - automatic conversion if you spend in different currencies
  • Net worth - see how budgeting affects your overall financial position
  • Charts - visual progress over time

Get the template

Start free: The has the two-database structure described above, ready to use.

Want the full system? connects budgeting to accounts, investments, and net worth.