Notion · Finance ·

How to Track MRR and Monthly Profit per Product in Notion (Free Template)

If you run more than one product, a single revenue total hides what's actually working. One app might pay for everything while another quietly costs you £40 a month in hosting. This guide shows how to calculate MRR and monthly profit per product in Notion using relations, formulas and rollups. It works on the free plan.

This guide pairs with Solo Founder OS, and if you want the next step, read The Indie Developer's Subscription Audit: Find and Cut Wasted Tool Spend.

The structure

You need four databases, each linked to a central Products database:

The structure
DatabaseKey properties
ProductsName, Status, rollups (added in step 4)
RevenueDate, Kind (Recurring / One-off), Gross, VAT, Fees, Product (relation)
ExpensesDate, Amount, Category, Product (relation)
SubscriptionsCost, Billing (Monthly / Yearly), Status, Next renewal, Product (relation)

Step 1: Create Products

One row per product, side project or client. Add a Status select (Idea, Building, Launched, Paused). That's all for now. The useful columns come from rollups later.

Step 2: Revenue with net and MRR formulas

Add a Product relation to Products (two-way, so Products gets a Revenue column). Then add these formulas:

Net = prop("Gross") - prop("VAT") - prop("Fees")

MRR = if(prop("Kind") == "Recurring", prop("Gross") - prop("VAT"), 0)

MRR this month = if(
  formatDate(prop("Date"), "YYYY-MM") == formatDate(today(), "YYYY-MM"),
  prop("MRR"), 0)

Net this month = if(
  formatDate(prop("Date"), "YYYY-MM") == formatDate(today(), "YYYY-MM"),
  prop("Net"), 0)

Why exclude VAT from MRR? If you sell through a merchant of record such as Gumroad, Paddle or Lemon Squeezy, the VAT was never yours. Including it inflates your numbers.

Step 3: Expenses and subscriptions

In Expenses add Spend this month using the same month comparison on Amount. In Subscriptions, normalise everything to a monthly figure:

Cost per month = if(prop("Status") == "Cancelled", 0,
  if(prop("Billing") == "Yearly", round(prop("Cost") / 12 * 100) / 100, prop("Cost")))

Step 4: Roll it up on Products

On Products, add rollups (all Sum):

  • MRR ← Revenue → MRR this month
  • Revenue this month ← Revenue → Net this month
  • Expenses this month ← Expenses → Spend this month
  • Tool costs / month ← Subscriptions → Cost per month

Then one formula:

Monthly profit = prop("Revenue this month") - prop("Expenses this month") - prop("Tool costs / month")

Turn on the column Sum at the bottom of a table view to get business-wide totals.

Limitations to know

  • No currency conversion. Notion adds up numbers as entered. Pick a home currency and convert before entering; keep a Currency tag for reference.
  • Manual entry. Notion doesn't pull from Stripe or Gumroad natively. Log weekly, or use Zapier/Make.
  • "This month" is calendar-based. Annual plans paid upfront show as a spike unless you enter them as monthly instalments.
  • It's tracking, not accounting. Your accountant still needs proper records.
Want this pre-built? Solo Founder OS includes all of the above plus tasks, bugs, releases and a dashboard. Lite is free; Pro is $29.