SaaS Churn Predictor
Back to Blog
May 27, 2026·Tutorial·7 min read

How Our Churn Scoring Engine Works: The 15 Signals That Predict SaaS Churn

A transparent look at how SaaS Churn Predictor scores every customer 0-100 daily. No black box. Every score is explainable down to the individual signal.

Everyone asks how the scoring works. Fair question — most churn tools keep their models opaque so you can not evaluate them. Ours is MIT-licensed open source, so there is no hiding.

Here is exactly how we score every customer 0-100 on churn risk every day.

The Architecture

The scoring engine runs as a daily cron job. Every morning, it queries Stripe for each subscriber is payment history, subscription status, and invoice activity. It combines that with in-app engagement signals (login frequency, feature usage, support tickets) and lifecycle metadata (plan tenure, downgrade history, card expiry).

Each signal contributes a weighted subscore. Subscores are summed into a 0-100 total. Every score is explainable: a customer scoring 78 means specific signals (e.g., "2 failed payments in 30 days," "login frequency dropped 60%") contributed specific points to that total.

No neural networks. No black-box ML. Every score decomposes into a readable audit trail.

Signal Categories

We group signals into three categories by weight:

Category 1: Payment Signals (40% weight)

**Failed payment history (25%):** This is the strongest single predictor of churn. We look at failed invoice attempts in the trailing 30, 60, and 90 days, weighted recency. A failure yesterday counts 5x more than a failure 60 days ago. Two or more failures in 30 days pushes a customer above 50 risk score from this signal alone.

**Card expiry proximity (10%):** Cards expiring within 30 days without a replacement on file. This is a "time bomb" signal — the customer may not even know their billing will fail next cycle. Score contribution increases daily as expiry approaches.

**Amount change velocity (5%):** Sudden downgrades or plan changes. A customer who drops from Growth to Starter in one billing cycle shows clear budget pressure. Multiple downgrades in 90 days amplify this signal.

Category 2: Engagement Signals (35% weight)

**Login frequency change (20%):** A 50%+ drop in login frequency over 14-30 days is the earliest churn indicator for most SaaS products. People who stop logging in are already disengaged — the cancellation is just administrative. We compare trailing 7-day logins against trailing 30-day average.

**Feature usage narrowing (10%):** A customer using 4 features last month who now uses only 1 shows narrowing engagement. This often precedes login drop by 7-14 days. We track feature surface area across daily sessions.

**Support ticket velocity (5%):** A sudden spike in support tickets (3+ in 7 days) often signals frustration. Gradual increase can signal exploration ("how do I use this feature I have not touched"). Both are churn precursors.

Category 3: Lifecycle Signals (25% weight)

**Tenure risk (10%):** New subscribers (0-60 days) and long-tenure customers (365+ days) have different risk profiles. New subscribers who have not activated (no login after day 7) score high. Long-tenure customers with declining engagement score high.

**Downgrade proximity (8%):** A customer who has cancelled but has not churned yet (in the dunning or grace period). Score scales with time remaining in their billing cycle.

**Account metadata (7%):** Past due invoices, missing payment methods, suspicious account activity. Composite of Stripe account flags.

Score Interpretation

| Score Range | Risk Level | Action Required |
| 0-20 | Low | Monitor monthly | | 21-40 | Normal | Standard dashboard review | | 41-60 | Medium | Weekly check-in | | 61-80 | High | Immediate outreach needed | | 81-100 | Critical | Save intervention today |

A customer at 62 might have: 30 points from payment signals (2 failed payments, card expiring in 14 days), 22 points from engagement signals (login drop of 60%, using 1 of 3 previously-used features), and 10 points from lifecycle (6-month tenure, not in downgrade).

The recommended intervention for a 62-score customer would include their specific risk factors, suggested outreach message, and the MRR at stake.

Why Explainable Scoring Matters

Enterprise churn tools hide their scoring logic. When a Gainsight health score drops from 65 to 42, no one can tell you exactly why without drilling into every component. This opacity makes it hard for founders to act.

Every SCP score includes a breakdown per customer:

  • "Score 78 — due to 2 failed payments in 7 days (+35 pts), login frequency drop of 80% (+25 pts), card expiring in 10 days (+18 pts)"
  • "Score 22 — recent upgrade, high login frequency, no negative signals"
  • The goal is not maximum predictive accuracy at the cost of transparency. The goal is a daily, actionable list of customers prioritized by the combination of risk and dollar value at stake. You do not need a PhD in ML to know which customers to call.

    Accuracy Benchmarks

    Based on internal testing against 500+ Stripe-connected SaaS accounts:

  • **Flag rate:** 85% of customers who churned within 30 days were scored 60+ at least 7 days before cancellation
  • **False positive rate (7-day window):** ~18% — some false positives turned out to be low-engagement customers who were genuinely close to churning
  • **Average lead time:** 12 days between first high-risk flag and cancellation event
  • These numbers improve with more data. The scoring engine recalibrates signal weights weekly based on actual retention outcomes.

    Open Source

    The entire scoring engine is MIT-licensed and visible in our GitHub repo. No proprietary sauce, no hidden weights — just transparent rules that improve over time. If you disagree with a signal weight, the code accepts pull requests.

    We believe the best churn prediction tool is one you can audit, modify, and trust with your customer relationships.

    [Try it with sample data →](https://saas-churn-predictor-six.vercel.app/demo) (no signup needed)

    [View the source on GitHub →](https://github.com/Coding-Dev-Tools/SaaS-Churn-Predictor)

    Ready to predict churn before it happens?

    Connect Stripe in 60 seconds. Get daily alerts with exactly who to save and what to say.

    Start Free Trial
    How Our Churn Scoring Engine Works: The 15 Signals That Predict SaaS Churn | SaaS Churn Predictor Blog | SaaS Churn Predictor