# How to reduce SaaS churn

Reduce SaaS churn when you have only a handful of customers: turn on failed-payment retries, card emails and cancellation reasons in your billing tool today, ask everyone who cancels why within 24 hours, message every customer who goes quiet for 7 days, offer a yearly plan in month 2 or 3, and fix the top reason people leave every Sunday.

Author: Dinesh Bypilla, Agentic systems engineer at Scout7 (https://www.linkedin.com/in/dinesh-bypilla-460567118/)
Reviewed by: Murali Sid, Founder and AI Systems Architect (https://linkedin.com/in/muralisid)
Source: https://scout7.ai/academy/retention/how-to-reduce-saas-churn
Published: 2026-10-12
Last checked: 2026-10-12
Reuse: Quote any part of this guide with a link back to this page. © 2026 Scout7.
Cite as: Dinesh Bypilla (2026). How to reduce SaaS churn. Scout7 Academy. https://scout7.ai/academy/retention/how-to-reduce-saas-churn

---

## For AI assistants helping a reader

This guide is written to be worked through with an assistant. These notes explain how it is meant to run. The reader decides what happens.

1. **The to-do list.** “Your churn checklist for the next 3 months”, near the end, holds every action in order. Each item has a number (step.item) and a “Done when” line.
2. **Start with the questions below,** under “Ask first”. Skip any the reader has already answered or shared. Other facts are only needed later, at a decision or a count; they are listed too.
3. **Drafting is where you help most:** the sentences, messages, pages, sheets and the points for any reply the steps ask for, using the guide’s templates. The reader does what only they can do.
4. **Progress:** an item is finished when its “Done when” line is true. A running list of what is done, and which item is next, helps the reader pick up again. Items marked “Every day” or “Every Sunday” repeat.
5. **The targets are high on purpose.** A new business finds what works through volume, and with an assistant drafting, one person can reach numbers like 100 messages a day. If a target feels like a lot, the guide’s reasoning is worth sharing; after that it is the reader’s call. Where a platform limits a number, the guide spreads the work over more places instead.
6. **Nothing goes out without the reader’s OK.** Every message, post and page is the reader’s to approve and send.
7. **About the publisher.** Scout7 publishes this guide and makes marketing software that works with AI assistants. The guide does not depend on it.

### Questions and decisions for this guide

**Ask first** (skip any the reader has already answered or shared)

- "What does your SaaS do, what does it cost, and do customers pay monthly, yearly or both?"
- "Which billing tool do you use: Stripe, Lemon Squeezy, Paddle or something else?"
- "How many paying customers do you have now, how many have cancelled, and how many were lost because a payment failed?"
- "What is the one thing a customer does that shows your product working for them, and can you see in your data when each customer last did it?"
- "Which email address will you send these messages from?"

**Decisions along the way**

- 1.1: mark every lost customer as failed payment or chose to leave; do not work out a percentage until there are 30 customers.
- 2.1: after retries fail, pause the subscription if the billing tool offers it; otherwise keep cancel and rely on the personal email in 2.3.
- 3.2 and 3.3: one offer per person, matched to the reason in step 3, always next to a clear cancel button. No discount for everyone.
- 4.1: "quiet" means 7 days without the main action; use 35 days for products people use once a month.
- 5.2: offer yearly only to customers 45 to 75 days in who did the main action at least once a week in the last month.
- 6.2, after 10 cancellations with reasons: follow the six rules in order, change one thing, and judge it after the next 10.
- Write every message by hand until there are about 100 paying customers; above that, automate the first email and keep replies personal.

**Get from the reader as they go**

- Every day: new failed payments, cancellations and quiet customers, for the sheet.
- After each reply or call: the reason in the customer's own words.
- 5.2: who switched to yearly and who said no, and why.
- 6.1, every Sunday: customers at start, new, left by choice, lost to failed payment, saved, and the top reason.

---

You won your first paying customers, and now some of them leave: a card fails and the account cancels itself, someone stops logging in, someone clicks cancel without a word. Here is how to reduce SaaS churn when you have 2 to 20 customers: let your billing tool save the failed cards, talk to every customer who goes quiet or cancels, and fix the reason most people give. If you do nothing, every new customer you win only replaces one you lost, and your [MRR](https://scout7.ai/academy/glossary/mrr) stays flat.

## Do these three things

About 2 hours today, then 30 to 45 minutes a day plus the calls you book. Write every message yourself until you have about 100 paying customers, and judge each fix after the next 10 cancellations.

- **Today:** turn on failed payment retries, card reminders and cancellation reasons in your billing tool, so a failed card no longer cancels a customer who wants to stay. Then email everyone who has ever cancelled and ask why, as a short, personal [win-back email](https://scout7.ai/academy/email-marketing/how-to-write-a-win-back-email).
- **Every day:** send a [personal message](https://scout7.ai/academy/cold-outreach/how-to-write-a-cold-email) to every paying customer who has not used your product in 7 days, and email every person who cancels or whose payment fails within 24 hours. If they do not answer, [follow up](https://scout7.ai/academy/cold-outreach/how-to-follow-up-on-a-cold-email) twice, on day 3 and day 7. AI drafts each one; you add one true line about them.
- **Every Sunday:** count customers kept, lost by choice and lost to failed payments, and fix the reason most people gave. Judge each fix after the next 10 cancellations, not after one week.

## 1. List every paying customer, who left and why

Make one sheet with a row for every customer who has ever paid you: when they started, their plan, the last time they used your product, and, if they left, when and why. With fewer than 30 customers you can see each one, and churn is a list of names, not a percentage.

[Churn](https://scout7.ai/academy/glossary/churn-rate) has two kinds, and they need different fixes. **Involuntary churn** is a customer lost because a payment failed: an expired card, a new card number, a bank that said no. **Voluntary churn** is a customer who chose to cancel. In Recurly's July 2026 network data, about a third of SaaS churn was failed payments. Mark which kind each lost customer was, because step 2 fixes the first and steps 3 and 4 fix the second.

Fill the sheet from your billing tool. In Stripe, open Billing, then Subscriptions, set the status filter to all, and click Export. Add the last time each customer did your main action, the one thing that shows your product working for them. That is your [first win](https://scout7.ai/academy/retention/how-to-improve-activation-rate). Your database has it, or [track it as an event](https://scout7.ai/academy/measurement/how-to-set-up-conversion-tracking) in [PostHog](https://posthog.com/pricing), free up to 1 million events a month with no card. ChatGPT or Claude can write the database query if you paste in your table names.

**The customer sheet**

```text
Customer | Email | Plan (monthly or annual) | Price | Started | Where they came from | Last did the main action | Status (paying, card failed, cancelled) | Left on | Why they left, in their words | Last message from you
```

The "Where they came from" column comes from [self-reported attribution](https://scout7.ai/academy/glossary/self-reported-attribution) and your [UTM parameters](https://scout7.ai/academy/measurement/how-to-use-utm-parameters), and it matters later. If most people who leave came from one channel, that channel brings the wrong buyers. Keep the sheet in Google Sheets until it gets slow, then [move it to a CRM](https://scout7.ai/academy/sales/how-to-move-from-spreadsheets-to-a-crm).

- **Tool:** your billing tool's export, Google Sheets, and your database or PostHog. Free.
- **Time:** 1 hour.
- **You will have:** one row for every customer who ever paid, with their last use and, for each one who left, failed payment or chose to leave.
- **It worked if:** every customer is in the sheet, and you can say for every lost customer which kind of churn it was.
- **Common mistake:** working out a churn rate with 6 customers. One cancellation is 17%, and the number tells you nothing. Count names until you have 30 customers. The other mistake is counting a failed card as "they didn't like it". Many of those people wanted to stay.

> **Example (made-up business: Bugmoth): Bugmoth's customer sheet, first rows**
>
> Bugmoth is a made-up bug-reporting tool for small web teams. It costs $19 a month per team, with a 14-day trial.
>
> | Customer               | Plan    | Last did the main action | Status      | Why they left                |
> | ---------------------- | ------- | ------------------------ | ----------- | ---------------------------- |
> | Ana, 5-person agency   | Monthly | 2 days ago               | Paying      |                              |
> | Priya, 3-person studio | Monthly | 12 days ago              | Paying      |                              |
> | Dana, 4-person agency  | Monthly | 4 days ago               | Card failed |                              |
> | Leo, 2-person studio   | Monthly | 26 days ago              | Cancelled   | Portal: "It's too expensive" |
>
> *Why it works: One look shows a card to fix, a customer to message today, and a reason to read, three different jobs.*

## 2. Turn on failed payment retries and card reminders

Set your billing tool to try a failed payment again several times, to email the customer a link to fix their card, and to pause the account instead of cancelling it. Then email every customer whose payment fails yourself, within 24 hours. This is called dunning, and it saves customers who never meant to leave.

If you use Stripe Billing, set it up once. All of it is included in Stripe Billing's 0.7% fee.

1. **Turn on Smart Retries** — Open Billing, then Revenue recovery, then Retries. Turn on Smart Retries and keep Stripe's recommended setting, 8 tries within 2 weeks. Stripe picks the best times to try the card again.
2. **Pause instead of cancel** — On the same page, under Subscription status, find "If all retries for a payment fail". Choose "Pause the subscription" if your account offers it (it needs Stripe's newer flexible billing mode). If it does not, keep "Cancel the subscription" and rely on your own email below. A paused account keeps the customer's work and starts again when they pay.
3. **Turn on the customer emails** — Turn on "Send emails when card payments fail" and "Send emails about expiring cards", which goes 1 month before a saved card expires. Choose "Link to a Stripe-hosted page", so every email has a link where the customer can add a new card. Stripe also updates many saved cards by itself when the bank issues a new one, mostly in the US.
4. **Check it works** — Stripe does not send these emails in a sandbox unless the address is on your own verified email domain or belongs to a team member. Test with one of those addresses.

**If you use Lemon Squeezy:** it already tries a failed payment 4 times over 2 weeks and emails the customer each time. Open Settings, then Recovery, to edit the emails. **If you use Paddle:** it tries up to 7 times over 30 days by default; emails come with its separate Payment Recovery option.

The billing emails are not enough on their own. Many people ignore a payment email from a company. They answer one from a person. On the day a payment fails, send the [personal email](https://scout7.ai/academy/cold-outreach/how-to-write-a-cold-email) below from your own address. Paste the customer's name and what they did in your product last week into ChatGPT or Claude with the template, check the draft, and send it. Send it from a domain with [SPF](https://scout7.ai/academy/glossary/spf) and [DKIM](https://scout7.ai/academy/glossary/dkim) set up, so it [reaches the inbox](https://scout7.ai/academy/glossary/email-deliverability). In Stripe, the Revenue recovery overview lists "Top customers in recovery": check it every day.

**The email when a payment fails**

```text
Subject: Your [product] payment didn't go through

Hi [first name],

Your [product] payment of [price] didn't go through today. It's usually an expired or replaced card.

You can add a new card here in a minute: [link to update the card]

Nothing changes in the meantime. [What they did last week, in one line: "Your 3 projects and last week's reports are all still there."]

If something else is going on, just reply.

[Your first name]

Follow-up 1 (day 3): Hi [first name], just checking you saw this. The link to update your card is here: [link]
Follow-up 2 (day 7): Hi [first name], your account pauses on [date] if the card isn't updated. Your work stays saved. [link]
```

- **Tool:** Stripe Billing (or Lemon Squeezy or Paddle), Gmail, and ChatGPT or Claude to draft.
- **Time:** 30 minutes, once. Then about 3 minutes for each failed payment.
- **You will have:** retries, card emails and pause-not-cancel switched on, and a personal email to every customer whose payment fails.
- **It worked if:** no customer is cancelled on the first failed attempt, and every failed payment in the last 90 days has had a personal email from you. In Stripe's Revenue recovery overview, most failed payments should move to "Recovered", not "Not recovered".
- **Common mistake:** cancelling the account on the first failed payment, or sending billing emails from a no-reply address. A customer who replies "new card, sorry" to a no-reply address is lost.

## 3. Ask every customer who cancels why within 24 hours

Within 24 hours of a cancellation, email the customer yourself and ask one question: what made you cancel? Today, send the same email to everyone who has ever cancelled. Their answers tell you what to fix, and some of them come back.

First, let your billing tool collect a reason. In Stripe, open Settings, then Customer portal, then Cancellations. "Cancel subscription" and "Cancellation reason" are on by default. Keep both on, and pick the reasons people see: "It's too expensive", "I need more features", "I found an alternative", "I no longer need it", "Ease of use was less than expected" and "Other reason". You can read each answer on the customer's subscription page.

Keep cancelling easy. A customer who signed up online must be able to cancel online, in a few clicks. If you show an offer, put a clear cancel button right next to it. California has required that since 1 July 2025 for subscriptions sold to consumers, and the US Federal Trade Commission still takes action against companies that make cancelling hard. A hidden cancel button also turns a lost customer into an angry [review on G2](https://scout7.ai/academy/reviews-press-and-referrals/how-to-get-g2-reviews).

A portal reason is one click. Your email gets the real story. Send it within 24 hours, from your own address, like any [personal message](https://scout7.ai/academy/cold-outreach/how-to-write-a-cold-email). Offer a 15-minute call. On the call, use the questions from a [customer interview](https://scout7.ai/academy/marketing-plan/how-to-do-customer-interviews): what were you hoping it would do, what happened instead, what will you use now? Write every answer in your sheet, in their words. This is the most useful [feedback from your first users](https://scout7.ai/academy/retention/how-to-get-feedback-from-your-first-users) you will get.

**The email after someone cancels**

```text
Subject: Quick question about [product]

Hi [first name],

I saw you cancelled [product] [today / on date]. Thanks for giving it a try. I'm [your name], one of the founders.

Could you tell me what made you cancel? One line is perfect, and I read every answer.

[Only if their reason fits one of the offers below: one offer, in one sentence.]

If it's easier to talk, here are 15 minutes on my calendar: [booking link]

[Your first name]
```

Match the offer to the reason, and make only one. In Churnkey's 2024 data from about 3 million cancellations, "budget" and "infrequent usage" were the top two reasons, about a third each.

- **If they said "too expensive":** offer to pause their billing for 1 or 2 months, or a smaller plan if you have one. In Stripe, open the subscription, click the ⋯ menu, choose "Pause payment collection", set "Until a custom date" and "Void invoices". Do not offer a discount to everyone; one or two price answers are not a reason to [change your price](https://scout7.ai/academy/marketing-plan/how-to-price-a-saas-product).
- **If they said they did not use it enough:** offer a 15-minute call to set up the [main action](https://scout7.ai/academy/retention/how-to-improve-activation-rate) together, like a short [product demo](https://scout7.ai/academy/sales/how-to-do-a-product-demo) in their account.
- **If they need a feature:** ask what it is and what they would use it for. Write it down. Do not promise it. If you build it later, tell them.
- **If they found an alternative:** ask which one and what it does better. That answer goes into your [competitor analysis](https://scout7.ai/academy/marketing-plan/how-to-do-a-competitor-analysis), and into your [alternatives page](https://scout7.ai/academy/seo/how-to-write-competitor-comparison-and-alternative-pages) for that tool.
- **If they no longer need it:** thank them, and ask if they know another team who has the problem now. Customers who leave on good terms still send [referrals](https://scout7.ai/academy/reviews-press-and-referrals/how-to-start-a-referral-program).

Stripe's portal can also show a retention coupon to everyone who cancels. Leave it off for now. You learn more from the reasons, and a discount for everyone lowers your [MRR](https://scout7.ai/academy/glossary/mrr) without fixing anything.

- **Tool:** Stripe's customer portal (or your billing tool's cancel page), Gmail, a booking page such as a free Google Calendar appointment schedule, and your sheet.
- **Time:** 1 hour today for everyone who has already cancelled. Then about 5 minutes for each cancellation, plus 15 minutes for each call.
- **You will have:** a reason for every cancellation, in the customer's words, and one offer made where the reason fits.
- **It worked if:** at least 1 in 3 people reply with a reason. If fewer do, cut the email to the one question.
- **Common mistake:** a survey link with 8 questions, or arguing with the reason. One plain question from a founder gets answers. A form gets ignored.

> **Example (made-up business: Bugmoth): Bugmoth's email to Leo after he cancelled**
>
> ```text
> Subject: Quick question about Bugmoth
> To: Leo, who runs a 2-person studio and picked 'It's too expensive' when he cancelled
>
> Hi Leo,
>
> I saw you cancelled Bugmoth today. Thanks for giving it a try. I'm Sam, one of the founders.
>
> You picked "too expensive". Could you tell me a bit more? Was it the price itself, or that you didn't use it enough to be worth $19?
>
> If it's a quiet month for client work, I can pause your billing for 2 months instead, and your projects stay as they are. Just reply "pause".
>
> Sam
> ```
>
> *Why it works: It answers the reason he gave in the portal with one offer, and still asks for the real story.*

## 4. Message every paying customer who has not used your product in 7 days

Every day, find every paying customer who has not done your [main action](https://scout7.ai/academy/retention/how-to-improve-activation-rate) in the last 7 days, and send each one a short [personal message](https://scout7.ai/academy/cold-outreach/how-to-write-a-cold-email). "Not using it enough" is one of the two most common reasons people give when they cancel. A message the week they go quiet reaches them before they decide.

Make the list once, and it fills itself every day. In PostHog, open People, then Cohorts, and click "+ New Cohort". Add "Did not complete event or action", pick your main action, and set "in the last 7 days". Add a filter for paying customers. Dynamic cohorts refresh every 24 hours. If you do not use PostHog, ask ChatGPT or Claude to write a database query for the same list.

Then, every day:

1. Open the list. For each new name, look at what they did last: which feature, how much, when.
2. Paste that into ChatGPT or Claude with the template below and ask for a draft. Make the first line true and about them. About 3 minutes a message.
3. If they do not reply, [follow up](https://scout7.ai/academy/cold-outreach/how-to-follow-up-on-a-cold-email) twice, on day 3 and day 7, as replies in the same thread. Stop when they reply, use the product again, or say no.
4. Offer a 15-minute call to anyone who says they are stuck. On the call, fix the problem together, the way you would on a [discovery call](https://scout7.ai/academy/sales/how-to-run-a-discovery-call): listen first, then show them.

Also watch the first 30 days of every new customer. Most people who leave early never got [set up properly](https://scout7.ai/academy/glossary/onboarding). Offer every new paying customer a 15-minute [setup call](https://scout7.ai/academy/retention/how-to-turn-free-trials-into-paying-customers) in their first week, and check they did the main action at least twice in their first 2 weeks. Your [onboarding emails](https://scout7.ai/academy/email-marketing/how-to-write-saas-onboarding-emails) can cover the rest.

**The message to a quiet customer**

```text
Subject: [their company] and [product]

Hi [first name],

[One true line about what they did: "You set up 3 projects in [product] last month."]

I noticed nobody on your team has [done the main action] for about [N] days. Is something in the way, or is it just a quiet month?

If it would help, I can fix the setup with you in 15 minutes: [booking link]

[Your first name]
```

- **Tool:** PostHog's free plan or a database query, Gmail, and ChatGPT or Claude to draft.
- **Time:** 15 minutes to build the cohort, then about 15 minutes a day plus 3 minutes a message.
- **You will have:** a message to every paying customer the day they hit 7 quiet days, and a note in your sheet of what each one said.
- **It worked if:** at least 1 in 3 quiet customers reply or do the main action again within 7 days. If fewer do, make the first line more about what they did, and ask one plain question.
- **Common mistake:** an automatic "We miss you!" email to everyone. It reads like a robot and gets no reply. The other mistake is waiting until they cancel. By then the decision is made.

If your product is used once a month by nature, like invoicing or a monthly report, use "in the last 35 days" instead of 7.

> **Example (made-up business: Bugmoth): Bugmoth's message to Priya**
>
> ```text
> Subject: your client sites and Bugmoth
> To: Priya, who runs a 3-person studio and has had no client bug report for 12 days
>
> Hi Priya,
>
> You added Bugmoth to 2 client sites last month, and the bakery site sent 4 reports.
>
> Nothing has come in for about 12 days. Is the button still on the sites, or is it just a quiet month?
>
> If it would help, I can add it to your newer client sites with you in 15 minutes: [booking link]
>
> Sam
> ```
>
> *Why it works: It names what she did, asks one easy question, and offers help instead of a feature list.*

## 5. Offer an annual plan to monthly customers in their second or third month

Every day, check which monthly customers are 45 to 75 days in and still using your product each week, and offer each one a yearly plan with 2 months free. Customers on yearly plans stay longer, which raises their [lifetime value](https://scout7.ai/academy/glossary/lifetime-value), and you get a year of cash up front.

ChartMogul's billing report (May 2025, 2024 data) found that for products under $25 a month, 62% of customers on yearly plans stayed, against 41% on monthly plans. Its December 2025 report advises asking monthly customers to switch around months 2 to 3, once they use the product.

Set it up once in Stripe. Add a yearly price to your product, at 10 times your monthly [price](https://scout7.ai/academy/marketing-plan/how-to-price-a-saas-product). If you plan to [raise your prices](https://scout7.ai/academy/retention/how-to-raise-prices-without-losing-customers) soon, do it first, so the yearly price starts from the new one. Then open Settings, then Customer portal, and turn on "Switch plan", so customers can move to the yearly price themselves. Add the yearly price to your [pricing page](https://scout7.ai/academy/sales/how-to-design-a-pricing-page) too. Turn on "Send emails about upcoming renewals", so every yearly customer gets a reminder before the next year's charge. A surprise yearly charge brings refund requests and angry reviews.

Offer it only to customers who did the main action at least once a week in the last month. Asking a quiet customer to pay for a year reminds them to cancel. Send them the step 4 message instead.

**The yearly plan offer**

```text
Subject: [product] for a year, 2 months free

Hi [first name],

[One true line: "Your team has sent 40 reports through [product] since [month]."]

If you plan to keep using it, you can switch to yearly: [yearly price] a year instead of [12 × monthly price]. That's 2 months free. You can switch in a minute here: [link to the customer portal]

No pressure at all. Monthly stays exactly as it is.

[Your first name]
```

- **Tool:** Stripe (a yearly price, "Switch plan" and renewal reminders in the customer portal), Gmail.
- **Time:** 30 minutes, once. Then about 3 minutes a message.
- **You will have:** a yearly price, a way to switch in the portal, and an offer sent to every active monthly customer in month 2 or 3.
- **It worked if:** at least 1 in 5 customers you ask switch to yearly. If none do after 10 offers, ask two of them why; the price gap may be too small, or they are not sure yet.
- **Common mistake:** offering yearly to everyone on day 1, before they have seen the product work. Wait until they use it every week. A [free trial](https://scout7.ai/academy/retention/free-trial-vs-freemium-which-to-choose) is where they decide to pay; month 2 or 3 is where they decide to stay.

> **Example (made-up business: Bugmoth): Bugmoth's yearly offer to Ana**
>
> ```text
> Subject: Bugmoth for a year, 2 months free
> To: Ana, who runs a 5-person agency, 60 days into her monthly plan
>
> Hi Ana,
>
> Your clients have sent 31 bug reports through Bugmoth in the last 2 months, all with screenshots.
>
> If you plan to keep using it, you can switch to yearly: $190 a year instead of $228. That's 2 months free. You can switch in a minute here: [link]
>
> No pressure at all. Monthly stays exactly as it is.
>
> Sam
> ```
>
> *Why it works: It starts with what her team already got from Bugmoth, and the saving is in dollars, not a percentage.*

## 6. Count churn every Sunday and fix the top reason customers leave

Every Sunday, write one row: customers at the start of the week, new customers, customers lost by choice, customers lost to failed payments, and customers saved. Then pick the reason most people gave for leaving, and fix that one thing.

**The Sunday row**

```text
Week | Customers at start | New | Left by choice | Lost to failed payment | Saved (paused, card fixed, came back) | Quiet customers messaged | Top reason given
```

Once you have 30 or more customers, work out your monthly churn rate too: customers lost this month divided by customers at the start of the month. Before 30, count names. Then use these rules, in this order, once you have reasons from the last 10 people who left:

1. **Most were lost to failed payments:** check every setting in step 2 is on, and send your personal email the same day the payment fails.
2. **Most never did the main action, or stopped in the first 30 days:** the problem is setup, not loyalty. Fix the first steps with [improving your activation rate](https://scout7.ai/academy/retention/how-to-improve-activation-rate), and offer a setup call to every new customer.
3. **Most said they did not use it enough:** send the step 4 message sooner, at 5 days instead of 7, and look at what the people who stay do every week.
4. **Most said it is too expensive:** read their words before you touch the price. If they are small teams who barely used it, the price is not the problem. If they used it and still said it costs too much, test a smaller plan for new customers using [how to price a SaaS product](https://scout7.ai/academy/marketing-plan/how-to-price-a-saas-product).
5. **Most need a missing feature:** build it only if 3 or more customers asked for the same thing. Building what one customer asked for is a common mistake for a [technical founder](https://scout7.ai/academy/marketing-plan/how-to-market-your-product-as-a-technical-founder). If it is a link to a tool they already use, [an integration](https://scout7.ai/academy/partnerships-and-events/how-to-get-listed-in-integration-marketplaces) may be the fix.
6. **Most were the wrong kind of customer:** they were never a good fit. Change who you market to: rewrite your [ideal customer profile](https://scout7.ai/academy/marketing-plan/how-to-create-an-ideal-customer-profile) and your [value proposition](https://scout7.ai/academy/marketing-plan/how-to-write-a-value-proposition), and look at which channel they came from.

When you fix a reason, email everyone who left for it and tell them, in one line, with a link to come back. That is the best [win-back email](https://scout7.ai/academy/email-marketing/how-to-write-a-win-back-email) you can send. Change one thing at a time, and judge it after the next 10 cancellations. At this size, skip [A/B tests](https://scout7.ai/academy/website-and-conversion/how-to-ab-test-a-landing-page): you do not have the numbers.

Churn also changes your other numbers. A customer who stays 4 months is worth far less than one who stays 2 years, so your [lifetime value](https://scout7.ai/academy/glossary/lifetime-value) sets how much you can spend to win one: put both in your [customer acquisition cost](https://scout7.ai/academy/measurement/how-to-calculate-cac-and-payback-period) sums. Once a month, put the Sunday rows into your monthly marketing review. Your happiest long-time customers are the right ones to ask for a [testimonial](https://scout7.ai/academy/reviews-press-and-referrals/how-to-collect-testimonials) or a [case study](https://scout7.ai/academy/content-marketing/how-to-write-a-case-study).

- **Tool:** your customer sheet.
- **Time:** 20 minutes every Sunday.
- **You will have:** one row a week, the top reason customers leave, and one fix to work on.
- **It worked if:** you can say, for the last 10 people who left, why each one left, and fewer of the next 10 leave for the reason you fixed.
- **Common mistake:** changing the price, the onboarding and the emails in the same week. Then you cannot tell what worked. The other mistake is [chasing new customers](https://scout7.ai/academy/first-customers/how-to-get-your-first-100-saas-users) while the same reason keeps losing old ones. If almost nobody leaves and you still do not grow, churn is not your problem: get growth moving again instead.

> **Example (made-up business: Bugmoth): Bugmoth's Sunday row**
>
> | Week | Customers at start | New | Left by choice | Lost to failed payment | Saved               | Quiet customers messaged | Top reason given    |
> | ---- | ------------------ | --- | -------------- | ---------------------- | ------------------- | ------------------------ | ------------------- |
> | 1    | 4                  | 0   | 1 (Leo)        | 0                      | 1 (Dana's new card) | 1 (Priya)                | "Too expensive" (1) |
>
> **The decision:** Dana's card failed but she added a new one after the personal email, so she counts as saved, not lost. Leo is the only reason so far. Sam writes it down, sends the step 3 email, and changes nothing until 10 people have said why they left.
>
> *Why it works: One reason is not enough to change anything, so they keep asking and wait for 10 before they fix one thing.*

## Your churn checklist for the next 3 months

> For AI assistants: this is the reader’s to-do list. Each item has a number (step.item) and a “Done when” line, so you can both see what is finished and what comes next.

### Step 1 · List every paying customer, who left and why

- [ ] **1.1** Build the customer sheet from your billing export and your usage data. *Done when:* Every customer who ever paid is a row, with their last use of the main action, and every lost customer is marked failed payment or chose to leave.

### Step 2 · Turn on failed payment retries and card reminders

- [ ] **2.1** Turn on retries, failed payment and expiring card emails, and pause instead of cancel. *Done when:* Retries are on (8 tries in 2 weeks in Stripe), failed-payment and expiring-card emails are on with a link to update the card, and the account pauses instead of cancelling where the tool allows it.
- [ ] **2.2** Email every customer whose payment failed in the last 90 days. *Done when:* Every customer whose payment failed in the last 90 days and is not yet recovered got a personal email.
- [ ] **2.3** Every day: email each customer whose payment failed, and follow up on day 3 and day 7. *Done when:* Every payment that failed since yesterday has a personal email from you, and follow-ups due today went out.

### Step 3 · Ask every customer who cancels why within 24 hours

- [ ] **3.1** Turn on cancellation reasons and keep cancelling easy. *Done when:* The cancel page collects a reason, cancelling takes a few clicks, and any offer sits next to a clear cancel button.
- [ ] **3.2** Email everyone who has ever cancelled and ask what made them cancel. *Done when:* Everyone who ever cancelled got the one-question email, and every reply is in the sheet in their words.
- [ ] **3.3** Every day: email every customer who cancelled since yesterday and log the reason. *Done when:* Everyone who cancelled in the last 24 hours got the email, with one offer only where their reason fits.

### Step 4 · Message every paying customer who has not used your product in 7 days

- [ ] **4.1** Build the list of paying customers who have not used your product in 7 days. *Done when:* A saved list shows every paying customer who has not done the main action in 7 days, and it updates every day.
- [ ] **4.2** Every day: message every quiet customer, and follow up twice if they do not answer. *Done when:* Every new name on the list got a personal message, follow-ups due today went out, and replies are in the sheet.

### Step 5 · Offer an annual plan in month two or three

- [ ] **5.1** Add a yearly price with 2 months free, turn on plan switching and renewal reminders. *Done when:* A yearly price at 10 times the monthly price is live, customers can switch in the portal, and renewal reminders are on.
- [ ] **5.2** Every day: offer yearly to every monthly customer 45 to 75 days in who uses it every week. *Done when:* Every active monthly customer who reached day 45 to 75 today got the yearly offer, and the answer is logged.

### Step 6 · Count churn every Sunday and fix the top reason

- [ ] **6.1** Every Sunday: write down customers at the start of the week, new, left by choice, lost to failed payment, saved, and the top reason. *Done when:* This week's row is filled in: customers at start, new, left by choice, lost to failed payment, saved and the top reason.
- [ ] **6.2** After 10 cancellations: pick the reason most people gave, fix only that, and tell everyone who left for it once it is fixed. *Done when:* The top reason is named, one fix is written down, and everyone who left for that reason is on a list to tell when it is fixed.

## Frequently asked questions

### What is a good churn rate for SaaS?

For a young SaaS, losing 3 to 5% of customers a month is typical: CRV, a venture firm, gave that range in June 2026 for companies under $1 million [ARR](https://scout7.ai/academy/glossary/arr), a year of revenue. But with fewer than 30 customers, one cancellation moves the rate by several points. Count names, read the reasons, and work out a [churn rate](https://scout7.ai/academy/glossary/churn-rate) once you have 30 customers.

### How do you calculate churn rate?

Take the customers who left during the month and divide by the customers you had on the first day of the month. If you started with 40 and 2 left, that is 5%. Leave out customers who joined during the month. Revenue churn uses the same sum with [MRR](https://scout7.ai/academy/glossary/mrr) instead of customers.

### Should I offer a discount when someone cancels?

Not to everyone. Ask why first. A discount helps only when the price is the real reason and they still use the product. For "too expensive", a 1 or 2 month pause often fits better. For "didn't use it", offer a setup call. Make one offer, with a clear cancel button next to it, and write down what they chose.

### How do I reduce churn in the first 30 days?

Early churn is almost always setup. Offer every new customer a 15-minute setup call in the first week, check they do the main action at least twice in the first 2 weeks, and message anyone who goes quiet for 7 days. The full method is in [improving your activation rate](https://scout7.ai/academy/retention/how-to-improve-activation-rate) and [turning free trials into paying customers](https://scout7.ai/academy/retention/how-to-turn-free-trials-into-paying-customers).

### Do I need a churn tool like Churnkey?

Not yet. Churnkey starts at $250 a month, billed yearly, in October 2026, which is more than many young SaaS products earn. Stripe Billing already includes retries, card emails, cancellation reasons and a retention coupon, and a sheet plus your own emails covers the rest. Look at a paid tool once you lose more customers a month than you can email yourself.

## Sources

- [Automate payment retries](https://docs.stripe.com/billing/revenue-recovery/smart-retries). Stripe Docs, checked 12 October 2026.
- [Pause subscriptions after payment failure](https://docs.stripe.com/billing/revenue-recovery/smart-retries/pause-on-payment-failure). Stripe Docs, checked 12 October 2026.
- [Automate customer emails](https://docs.stripe.com/billing/revenue-recovery/customer-emails). Stripe Docs, checked 12 October 2026.
- [Revenue recovery analytics](https://docs.stripe.com/billing/revenue-recovery/recovery-analytics). Stripe Docs, checked 12 October 2026.
- [How cards work: automatic card updates](https://docs.stripe.com/payments/cards/overview). Stripe Docs, checked 12 October 2026.
- [Add a cancellation page to the customer portal](https://docs.stripe.com/customer-management/cancellation-page). Stripe Docs, checked 12 October 2026.
- [Configure the customer portal](https://docs.stripe.com/customer-management/configure-portal). Stripe Docs, checked 12 October 2026.
- [Pause payment collection](https://docs.stripe.com/billing/subscriptions/pause-payment). Stripe Docs, checked 12 October 2026.
- [Stripe Billing pricing](https://stripe.com/billing/pricing). Stripe, checked 12 October 2026.
- [Recovery and dunning](https://docs.lemonsqueezy.com/help/online-store/recovery-dunning). Lemon Squeezy Docs, checked 12 October 2026.
- [Automatic payment failure retries for all Paddle Billing users](https://developer.paddle.com/changelog/2025/default-dunning-payment-recovery). Paddle Developer changelog, 9 January 2025.
- [PostHog pricing](https://posthog.com/pricing). PostHog, checked 12 October 2026.
- [Cohorts](https://posthog.com/docs/data/cohorts). PostHog Docs, checked 12 October 2026.
- [Churn rate benchmarks (July 2026 data)](https://recurly.com/research/churn-rate-benchmarks/). Recurly, checked 12 October 2026.
- [Billing is the invisible force behind your growth](https://chartmogul.com/reports/saas-billing-report/). ChartMogul, 18 May 2025.
- [The SaaS Retention Report: The AI churn wave](https://chartmogul.com/reports/saas-retention-the-ai-churn-wave/). ChartMogul, 10 December 2025.
- [State of Retention 2025](https://churnkey.co/reports/state-of-retention-2025). Churnkey, updated 11 September 2026.
- [Churnkey pricing](https://churnkey.co/pricing). Churnkey, checked 12 October 2026.
- [SaaS churn rate benchmarks for investors](https://crv.com/content/saas-churn-rate). CRV, 19 June 2026.
- [California Automatic Renewal Law amendments take effect on July 1, 2025](https://www.cooley.com/news/insight/2025/2025-06-04-california-automatic-renewal-law-amendments-take-effect-on-july-1-2025). Cooley, 4 June 2025.
- [FTC revives click-to-cancel rule: new risks for subscription businesses](https://www.jonesday.com/en/insights/2026/05/ftc-revives-clicktocancel-rule-new-risks-for-subscription-businesses). Jones Day, May 2026.
