Every ISP knows churn is expensive. Acquiring a replacement subscriber costs five to seven times what it costs to keep an existing one. What most operators miss is that the data needed to predict churn - weeks before it happens - is already flowing through their monitoring stack.

You're collecting device health, interface errors, support history, and uptime for operational reasons. The same telemetry is a remarkably good early-warning system for accounts about to leave. Here's how to read it.

The signal you already have

A subscriber rarely churns on a whim. The decision builds over weeks of small frustrations: intermittent drops at 8 p.m., a support ticket that took three days, a speed that quietly degraded after a line fault. By the time someone calls to cancel, the data has been screaming for a month.

The problem isn't a lack of data - it's that the data lives in silos. Device metrics in the NOC, tickets in the helpdesk, payments in billing. None of them talk. The churn signal only appears when you put them side by side.

Rule of thumb: if a subscriber's experience degrades for three consecutive weeks while support contact rises, treat them as at-risk - regardless of whether they've complained. Silent churners are the ones you lose.

Three sources that predict churn

You don't need a data-science team to start. Three signals, pulled from systems you already run, cover the overwhelming majority of at-risk accounts.

1. Device health degradation

A CPE that's slowly getting worse - rising packet loss, climbing CPU, flapping interfaces, falling signal - is the clearest leading indicator there is. A clean device that suddenly degrades is a ticket waiting to happen. Trend it over time, not just instantaneously.

2. Support ticket velocity

One ticket is noise. Three tickets in thirty days from the same account, especially repeat issues, is a customer running out of patience. Weight repeat-and-reopened tickets heavily - they signal you failed to fix it the first time.

3. Uptime and SLA breaches

Track per-subscriber uptime against what they're paying for. An account on a premium plan seeing 98.5% when they were sold 99.9% is a churn risk and a refund dispute. These are the easiest wins because the fix is operational, not relational.

churn_score.sqlSQL
-- composite churn-risk score per subscriber, last 30 days
SELECT s.subscriber_id,
  ROUND(
      0.45 * health_decline      -- device trend (0-1)
    + 0.35 * ticket_velocity     -- normalized ticket rate
    + 0.20 * sla_breach_ratio,   -- uptime vs. plan
  3) AS churn_risk
FROM subscribers s
JOIN device_health_30d  USING (subscriber_id)
JOIN ticket_metrics_30d USING (subscriber_id)
JOIN sla_metrics_30d    USING (subscriber_id)
WHERE churn_risk > 0.6
ORDER BY churn_risk DESC;

Building a churn score

Combine the three into a single 0-1 score and you get a ranked list of who to call this week. The exact weights matter less than consistency - pick a starting split, watch which flagged accounts actually churn, and adjust. We started at 45 / 35 / 20 and barely moved it.

The accounts most likely to leave are almost never the loudest. They're the quiet ones whose line quietly got worse while nobody was looking.- From the Centipid NOC playbook

Recompute the score nightly. Push anything over your threshold into a retention queue with the reason attached - "signal degraded 3 weeks" is actionable; a bare risk number is not.

Don't automate the outreach. A churn score should route a human to make a call, not trigger a generic "we miss you" email. Subscribers can smell an automated retention play, and it accelerates the exit.

Acting before they leave

The score is worthless without a workflow behind it. What's worked for operators running Centipid:

  1. Fix the technical cause first. If the score is health-driven, dispatch or remote-fix before any conversation. Solving the actual problem retains better than any discount.
  2. Call, don't email. A proactive "we noticed your line's been unstable, we've already fixed it" call flips a frustrated subscriber into a loyal one.
  3. Close the loop in the data. Mark the intervention and outcome so your score learns which signals actually predicted churn.

What it's worth

Operators who run this loop consistently see the needle move within a quarter. The numbers below are typical of a mid-size WISP after two billing cycles of proactive retention.

-31%
Voluntary churn
3.2x
Issues fixed pre-complaint
+18%
Net revenue retention
MONTHLY VOLUNTARY CHURNPRE / POST
// Voluntary churn rate before and after proactive retention, 6 billing cycles

None of this requires new infrastructure. If you're already monitoring devices, logging tickets, and tracking uptime, you have everything you need to start scoring churn this week. The platform you bought to keep the network up turns out to be the best tool you have for keeping customers, too.

#churn#retention#isp-ops#monitoring