Tired of untangling four different cash-app payments at the end of every month? Building a team expense tracker in Notion lets you record shared costs, split payments fairly, and keep receipts in one shared workspace. You connect an expenses database directly to a roster of team members or roommates. From there, automated formulas calculate who paid and what each person owes.

If you share rent, split recurring utility bills, or run a club budget, this system replaces chaotic group chats. It gives everyone a clean, real-time balance sheet.

Notion vs. Spreadsheets: Picking the Right Tool

Thing is, Notion is not always the fastest answer for simple money tracking. If three friends split a single weekend camping trip, a quick spreadsheet works better. Spreadsheets handle raw numbers faster and export cleanly. But when expenses roll across multiple months, categories, and people, relational databases shine.

Feature Notion Database Google Sheets / Excel
Best For Ongoing roommate bills, clubs, committee budgets One-off trips, tax summaries, heavy math
Receipt Storage Inline file uploads and drive links on every row External folder links or clumsy cell notes
Member Views Filtered dashboards per person Manual filter views or separate tabs
Setup Effort Moderate (setting up relations and properties) Low (type numbers and use SUM)
Relational Links Native links between people, tasks, and costs Requires VLOOKUP, INDEX/MATCH, or scripts

Use Notion when you want ongoing visibility and individual member dashboards. Choose a spreadsheet if you just want to add five receipts and walk away.

Building the Core Expenses Database

Create a new full-page table database and title it "Expenses." This database serves as your central ledger. Every time someone buys toilet paper, books a group flight, or pays the internet bill, they add a row here.

Configure these basic properties first:

  • Expense Name (Title): A clear summary of the purchase, like "March Electric Bill" or "Team Pizza."
  • Amount (Number): The total dollar cost. Format this as US Dollar in the property settings.
  • Date (Date): The day the charge went through.
  • Category (Select): Tags like Rent, Utilities, Groceries, Travel, Supplies, or Event Fees.
  • Paid By (Relation): Connected to your People database so you know who fronted the money.
  • Split Type (Select): Options like Equal Split, Full Reimbursement, or Custom.
  • Receipt (Files & media or URL): A photo of the paper receipt or a link to a cloud folder.

Keep property names consistent. Avoid adding too many fields right away. Extra fields clutter the mobile view when someone tries to enter a receipt on the go.

Creating the People Database

Make a second database named "People" on the same page.

This database lists every roommate, teammate, or club organizer who pays into the pool or receives reimbursements.

Add a Title property for the person's name and an Email property for quick contact. Next, open the Expenses database and add a Relation property linking directly to People. Turn on the toggle to show the relation on both databases. Now, whenever an expense links to Alex, Alex's card in the People database immediately lists that purchase.

Calculating Individual Shares with Formulas 2.0

Calculating who owes what used to require long, clunky workarounds. Notion's updated formula engine makes this math straightforward. The Notion Help Center guide to formulas explains how modern formulas process relations as lists rather than raw text strings.

Turns out, you can calculate each person's exact share in an Expense row with a single clean snippet. Add a Formula property named "Cost Per Person" to your Expenses database:

let(
  total, prop("Amount"),
  memberCount, prop("Split With").length(),
  if(memberCount > 0, total / memberCount, total)
)

This formula checks how many people share the expense. If you link three roommates in a "Split With" relation, it divides the amount by three. If the relation is empty, it displays the original total so nothing breaks. For deeper syntax tricks and list functions, Thomas Frank's formula cheat sheet offers practical patterns for handling empty fields and currency formatting.

Tracking Member Balances with Rollups

Now you need to know who is ahead and who owes money. In your People database, add Rollup properties to summarize the linked transactions. As detailed in the Notion VIP rollup guide, rollups pull data across database relations to run automatic calculations like sums, counts, and averages.

Configure these two rollups on the People table:

  • Total Paid: Select the "Expenses Paid" relation, choose the "Amount" property, and set Calculate to "Sum."
  • Total Share Owed: Select the "Shared Expenses" relation, choose the "Cost Per Person" property, and set Calculate to "Sum."

Once those two numbers exist, add a formula property called "Net Balance" in the People database:

prop("Total Paid") - prop("Total Share Owed")

A positive number means the group owes that member a reimbursement. A negative number means the member needs to send money to settle up. The math updates instantly every time someone logs an entry.

Managing Permissions Without Breaking the Database

If you have lived with roommates or group organizers for more than a few months, you already know how fast grocery receipts, Wi-Fi bills, and random hardware store runs blur together into an awkward mess of text messages, where someone insists they paid thirty dollars for dish soap and paper towels back in October and nobody can actually find the receipt. Giving everyone full admin access to your Notion tracker usually invites accidental chaos. Someone will eventually rename a formula or delete a critical property while trying to enter lunch costs on their phone.

To be honest, locked layouts save friendships.

Use Notion's built-in sharing settings to grant teammates "Can edit content" rather than "Full access." According to Notion help documentation on permissions, this permission level allows people to add rows, type amounts, and upload receipt images without altering database properties or deleting relation columns. Lock the database view once you finish configuring the columns.

The Simple Weekly Settlement Workflow

Having a tracker only works if your team updates it reliably. Follow this routine to keep balances clear:

  1. Snap and log immediately: Add transactions from the mobile app as purchases happen, attaching the receipt photo right away.
  2. Review on Sunday evening: Run a quick five-minute check across the Expenses table to make sure amounts and member tags match reality.
  3. Check net balances: Look at the People database to see who is negative and who is positive.
  4. Settle up directly: Have members with negative balances pay the members with positive balances using your group's preferred peer-to-peer payment app.
  5. Mark as cleared: Archive or filter out settled expenses using a "Status" checkbox so the active view stays uncluttered.

Start by duplicating a blank workspace, building your two tables, and testing three dummy transactions. Once your balances calculate accurately, invite your team and let the system run.