CS · Churn and retention

Churn and risk monitoring

Who left, who is leaving and how much it weighs, with the right churn definition for each model: subscription, contract, tuition or repeat purchase.

UsageWidely used
EffortMedium
ForCS, retention and account management teams in any recurring business: subscription, contract, tuition or repeat purchase.
Source

Billing, ERP, contracts, CRM and orders

Rule

Churn defined by the billing model

Outcome

Monthly churn and risk queue with reasons

Activation

Retention queue, CRM and AI agent

What it solves

  • Monthly churn comes out with one yardstick for every team: customers, revenue, voluntary and involuntary.
  • Risks show up before the due date, with the reason, the revenue at stake and an owner.
  • Customers who stopped buying are seen before they become inactive.

Business questions it answers

Ask your agent these questions once the case is live.

What was last month's customer and revenue churn, and how much was due to failed payments?
Who is at risk today and how much revenue does that represent?
Which annual contracts expire in the next 60 days without a renewal?
Which customers are past their own purchase cycle and have not come back?
Were this quarter's cancellations from new or mature customers?
What are the main reasons for leaving and how did they change this year?

What you need

  • Billing, ERP or contract system connected to Nekt, with history
  • The churn rule for your model: contract term, billing cycle or repeat-purchase window
  • A single customer across billing, CRM and support

What you get

  • A customer x month table with status: new, active, reactivated, churn
  • Customer and revenue churn per month, split into voluntary and involuntary
  • A daily risk queue with reason, revenue and owner
  • An AI agent that explains every exit and every risk

Where to activate

Retention queue

Daily list sorted by revenue at risk, with reason, signal date and owner; it closes the loop when the customer renews or buys.

Alert to the sales rep

Each customer past their cycle goes to the rep of the last purchase in the CRM or on WhatsApp; inactive ones go to the reactivation team.

AI agent via MCP

Explains why a customer left or is at risk, with the billing, contract and contact history.

Ready to build?

The monthly base comes quickly from billing or the ERP. The work is in writing the churn rule for your model and linking CRM and billing to the same customer. The detailed view has the business rules, the pitfalls and the acceptance test. Or send everything straight to your agent with the Nekt MCP.

The problem

Churn is usually counted by the system's cancelled status, on the date someone recorded it, divided by the end-of-month base. That mixes database cleanup with real exits, makes one month look catastrophic and the next one great, and never separates who left by choice from who left because the card failed. In businesses without a contract, such as repeat purchase, churn does not even exist as an event: the customer just stops buying.

How it is usually done, and the rule

Each row is a mistake that already happened in practice.

The common wayThe rule
01
Using the system's cancelled status as the only definition.
One churn rule per billing model

Write down what churn means for your model before counting. Subscription: the customer's recurring revenue goes to zero and does not come back in the next cycle. Contract: the current contract ends without renewal, and end of life is the earlier of end date and cancellation date. Rental: the contract no longer has any rent receipt scheduled. Repeat purchase without contract: inactive after N days without buying (for example, 365), with risk well before that.

02
Counting churn on the day someone changed the status.
The churn date is the end of service, not the record

Cancellation and dropout sources record when the information was entered, not when the customer stopped. Keep both dates. In a database cleanup, billing cancels at once subscriptions that stalled months ago: close the churn at the earlier of the cancellation date and the last payment plus one cycle. Lost revenue is the last recurring value known before cancellation, because the MRR field zeroes when the subscription is cancelled.

03
Dividing cancellations by the end-of-month base, which already includes new customers.
Rate over the base at the start of the period

Monthly churn = customers in the base on the first day of the month who left during the month / base on the first day. New customers of the month stay out of the denominator. Compute it in customers and in revenue, always separately. For a quarter or year, recompute from the sums, never add monthly rates.

04
Adding a declined card and a cancellation request into the same number.
Voluntary and involuntary are different churns

Involuntary is an exit caused by a failed payment that was not recovered. An overdue invoice is not churn yet: track the cohort of subscriptions with a failure each month and count as recovered those that paid successfully within one billing cycle (30 days monthly, 90 quarterly, 1 year annual). In a real base, the recovery rate of closed months was close to 45%, so half of involuntary churn is recoverable through collection.

05
Starting with a usage score and leaving the cancellation request in a ticket.
Declared signals before inferred ones

These go straight into the queue: cancellation or downgrade request, subscription set not to renew, contract notice, confirmed overdue installment, and a long cycle (annual, semiannual) expiring within 60 days or expired up to 45 days ago without renewal. Usage and engagement signals only come in after being tested against real churns.

06
The same risk weight for every expiring contract.
Risk from the profile's own history

For renewals, an explainable score works better than arbitrary weights: risk = 100 x (1 - historical renewal rate of the profile), where the profile combines billing cycle, payment method (automatic or manual) and whether it is the customer's first long cycle. Compute the rate only with contracts that already expired and had time to renew.

07
One fixed cutoff of days without purchase for everyone.
Cadence measured against the account itself

A customer who buys without a contract is at risk after 1.5 times their own average purchase cycle, or after 270 to 365 days without buying when they bought more than once. A single purchase calls for contact 15 to 45 days later and becomes no repeat purchase between 90 and 365 days. Contact silence is also measured against the account's historical cadence, and a small base (fewer than 5 events) does not alert.

08
Adding first-month cancellations to the mature book's churn.
Early churn is a different queue

