Skip to main content

How Does Churn.io Calculate Save Rate?

A
Written by Andreas H

Your save rate is the single most important number on your dashboard: it tells you what share of customers who tried to cancel were kept on board by your cancel flow. This article explains exactly how Churn.io works out that number, what counts toward it, and how the date range and filters affect it.

The formula

Churn.io calculates your save rate like this:

Save rate = Customers saved ÷ Total sessions × 100

The result is shown as a percentage, rounded to one decimal place (for example, 42.5%). If there are no sessions in the period you are looking at, the save rate is shown as 0% rather than an error.

What counts as a session

A session is created every time a customer triggers your cancel flow — that is, every time someone starts the cancellation process and your widget or hosted cancel page steps in. Each cancellation attempt is one session, and every session ends up in one of these states:

  • Saved — the customer accepted one of your retention offers (such as a pause, a discount, a trial extension, or a free month) and stayed.

  • Cancelled — the customer went through with the cancellation despite the flow.

  • Abandoned — the customer left the flow without making a decision, or closed it.

  • In progress — the customer is still inside the flow and hasn't reached a decision yet.

Only sessions marked Saved count as "customers saved" in the formula. Every session in the period counts toward the total, including those that were cancelled, abandoned, or still in progress.

💡 Tip

Because the total includes abandoned and in-progress sessions, your save rate is a conservative figure. As stale in-progress sessions settle into a final state over time, your reported rate for a past period can shift slightly.

What makes a session "saved"

A session is counted as saved the moment a customer accepts an offer inside the flow. The offer can be any of the retention options you've configured — pausing the subscription, applying a discount, extending a trial, granting a free month, booking a call, and so on.

If the customer declines every offer and confirms the cancellation, the session is counted as cancelled. If they simply close the flow or walk away, it's treated as abandoned. Neither of those adds to your customers-saved figure.

How the date range and filters affect it

The save rate is always calculated over the sessions inside the time range you're viewing. When you change the date range on your dashboard, both the customers-saved count and the total session count are recalculated for that window, so the percentage updates to match.

The same applies to any filters you've set — such as a specific flow. The save rate reflects only the sessions that match what you're currently looking at.

Save rate per flow

On the Flow performance view, each flow has its own save rate. This works the same way, but scoped to a single flow:

Flow save rate = Sessions saved by that flow ÷ Sessions shown by that flow × 100

This lets you compare how effectively each of your flows retains customers, so you can tell which one is doing the heavy lifting and which might need reworking.

⚠️ You need data first

Your save rate only becomes meaningful once real customers have passed through your cancel flow. Until you've connected your billing platform and your flow has started recording sessions, the dashboard shows an empty state instead of a rate.

Did this answer your question?