Customer health score automation for hosting suspension
Learn how to build a customer health score that weighs payment history, support interactions, and service usage, so you suspend only accounts that are truly at risk — and warn the rest before it's too late.
If you run a hosting business, you know the pain of suspending a customer who simply forgot to update their card, only to lose them to a competitor. Or the opposite: you keep a non-paying account alive for weeks, hoping they'll pay, while they cost you money in support time and server resources. The fix is a customer health score — a single number that tells you how likely an account is to churn or become a liability. By automating suspension with a health score that factors in payment history, support interactions, and service usage, you can trigger warnings only when an account is truly at risk, saving you from false alarms and missed red flags.
Teculiar is a hosting automation platform that helps resellers build and manage their hosting business, and this approach fits naturally into the way you can automate your operations.
What is a customer health score and why does it matter for hosting?
A customer health score is a numeric value (usually 0–100) that summarizes how "healthy" an account is. In hosting, it combines signals from three areas: payment history, support interactions, and service usage. A high score means the customer is paying on time, rarely needs help, and uses resources within their plan. A low score means they're overdue, filing frequent tickets, or consuming resources far beyond what they pay for.
Why does this matter? Because suspension is a blunt instrument. If you suspend based on a single trigger (e.g., 7 days past due), you'll catch some deadbeats but also punish good customers who hit a rough patch. A health score lets you set different thresholds: warn at 60, suspend at 30, for example. You can also automate the warning emails and suspension actions, so your business runs without constant manual checks.
How do you calculate a health score from payment, support, and usage data?
Start by assigning weights to each category, then normalize the data into a 0–100 scale. Here's a simple model you can adapt:
- Payment history (40% weight): Track days past due, frequency of late payments, and payment method failures. For example, a customer who is 0 days past due gets 100 points; 1–3 days past due gets 70; 4–7 gets 40; more than 7 gets 0. Add penalties for repeated late payments.
- Support interactions (30% weight): Count tickets opened in the last 30 days, average response time, and sentiment (if you can classify it). Fewer tickets and faster resolutions mean higher scores. A customer with 0 tickets gets 100; 1–2 gets 80; 3–5 gets 50; 6+ gets 20.
- Service usage (30% weight): Compare actual resource usage (CPU, RAM, disk, bandwidth) against the plan limits. Staying under 80% of limits is healthy; exceeding 100% for more than a few days is a red flag. Also factor in uptime and whether the account is actively used (logins, emails sent).
Combine them with the weights: health = (payment_score × 0.4) + (support_score × 0.3) + (usage_score × 0.3). That gives you a number you can use.
What thresholds should you set for warnings and suspension?
There's no one-size-fits-all, but a common pattern is:
- Green zone (75–100): No action needed. Maybe send a friendly renewal reminder a week before due date.
- Yellow zone (50–74): Send a warning email. For example, "We noticed your payment is overdue and your usage is high — here's how to update your card." Offer a grace period.
- Red zone (0–49): Automatically suspend after a final notice, or apply a temporary restriction (e.g., disable outbound email but keep the site up).
You should also set time-based rules. For instance, if a customer is in the red zone for 3 consecutive days, suspend. If they're in the yellow zone for 14 days, escalate. The key is to avoid instant suspension on a single missed payment — that's what a health score prevents.
How do you automate the warnings and suspension process?
Automation is where the health score becomes powerful. In your hosting management system (like WHMCS, FOSSBilling, or Teculiar), you can set up scheduled tasks that recalculate health scores daily and trigger actions based on thresholds.
Here's a step-by-step approach:
- Collect data: Pull payment records, support tickets, and resource usage from your billing and server management APIs.
- Calculate scores: Run a script (e.g., PHP or Python) that computes the health score for each account.
- Define rules: Set conditions like "if health < 50 and days_past_due > 3, send warning email" or "if health < 30, suspend account."
- Send notifications: Use email templates that explain why the account is at risk and what the customer can do to fix it.
- Execute suspension: When a threshold is met, automatically suspend the account via your control panel or provisioning module, and notify the customer with a clear path to reactivation.
If you're using a platform like Teculiar, you can build these automations with its API and webhooks, or use built-in automation features if available. The point is to make the process hands-off, so you only step in for edge cases.
What are the common pitfalls and how do you avoid them?
Even with a health score, mistakes happen. Here are three pitfalls to avoid:
- Overweighting one factor: If you give payment history 90% weight, you're back to the old problem. Balance the three areas.
- Ignoring false positives: A customer might have a high usage score because they're running a legitimate backup job. Build in a review process for automated suspensions — e.g., a 24-hour grace period before final action.
- Not updating scores: Health scores should be recalculated daily, not weekly. A customer who pays on day 6 but was at risk on day 5 should be taken off the warning list quickly.
Also, be transparent with customers. Let them know what triggers warnings and suspensions, so they can act before it happens. This reduces disputes and churn.
What should you do next?
Start by mapping your current data sources. List the payment, support, and usage metrics you already track, then build a simple spreadsheet model of the health score. Once you're happy with the logic, implement it in your billing system or automation platform. If you're using a platform like Teculiar, check its pricing page to see if automation features are included. Then test with a few accounts before rolling out to everyone.
Automating suspension with a customer health score is not just about saving money — it's about building a fairer, more efficient business. You'll keep good customers, cut losses on bad ones, and spend less time on manual review.
Next, review your current suspension policy and see where a health score could improve it.