A cancellation shortly after the sale (for example, within 45 days, or 90 for large accounts) is a sales or onboarding problem, not a retention one. Flag those exits and analyze them apart. Classify the tenure of every churn in fixed bands: below 1 month, 1 to 3 months and 3 months or more.

09
Using the app's account-enabled flag as active customer.
Active, paused and enabled are not the same

An account enabled in the system is not an active customer: active means paid service in force. A delinquent customer who still has access stays in the base. Paused, frozen and onboarding are statuses of their own: the current book can be active plus onboarding plus paused, but the default answer to how many active customers uses active only. Before marking someone inactive, check the safeguards: recent purchase or billing, renewal in the next 30 days, an active-until date in the future.

10
Syncing active and inactive every day without checking the source.
A brake before writing status in bulk

If the routine writes status back to the CRM, it stops on its own when the source is stale (for example, no load for more than 30 days), when the record count dropped below expected, or when the run would deactivate more than 20% of the base. A late source makes it look like nobody bought anything.

How churn happens in each model

The rule changes with the way you charge. Write yours before counting.

Subscription (SaaS, club, app)Recurring revenue goes to zero and does not return next cyclecancel_at_period_end, non_renewing, canceled
Fixed-term contract (agency, services)Current contract ends without renewal; notice is a signal
Long prepaid cycle (annual, semiannual)Risk from 60 days before to 45 days after expiry
Enrollment and tuitionDropout or cancellation; the record date is not the real date
RentalContract with no rent receipt scheduled in the month
Repeat purchase without contract (B2B, distribution)Risk at 1.5x the average cycle; inactive after 365 days
Failed paymentInvoluntary only if not recovered within 1 cyclepast_due, unpaid
Purchase with guarantee (digital course)A refund within the guarantee is not book churn

Definitions

Start-of-month base
customers with paid service in force on the first day of the month (contract, subscription or purchase within the window)
Customer churn
customers in the start-of-month base whose service ended during the month without renewal / start-of-month base
Revenue churn
sum of the last known MRR before cancellation of the customers who left in the month / start-of-month MRR
Involuntary churn
an exit caused by a failed payment not recovered within 1 billing cycle
Recovery rate
subscriptions with a failure in the month that paid successfully within 1 cycle / subscriptions with at least one failure in the month
Early churn
an exit up to N days after the sale (for example, 45 days, or 90 for large accounts)
Reactivated
a customer who pays or buys again after leaving (in repeat purchase, after a gap of 365 days or more)
At-risk customer
an active customer with at least one declared, billing or cadence signal on the day
Revenue at risk
sum of monthly recurring revenue of the at-risk customers on the day

Pitfalls that already happened

How much we cancelled came out as zero

The sales table booked the cancellation as a negative line on the same sale. When summed, each contract's cancelled amount was zero.

Keep a dedicated cancellations table and answer from it, never from the sum of sales.

The record date became the exit date

The dropout source stored when the office recorded the withdrawal, weeks after the student stopped. Churn landed in the wrong month.

Keep the record date and, when it exists, the real end-of-service date, and say which one you use.

A database cleanup inflated one month

Subscriptions stalled for months were cancelled at once in billing, and that month's churn jumped.

Close each exit at the earlier of cancellation and last payment plus one cycle.

One customer counted several times

Groups with several CNPJs or several billing accounts showed up as several active customers and as several churns when they left.

Consolidate into the single customer (for example, the main CNPJ) before counting.

Silence alert on a small account

Accounts with little contact history fired drop alerts from a variation of one or two events.

Require a minimum history and a drop in absolute value, not only in percentage.

Lost renewal counted as churn

A renewal card marked lost in the CRM was counted as churn, even with the customer still active on another product or plan.

Churn comes from product and billing status; the renewal pipeline is a signal, not an event.

Acceptance test

The case is done when every item passes.

Agent package

Paste into Claude, ChatGPT or any client with the Nekt MCP connected.

Full Markdown
Churn and risk monitoring
- Churn follows the billing model's rule: <subscription | contract | repeat purchase>. For repeat purchase, inactive means more than <N> days without buying.
- The churn date is the effective end of service. If only a record date exists, say so in the answer.
- Churn rate = exits in the month / active base on the first day of the month. Customers and revenue always separate. For longer periods, recompute from the sums.
- Lost revenue is the last known MRR before cancellation. Zero MRR after churn does not mean a free customer.
- Separate voluntary from involuntary churn. An overdue invoice only becomes churn if it is not paid within 1 billing cycle.
- Risk comes first from declarations and billing: cancellation request, non-renewal, contract notice, overdue installment, long cycle expiring.
- Early churn (up to <N> days after the sale) is analyzed separately.
- An active customer has paid service in force. An account enabled in the system is not an active customer. Paused and onboarding are statuses of their own.
- Always report the reason, date and revenue of each exit or risk.
Client exceptions:
- <client>: contract notice period of <N> days; the notice counts as an exit request.
- <client>: product <product> excluded from churn because it is a one-off sale.

Variations

Account health score

For SaaS with product data: summed, versioned components, with usage only after it is proven against real churns.

Renewal forecast

Historical renewal rate by profile applied to expiring contracts, audited every month against actual renewals.

Reactivating inactive customers

A prioritized queue of stalled customers feeding a re-engagement pipeline, without duplicating those already in contact.