All Posts

    How to Structure Your Notion Finance Database for the Best Analytics

    Updated: April 6, 2026

    How to Structure Your Notion Finance Database for the Best Analytics main image

    If you want clean finance analytics in NotionStats (income vs expense, spending by category, payment method breakdowns, and net worth over time), your Notion database needs a few key properties with the right types and conventions.

    If you want to skip setup, you can duplicate my ready-to-use Notion Finance / Transactions template and customize it.

    Table of Contents


    Schema in 60 Seconds (Copy This)

    Create one Notion database named Transactions (or “Finance”) and add these properties.

    • Required
      • Name: Title
      • Date: Date
      • Amount: Number (positive for income, negative for expense)
    • Recommended (for breakdown charts)
      • Category: Select (e.g., Rent, Groceries, Salary, Subscriptions)
      • Payment Type: Select (e.g., Cash, Debit, Credit Card, Bank Transfer)
      • Subcategory: Select (optional, e.g., Groceries → Produce)

    Step 1: Create the “Transactions” Database

    In Notion, create a new database called Transactions.

    • Add a Table view for editing.
    • (Optional) Add a Calendar view using Date to browse spending by day.

    Step 2: Add the Required Properties (Must-Have)

    These are the minimum columns needed for core finance analytics like totals, averages, and net worth over time.

    Date (Date)

    • Type: Date
    • What it means: the date the transaction occurred (or posted)

    Amount (Number)

    • Type: Number
    • Convention:
      • Income = positive (e.g., (+2500))
      • Expense = negative (e.g., (-45.20))

    Many finance charts in NotionStats infer income/expense from the sign of Amount.


    Step 3: Add Optional Properties (For Better Breakdown Charts)

    If you want charts like “Income sources”, “Spending by category”, or “Expenses by payment type”, add these as Select properties (not plain text) so grouping is consistent.

    Category (Select)

    • Type: Select
    • Examples:
      • Income: Salary, Freelance, Interest
      • Expense: Rent, Groceries, Transport, Subscriptions

    Subcategory (Select)

    • Type: Select
    • Examples:
      • Groceries → Produce, Snacks, Household
      • Transport → Fuel, Transit, Parking

    If you don’t need a second layer of detail, you can skip Subcategory.

    Payment Type (Select)

    • Type: Select
    • Examples: Cash, Debit, Credit Card, PayPal, Bank Transfer

    Step 4: Data Entry Rules That Keep Analytics Accurate

    These are the most common reasons finance analytics look wrong.

    • Keep Amount signed
      • Don’t store expenses as positive numbers unless you also add a separate “Type” field and always filter correctly.
    • Use one currency per database (recommended)
      • If you mix currencies in the same Amount column, totals won’t be meaningful.
    • Use Select for grouping fields
      • Category/Payment Type/Subcategory should be Select to avoid typos creating “duplicate categories”.

    Step 5: Map These Columns in NotionStats

    When creating finance charts in NotionStats, map columns like this:

    • Date ColumnDate
    • Amount / Amount ColumnAmount
    • CategoryCategory (for category-based charts)
    • Payment TypePayment Type (for payment-type charts)
    • SubcategorySubcategory (for subcategory charts)

    Some card charts also let you set a Starting Balance inside NotionStats to compute net worth from a baseline.

    If you’re new to NotionStats setup, start here: Guide to adding analytics to your Notion.


    Troubleshooting / FAQ

    My income vs expense chart looks inverted

    Check Amount sign. Income must be positive and expenses must be negative.

    Category charts are messy / duplicated

    Make sure Category is a Select property and you’re consistently using the same options.

    Net worth over time has gaps

    Make sure every transaction row has a valid Date. Date-based charts can’t bucket rows without dates.