How it works

From Stripe key to churn intelligence

ChurnHalt connects to your Stripe account with read-only access, analyses your subscription history to build a churn profile, then scores every active subscriber for cancellation risk. Here's exactly how each step works.

What data we read from Stripe

When you connect your Stripe account, we pull two types of data: subscriptions and invoices. That's it. We don't touch customers, products, payment methods, or anything else.

Subscription data

For every subscription (active, cancelled, past due, trialling), we store:

Plan name and price
Billing interval (monthly/yearly)
Current status
Start date and cancellation date
Cancellation reason and feedback
Whether a trial was used
Whether a coupon was applied
Tenure in months
Whether the subscriber previously downgraded

Invoice data

For every invoice tied to a subscription, we store:

Invoice amount
Payment status (paid, failed, void)
Number of payment attempts
Invoice date

No customer PII is stored during sync

Customer names and emails are only fetched on-demand when you view an individual subscriber. They're never stored in bulk or used in analysis.

What "read-only" means, technically

ChurnHalt uses a Stripe restricted API key, not a full-access key or OAuth connection. You create this key yourself in your Stripe dashboard with exactly four permissions:

Customers

Read only

Subscriptions

Read only

Invoices

Read only

Charges

Read only

Everything else in Stripe — payment methods, refunds, transfers, products, pricing, webhooks — is set to "None". The key physically cannot create, update, or delete anything.

Before we accept a key, we verify it's restricted and that it only has read permissions. If someone accidentally pastes a secret key (sk_live_), we reject it and explain why.

Your key is encrypted at rest using AES-256. You can revoke it at any time from your Stripe dashboard — no need to contact us. Once revoked, all syncs stop immediately.

How the churn profile is built

Once your data is synced, ChurnHalt analyses every cancelled subscription to build a statistical profile of your churn patterns. This isn't generic benchmarking — it's specific to your business.

The churn profile answers the questions most SaaS founders are guessing at:

Overall churn rate What percentage of your total subscribers have cancelled
Average tenure at churn How many months the typical customer stays before cancelling
Median tenure at churn The midpoint — less skewed by outliers than the average
Plan-by-plan churn rates Which plans lose customers fastest (e.g., Starter at 34% vs Pro at 18%)
Coupon correlation Whether customers who signed up with a discount churn at a higher rate
Trial correlation Whether trial users convert and retain differently from direct signups
Failed payment correlation What percentage of churned customers had payment failures before cancelling
Monthly churn trends How your churn rate has changed month over month
Cancellation reasons Breakdown of why customers say they're leaving (from Stripe's feedback data)
Revenue at risk The MRR currently tied to subscribers who've been flagged as at-risk

The profile is rebuilt after every sync, so it always reflects your current data. As your business evolves, the analysis stays up to date automatically.

How risk scoring works

Every active monthly subscriber is scored on a scale of 0–100 based on how closely they match the patterns of customers who've already churned. The score is a weighted combination of six signals:

Tenure risk

30%

Is this subscriber approaching the month where your average customer cancels? If your typical churn happens at month 4, a subscriber at month 3.5 scores high here.

Payment failure risk

20%

Has this subscriber had failed payments — especially within the first 60 days? Early payment failures are a strong predictor of cancellation.

Plan risk

20%

Is this subscriber on a plan that has an above-average churn rate? If your Starter plan loses 34% of customers while Pro loses 18%, Starter subscribers score higher.

Coupon risk

15%

Did this subscriber sign up with a discount code? If couponed customers churn at a higher rate in your data, this adds to the score.

Downgrade risk

10%

Has this subscriber previously downgraded their plan? Downgrades often precede full cancellation.

Past due risk

5%

Is this subscriber currently past due on a payment? A direct signal that the subscription is at risk.

Risk levels and what they mean

The combined score maps to three risk levels, each with specific recommended actions:

High risk 60–100

Personal check-in recommended. Reach out directly — a founder email about payment issues or an offer to switch to annual billing can make the difference.

Medium risk 30–59

Feature nudge email. These subscribers may not be getting full value from the product. A targeted email highlighting underused features can re-engage them.

Low risk 0–29

Leave alone. These subscribers are healthy. Don't discount them unnecessarily or overload them with retention emails — that can actually increase churn.

Each flagged subscriber also gets a list of specific risk factors (e.g., "At 4.2 months — your average churned customer leaves at 4.2 months") so you know exactly why they scored the way they did.

How daily syncs work

ChurnHalt doesn't just analyse a snapshot and walk away. Your data is synced automatically every day to keep your churn profile and risk scores current.

What happens during each sync

  1. 1

    Pull latest data

    We fetch all subscriptions and invoices from Stripe, including any new signups, cancellations, or status changes since the last sync.

  2. 2

    Update subscription records

    New subscriptions are added, and existing records are updated with current statuses, tenure calculations, and payment histories.

  3. 3

    Rebuild churn profile

    The churn analysis runs again with the latest data — recalculating churn rates, plan breakdowns, correlations, and trends.

  4. 4

    Re-score active subscribers

    Every active monthly subscriber is scored against the updated churn profile. Risk levels may change as new data comes in.

  5. 5

    Take a snapshot

    A time-series snapshot captures your current active count, churn rate, MRR, revenue at risk, and risk distribution — building the trend data you see on your dashboard.

  6. 6

    Alert on changes

    If a subscriber's risk level changes (e.g., medium to high), you'll know about it so you can take action.

You can also trigger a manual sync at any time from your dashboard. The entire process typically completes in under a minute, depending on the size of your subscription base.

What you can do with it

Prioritise outreach

Sort subscribers by risk score and focus your time on the ones most likely to cancel. Each flagged subscriber comes with a specific recommendation.

Spot patterns

Discover that your Starter plan churns twice as fast as Pro, or that couponed signups are 2x more likely to cancel. These insights change how you price and market.

Track trends

Daily snapshots build a trend line so you can see whether churn is improving or worsening over time — and correlate changes with product releases or pricing experiments.

Export your data

Download your subscriber list with risk scores as a CSV. Use it in your email tool, CRM, or spreadsheet — however you prefer to work.

Common questions

Can ChurnHalt modify my Stripe data?

No. The restricted API key you create has read-only permissions. ChurnHalt physically cannot create, update, or delete anything in your Stripe account.

What if I want to revoke access?

Delete the restricted key from your Stripe dashboard (Developers > API keys). Access is revoked instantly — no need to contact us.

Does it work with annual subscriptions?

ChurnHalt syncs all subscription types, but risk scoring currently focuses on monthly subscribers. Annual subscribers are included in churn profile calculations but aren't individually scored.

How quickly does the first sync complete?

Usually under a minute. For accounts with thousands of subscriptions, it may take a few minutes. You'll see your churn profile and risk scores as soon as it's done.

What happens if my Stripe key expires or is revoked?

Syncs will stop, and you'll be prompted to reconnect. Your existing data and analysis remain available until you reconnect or delete your account.

Go deeper

Explore our free tools and guides to understand your churn better:

Ready to see your churn profile?

Connect your Stripe account in 30 seconds. ChurnHalt builds your churn profile and flags at-risk subscribers — so you can act before they cancel.

We use cookies to keep you signed in and make the site work.

Analytics cookies help us understand how ChurnHalt is used so we can improve it. No ads, no third-party tracking.