How do you measure churn when customers never formally cancel?
You define it with an explicit window and admit it is a modeling choice. Two definitions are workable and they should be reported separately. Contract churn covers memberships or agreements that lapsed or were not renewed, and it has a real event behind it. Behavioral churn means no completed job within a period longer than the expected service interval, and it has no event at all. Mixing them produces a number nobody can act on.
Two churn numbers, two owners
Contract churn is unambiguous. An agreement had a renewal date and it either renewed or it did not. It belongs to whoever owns the membership program, it can be measured weekly, and it responds to specific interventions like renewal outreach and payment failure recovery.
Behavioral churn is inferred. Nobody told you they left. It belongs to whoever owns the customer base as a whole, it can only be measured with a lag, and it responds to slower things like service quality and technician consistency. Reporting them as one number gives you a metric that neither person can move.
The window is a decision, so write it down
There is no correct behavioral churn window, only defensible ones. What makes a definition defensible is that it is derived from your own return-gap distribution rather than picked because twelve months is a round number, and that it is documented somewhere people can find it.
The practical requirement is stability. Changing the window changes the churn rate without anything happening in the business, so if you do change it, restate history on the new definition or every trend line becomes fiction.
Behavioral churn is always retrospective
If your window is eighteen months, today's churn rate describes customers whose last job was eighteen months ago. You cannot know this month's churn this month, and any dashboard that appears to show it is showing you something else.
This maturation lag is the main reason behavioral churn is a poor operating metric. It is a good strategic one, and a bad one for a weekly meeting.
Churn risk beats churn rate
The version operators can actually use is not a rate at all. It is a ranked list of accounts approaching their threshold, sorted by value, with the specific reason each one is on the list: a callback that was never resolved, a membership payment that failed, an estimate that went cold, a location that has gone quiet inside an otherwise healthy account.
That list is forward-looking and assignable, which a rate never is. Producing it requires joining job history, agreement status and interaction records into one view, and then keeping it current, which is the ordinary work of systems integration rather than anything exotic. Once it exists, pushing it to the right people every morning is what daily intelligence briefs are for.
Topics: churn · retention · metrics · memberships
Have a version of this question about your own business?
The useful answer usually depends on which systems you run and how they're connected. That's a conversation, not a blog post.