SaaS — MRR, churn, and cohort retention for a B2B app

20 minutes. Two CSVs. You play the head of growth at a $500K ARR B2B SaaS and answer the four questions the board actually asks.

Updated 2026-04-17

Industry: B2B SaaS Difficulty: Intermediate Time: 20 min Plan: Free works

The scenario

You’re the head of growth at Linework, a B2B project-tracking SaaS at ~$45K MRR across ~1,200 accounts. Three plans (Starter, Pro, Business), five acquisition channels.

The board asks four questions every month:

  1. What’s MRR doing? — absolute number and growth rate.
  2. Are we keeping the customers we win? — churn, by plan and by channel.
  3. Are new cohorts getting better? — retention curves.
  4. Who’s about to churn? — engagement-based early warning.

Every month you build the same deck. Today, Tablize builds most of it for you.

Download the sample data

1,195 rows · 12 months
accounts.csv
Every account that ever paid. Plan, seats, acquisition source, signup date, churn date (if churned).
~12,100 rows · 60 days
events.csv
Usage events — logins, feature use, exports, invites. Enough to compute engagement scores.

Drop both into a chat. The Agent imports them as data.accounts and data.events.

01

What's MRR doing?

MRR over time, split by plan. The opening slide of every board deck.
Prompt
Compute monthly MRR for the last 12 months, split by plan. MRR = sum of (price × seats) for active accounts at month end (excluding churned). Show the total, month-over-month growth rate, and the plan split.
linework · monthly mrr
step 1 · expected answer
Tablize
python.analyze · MRR as-of each month-end 752 ms
Current MRR is $46,180, up 6.2% month-over-month and 64% year-over-year. Most of the growth is coming from Business plan upgrades — that plan's share went from 14% to 22% of MRR over the period.
MonthStarterProBusinessTotalMoM
2025-11$7,980$17,840$7,820$33,640
2025-12$8,560$18,930$8,650$36,140+7.4%
2026-01$9,180$20,340$9,120$38,640+6.9%
2026-02$9,520$21,260$9,480$40,260+4.2%
2026-03$10,090$22,440$10,660$43,190+7.3%
2026-04$10,250$23,780$12,150$46,180+6.9%
· Step 1 — MRR by plan, monthly

Keep it: + Save as monthly Report. This is the Slide 1 of your board deck, now autogenerated.

02

Are we keeping the customers we win?

Monthly churn rate, split by plan and acquisition source. Early-warning lights blinking?
Prompt
Compute monthly gross churn rate for the last 6 months (churned accounts / accounts-at-start-of-month), split by plan and by acquisition source. Is anything trending worse?
linework · churn
step 2 · expected answer
Tablize
python.analyze · cohort-style monthly churn calculation 892 ms
Blended monthly churn is 4.1%, but the average hides two signals. Paid-search acquired customers churn at 7.2% — almost 2x the rest of the book. And churn is up across the board this month — from ~3.2% to 4.1%, driven by Starter plan users specifically.
SegmentChurn (Nov)Churn (now)Δ
All3.2%4.1%+0.9pp
Starter5.8%7.4%+1.6pp
Pro2.6%2.8%+0.2pp
Business1.4%1.3%-0.1pp
Source: paid-search5.2%7.2%+2.0pp
Source: organic2.8%3.3%+0.5pp
Source: referral1.9%1.6%-0.3pp
Action signal: paid-search traffic is cheap but sticky is not the right word for it. Either upgrade the activation onboarding for that cohort, or accept that paid-search LTV is roughly half of organic LTV when pricing campaign budgets.
· Step 2 — churn by segment, with trend flags

Keep it: + Watch churn. Daily check, pings you if blended monthly churn goes above 5%.

03

Are new cohorts getting better?

Cohort retention curve — every month's new signups, how many survive at M+1, M+3, M+6.
Prompt
Build a cohort retention analysis. Group accounts by signup month, compute what percentage are still active at month 1, 3, 6 after signup. Compare cohorts — are newer cohorts retaining better than older ones?
linework · cohort retention
step 3 · expected answer
Tablize
python.analyze · cohort table with pandas 1.4 s
Cohorts from the last 6 months are retaining better at M1 and M3 than older cohorts — M1 went from ~86% to ~91%. But M6 retention is flat at ~62%, suggesting the long-tail churn (month 4-6) is unchanged. Onboarding improvements are working; mid-life retention levers haven't kicked in yet.
CohortSizeM1M3M6
Oct 20258887%71%61%
Nov 202510688%73%63%
Dec 202512189%74%
Jan 202613091%76%
Feb 202613892%78%
Mar 202615291%
· Step 3 — cohort retention, M1 improving, M6 flat

Keep it: + Save as Script. Next month it reruns with one more cohort row added.

04

Who's about to churn?

Engagement-based early warning — accounts whose usage is dropping before they cancel.
Prompt
For each active account, compute an engagement score: events in the last 14 days vs events in the prior 14 days. List accounts whose engagement dropped by more than 60% — those are likely churn candidates. Include account, plan, MRR, and by how much they dropped.

The Agent produces a ranked list of ~30 at-risk accounts. You export it to CSV, hand it to customer success, and get ahead of next month’s churn.

Keep it: + Build Dashboard — publish a “Churn risk” dashboard the CS team can open daily, with the same list live-updated.

What you built in 20 minutes

  • 1 Report — monthly MRR, board-ready.
  • 1 Watch — churn trend alert.
  • 1 Script — cohort retention, rerunnable.
  • 1 Dashboard — live churn risk list for CS.

Your end-of-month reporting went from a 2-day build to a 30-minute review. CS now has a live heads-up on churn risk instead of learning from cancellation emails.

Next steps in this industry

  • Connect real dataPostHog, Stripe, Segment (via Web API), or your production Postgres directly. Same analyses, live.
  • Layer in product analytics — feature adoption cohorts, time-to-value by acquisition source.
  • Read the SaaS industry page — deeper scenarios: usage-based billing, expansion revenue modeling, NPS joined with behavior.

Nearby tutorials

  • E-commerce — if you sell physical goods instead of subscriptions.
  • Advertising — if you’re spending on acquisition and wondering which channel is actually working.