Cost and comparison

Are discount save offers worth it?

A discount save offer is worth it only if the revenue it wins back, after your margin, is larger than what the offer costs. The test is net revenue per customer in a treated group against a group left alone. A high save rate on its own proves nothing, because you can save many customers and still lose money.

What is a save offer?

It is something you give a customer at the moment they try to cancel, to change their mind: a discount, a pause, a lower tier, a one-time credit. The aim is to keep a paying customer. The risk is that you pay for customers who would have stayed anyway, or who stay only while the discount lasts.

That is why I treat every offer as a cost to be measured, not as a casual gesture. Each one has a price, and the price comes out of margin.

How do I check the arithmetic of one offer?

Write down four numbers before you launch it:

  1. What the offer costs per customer who accepts it.
  2. The monthly value of the customer you would keep, at list price times quantity.
  3. Your gross margin on that revenue.
  4. How many months you can count on the customer staying.

The offer pays off when value times margin times months is larger than the cost. The fourth number is the weak one. I do not have a source for how long a saved customer stays, and I would not borrow one. Use your own history, or run the test and see.

Why is a save rate a misleading number?

Because it ignores who you gave the offer to and what it cost. If you show a discount to every cancelling customer, many of them would have stayed for a pause or would have left no matter what. The save rate counts them all as wins. The bill counts them all as costs.

The number I trust is net revenue per customer: revenue times margin, minus the cost of the offers. It is the same measure my pilot is paid on. If an offer wins back customers but net revenue per customer in the treated group is not higher than in the control group, the offer did not earn its keep.

Which offers fit which reason?

Matching the lever to the stated reason keeps cost down:

A discount shown to everyone is the worst fit, because it spends margin on customers who needed nothing. That is the case for asking first. I describe the design in how to build a reason-first cancel flow.

What does Stripe let me see?

Stripe shows discounts that started and collections that were paused. In my method, a save is visible when one of them happened within 45 days before the cancellation. It cannot see an offer made by email, in a chat window or by your support team. So the count of "cancellations with no visible save" is an upper bound.

It also cannot show what the saved customer would have done otherwise. For that you need a comparison group.

What is a unit-economics check?

It is a rule applied before any offer is sent: if the offer costs more than it can win back, it does not go out. In my pilot, every offer passes that check. The cost is compared with the expected win-back at the customer's margin. I add it because it is easy to forget this when the metric on the dashboard is the save rate.

Do the same by hand: before you send an offer, do the arithmetic for a typical customer on the plan. If it only works when everything goes right, it will not work.

How should I test an offer?

Split customers at random. One group gets the new offer, the other gets nothing new. Keep the split fixed for the whole test, because changing who gets the message halfway makes the comparison meaningless. Decide the metric first. Then wait until each group has enough events. With fewer than about 30 events in a group, the result is an early signal, not a verdict.

I use a 20% control group chosen by a stable hash of the customer id. The method is in what a holdout group is.

What if the offer works but only for a while?

Then your test window was too short. A discounted customer who stays three months and leaves when the price returns is not a long-term save. I run a pilot for 90 days, and I would not draw conclusions from the first two weeks. If your billing cycles are long, a longer window may be needed. Write down the window before you start.

Where does a report help?

It tells you how large the voluntary cancellation leak is in your account, in dollars per month, and how much of it shows no visible save. That is the ceiling on what an offer could win back. The number is not a promise: it is the most the offer could address. The Revenue Leak Report costs $490, arrives within 48 hours of my having a restricted read-only Stripe key, and shows this next to the other leaks.

If you would rather see the layout first, the sample report uses a fictional company and synthetic data.

Want your own numbers?

The Revenue Leak Report puts failed payments, unconverted trials, cancellations and downgrades in dollars per month, read from a restricted read-only Stripe key. $490, delivered within 48 hours of receiving the key. Nothing in your account is changed.

Get the Revenue Leak Report - $490 See a sample (synthetic data)