sumwerk

Articles September 21, 2026

Churn signals: flag paying customers who stopped using you

By the time Stripe tells you something is wrong, it is late. A failed payment is a customer who may already have decided. A scheduled cancellation is a decision. The early signal is somewhere else: a customer who pays and no longer uses what they pay for.

Find the attribute that predicts it

You do not need a data science project. You need one or two numbers per customer that your product already knows, sent to where your revenue lives: active users in the last 30 days, projects created, reports run, whatever “using it” means for you. Send them every night.

Then cut the customer base by that number and look at the churn of the last twelve months per group. In most products one picture appears quickly:

Active users, 30 days Paying customers Churned in 12 months Churn rate
0 24 31 56 %
1 to 3 61 22 27 %
4 and more 64 6 9 %

(An invented example; the shape is typical.) The top row is the list to work on: customers who pay today and will, more likely than not, be gone within a year.

Turn the row into a rule

A finding that lives in a spreadsheet is forgotten by Friday. Make it a rule that holds every day: a paying customer whose active users in 30 days is below 1 is at risk, medium. From then on those customers stand in the same list as failed payments and scheduled cancellations, with the MRR that is in question next to them, counted once even when a customer is on the list for two reasons.

Two details matter more than they seem:

  • Nothing known is not zero. A customer for whom the number was never sent must not match “below 1”. Otherwise every integration gap looks like a churn risk.
  • Dates work too. “Last login more than 14 days ago” is often a better rule than a count, because it does not depend on the size of the customer.

Act on the change, not on the list

A list of 24 accounts is a project. One account that starts to match is a task. Have the rule raise an event when a customer begins to match, and let it create a task for the customer’s owner the same hour: “Usage dropped to zero: call before the renewal.” The customers who already matched when you wrote the rule should not set anything in motion; work through them once, as a list.

Check whether it works

After a quarter, look at the same table again. If the churn rate of the flagged group has not moved, the outreach does not work, or the signal comes too late, and you need an earlier one. If the group got smaller because customers moved down into the healthy rows, you have found the cheapest retention programme there is.

In sumwerk this is three steps: send the attribute through the API, open Segments and click “+ rule” on the row, and add an automation on “one of your own at-risk rules starts to hold”.

Connect Stripe and check your own numbers

A restricted, read-only key is all it takes. The first import runs in a few minutes; every number you see opens into the customers and Stripe references behind it.

Start free