I got fed up with fragmented finance apps. One for budgeting, another for investments, a spreadsheet for tracking specific expenses, and all of them either wanting access to my bank accounts or having a UI that just didn’t click with how my brain organizes money. It was a digital mess, frankly, and I found myself spending more time wrestling with the tools than actually understanding my finances. That’s what led me back to a fundamental truth: I needed a single, flexible source of truth, under my direct control, that didn’t demand a subscription or my bank credentials.
Most dedicated personal finance applications, in my experience, try to be everything for everyone. They offer automated categorization, investment tracking, debt management, and a dozen other features I didn’t need or want. Often, they come with a fixed taxonomy for expenses or a rigid reporting structure that never quite aligned with my actual spending habits or goals. I’m not saying they’re bad tools, but they often impose a structure on you. I wanted to define *my* structure, *my* categories, *my* accounts, and *my* reports. Notion, with its database capabilities and remarkable flexibility, offered exactly that. It’s not a magical AI that sorts everything for you, but it’s a blank canvas where you own your data and its organization. It requires a bit of upfront effort, sure, but the peace of mind and clarity it provides are well worth it.
How-To: Setting Up Your Notion Finance Tracker
This is how I built mine, starting from a blank Notion page. I’m not going to give you a pre-built template, because the whole point is to build something that fits *you*. Think of this as the architectural blueprint.
1. The Core: The Transactions Database
First, create a new page in Notion. I called mine “My Finances”. Inside, add a new database. I prefer the Table view for transactions. Let’s name this database Transactions.
- Click New database on a blank page, choose Table. Name it Transactions.
- Delete the default Name property. You won’t need it in this format.
- Add these properties:
- Amount (Number, Currency format – pick your local currency)
- Date (Date)
- Category (Select or Multi-select, for things like “Groceries”, “Utilities”, “Rent”, “Dining Out”, “Salary”, “Investment Income”)
- Type (Select, with options like “Income”, “Expense”, “Transfer”)
- Account (Relation, we’ll create this linked database in the next step)
- Notes (Text, for any specific details)
- Running Balance (Formula, we’ll come back to this once we have an Account database)
- For the Category and Type properties, start populating them with your common categories. Don’t overthink it; you can always add more later.
2. The Accounts Database
Next, we need a place to track your actual financial accounts (Checking, Savings, Credit Card, Cash, etc.). This will be a separate, but linked, database.
- Create another new database on the same page, also a Table view. Name it Accounts.
- Add these properties:
- Name (Title, for “Checking”, “Savings”, “Credit Card”, etc.)
- Initial Balance (Number, Currency)
- Current Balance (Formula, linking to Transactions)
- Transactions (Relation, link to your Transactions database)
- Go back to your Transactions database. Edit the Account property you created earlier. Choose Relation and link it to your new Accounts database. Ensure “Show on Accounts” is enabled so you can see linked transactions from the account view.
3. Linking and Formulas
This is where the magic happens. We’ll connect everything and get Notion to do some calculations.
- Current Balance for Accounts:
In your Accounts database, edit the Current Balance property. Set it to Formula. The formula is a bit tricky:
prop("Initial Balance") + sum(prop("Transactions").filter(prop("Type") == "Income").map(prop("Amount"))) - sum(prop("Transactions").filter(prop("Type") == "Expense").map(prop("Amount")))This sums all income and subtracts all expenses related to that account. It works. You’ll thank me later for this exact string.
- Running Balance for Transactions (Advanced, but worth it):
This one is more complex and usually involves creating a separate, aggregated view or a specific sorting logic. My first attempt at this was a mess. I tried to use a complex self-referencing formula *within* the Transactions database, assuming I’d always enter things in perfect chronological order. That’s a mistake. If you want a true running balance *per transaction*, you need a more advanced approach, often involving a second “helper” database or careful filtering. For simplicity, I’ve found it’s easier to just calculate the Current Balance per account (as above) and rely on filtered views of transactions sorted by date. If you’re a spreadsheet wizard and *must* have it, you’re looking at a cumulative sum formula with complex filters, and frankly, I typically defer that kind of heavy lifting to a proper spreadsheet export once a month if I need to see historical daily balances in that format. For daily use in Notion, the account balances are sufficient.
4. Inputting Data and Views
Now, start entering your transactions. The key is consistency.
- When you add a new entry to Transactions, make sure to fill in Date, Amount, Category, Type, and crucially, link it to the correct Account.
- Create different views for your Transactions database:
- All Transactions: Table view, sorted by Date (descending).
- Monthly View: Table view, filtered by Date “is within” This month.
- Expenses by Category: Board view, Grouped by Category, Filtered by Type “is” Expense.
- Income: Table view, Filtered by Type “is” Income.
Things people often get wrong
I’ve seen folks, and I’ve been one of them, make a few common missteps when trying to get Notion to track their money.
- Over-complication early on: Trying to implement advanced budgeting, multi-currency conversion, or detailed investment tracking on day one. Start simple: Transactions and Accounts. Get comfortable with data entry and basic views before adding layers of complexity. I originally tried to build a budgeting system with fixed monthly allocations and carry-overs right from the start. It just made input tedious and I gave up on it for a few weeks until I stripped it back to just tracking income and expenses.
- Inconsistent Data Entry: This is probably the biggest killer of any personal finance system. If you don’t enter transactions regularly, it becomes a daunting task. Try to do it daily or every few days. The moment you let a week slide, you’ll be faced with a pile of receipts and card statements, and the whole system becomes a chore rather than an aid.
- Confusing “Type” with “Category”: “Type” should be broad (Income, Expense, Transfer). “Category” should be specific (Groceries, Utilities, Salary). Mixing them up just makes filtering and analysis a headache.
- Forgetting Initial Balances: When you set up your Accounts, if you don’t put in an Initial Balance for each account, your Current Balance formula will be off. It needs a starting point! I once spent twenty minutes debugging a formula only to realize my checking account’s starting balance was set to zero, making all my calculations look like I was perpetually broke. Small detail, big impact.
- Ignoring Relations: The power of Notion lies in linking databases. If you manually type an account name into a transaction’s text field instead of linking to the Accounts database via the relation property, your account balances won’t update, and your whole system breaks down.
Using Notion for personal finance is about setting up a structure that serves your needs, not fitting your needs into a rigid structure.
