TRUSTCHURN

Methodology

How it's measured

Every provider calculates churn its own way. These are ours, written down, and the same for every SaaS on the site. All numbers come from Stripe, read with the founder's read-only key, never typed by hand.

Paying customer

A Stripe customer with at least one subscription that is active or past due, out of its trial, and worth more than zero after discounts. Trials, free plans and 100% coupons don't count. A customer with several subscriptions counts once.

Monthly churn

We take the paying customers from 90 days ago and check how many still pay today. That share is the 90-day retention, shown as "kept 94% of customers in 90 days".

Monthly churn is the same thing as a monthly rate: 1 − kept^(30/days), which over 90 days is 1 − kept^(1/3). Keeping 94% over three months is a monthly churn of 2.0%. Customers who left and came back on a new subscription count as kept.

A SaaS younger than 90 days is measured over all the history it has, from 30 days on, and its profile says so ("based on 45 days of data"). Below 30 days there's no churn number yet.

Annual plans

An annual customer can only leave at renewal. If their renewal didn't fall inside the window, they couldn't have left, so they sit out of the calculation instead of flattering it. If they left anyway (a refund, an immediate cancellation), they count as lost. Each profile shows the share of customers on annual plans.

Revenue churn

The MRR of the customers from the start of the window who no longer pay, over the MRR of all of them, turned into a monthly rate the same way. Downgrades aren't included: Stripe doesn't keep the history of a subscription's plans, so we only see them from the day a founder connects.

MRR

Every paying subscription's price times quantity, normalized to a month (yearly divided by 12), minus subscription-level coupons. Metered and usage-based prices aren't counted. Other currencies are converted to US dollars with the European Central Bank's daily reference rates.

A place in the ranking

The minimums aren't fixed: they follow the size of the SaaS on TrustChurn. Each one is the 25th percentile of every SaaS with a churn number, so while everyone is small, small SaaS rank, and as bigger ones join, the bar rises. They're recomputed every time the ranking is read.

  • Paying customers: between 3 and 20. Today, 3.
  • Days since the first payment: between 30 and 90. Today, 30.
  • Customers who could have left in the window: between 1 and 10. Today, 1.

SaaS that meet them are ranked by monthly churn; ties go to the one with more paying customers. The rest are listed below them, under "Building history", in the same order but without a place, with what each one still needs.

Saved this month

Customers who scheduled a cancellation and then undid it, trials without a card that ended up paying, and failed payments that were recovered. Counted only from the day the founder connected.

Freshness

Profile numbers are recomputed once a day. The date of the last successful reading is on every profile, with a note when it's more than 2 days old. A profile not read from Stripe in 15 days (a revoked key, a broken connection) loses its place in the ranking until a reading works again. The private list is checked every hour.

What can be off

Complex setups (several currencies, usage pricing, invoice-level coupons, customers billed outside Stripe) can move the numbers a little. If yours looks wrong, write to us and we'll look at it with you.