29 October 2026 EN ES
The First Users

How products get their first real users

Keeping Them

Ask Your First Hundred Why They Leave, Then Fix the Dominant Reason

Set cancellation reasons to your real failure modes, read the weekly answers, and fix the dominant reason before touching anything else.

Illustration: Ask Your First Hundred Why They Leave, Then Fix the Dominant Reason

When your first Stripe customer cancels, the customer.subscription.deleted webhook fires with no reason unless a cancellation flow captures one. For early customers, that blank is the whole problem. You can't run a retention program on a blank screen. Stripe's customer portal can collect a cancellation reason after a customer cancels a subscription. A basic cancellation dropdown can sharply improve data quality for diagnosing Stripe voluntary churn.

Before custom options, Stripe's hosted billing portal displayed eight standard cancellation reasons: cost, missing capabilities, switching tools, low usage, support, complexity, quality, and other. Those labels are broad and hide the early churn reasons that matter. They don't tell you whether onboarding failed, pricing is wrong, or the product is missing the thing they came for. Stripe made the hosted billing portal able to show merchant-defined cancellation reasons when it shipped the Billing.FeedbackOption resource on August 26, 2026. The stripe-node 22.6.0 release tied to API version 2026-08-26.dahlia introduced API support for managing Billing.FeedbackOption objects and a feedback_options setting under the portal's subscription cancellation reason feature.

The cancellation screen is the only survey you can trust

A single failure usually dominates, and the exit screen is where you can see it. Before you build a churn dashboard, call the customer who left and ask what broke. The unscalable version works better here. Treat a cancellation as a conversation, not a metric. You don't need a survey engine. Don't run a retention campaign until you know the dominant reason.

Reasons should match the failure

List the failure modes you actually see. Make a short list of the ways your product disappoints: onboarding took too long, the core workflow was missing, or the price felt high. It's right when a customer could pick the answer without translating your jargon.

Turn each failure mode into a plain reason. The test is whether a customer can choose it in a second. Write it as a statement they'd make, not a category you'd use. If reasons overlap, merge them until the list feels obvious.

Put those reasons in the cancellation screen. Stripe's customer portal settings let merchants select which cancellation reasons customers see. Stripe's hosted Billing Portal retention feature allows only one configured coupon, and it is shown to every customer who reaches the cancellation screen regardless of the reason selected. The screen works when your wording, not a generic list, is what the customer sees.

Collect the reason after cancellation. Stripe's customer portal can let customers cancel subscriptions while optionally collecting cancellation reasons and presenting coupons to discourage cancellation. Every exit then has a label you can read later.

The dominant reason comes before the funnel

Read the answers weekly. The habit is small: open the list, count the top answer, and write a sentence about what it means. You're done when a reason stands out clearly enough to name the fix.

Do the unscalable thing: send a personal note to the last few customers who cancelled and ask what broke. You'll know it worked when the note gets you a specific failure. The later answers are often the same.

Before you blame the product, separate involuntary churn. Industry data puts involuntary SaaS churn at 20 to 40 percent. Treat a failed card as a billing issue, not a product complaint. Fix the billing recovery path first if that's what the data shows.

Offer a smaller plan before you offer a discount. When configuring plan switching in Stripe's customer portal, a merchant can specify up to 10 products for customers to choose from. The win is a customer choosing a smaller plan instead of leaving. A cheaper tier is a product decision. A coupon is a bandage.

Fix the dominant reason first. In Stripe subscription churn, a leading high-price reason can be addressed with a cheaper tier, while a leading low-usage reason can be addressed with onboarding improvements. If the top answer is a missing workflow, talk to the customer who left and ask what they'd pay for. If it's support, answer the next cancellation personally before you build a help center. The result is a product change aimed at the top answer.

Watch the next week's cancellations to see if that reason shrinks.

Advertisement