North Metric

    Churn risk, without a CS team.

    The warning signs in Stripe billing and product usage, and how to rank at-risk customers so the biggest ones get your time first.

    North MetricResearch
    GUIDE · CHURN RISK
    IN SHORTChurn risk is the likelihood that a paying customer cancels or stops paying soon. You spot it in two places: billing signals in Stripe, such as failed payments, plan cuts and scheduled cancels, and usage signals, such as falling activity. Rank at-risk customers by money at risk, so the largest accounts get your attention first.

    How to identify at-risk customers before they churn

    An at-risk customer is one whose behavior has changed in a way that usually comes before leaving. To find them, compare each customer with their own past, not with your average customer. A team that has always logged in twice a week is fine at twice a week. A team that went from daily to twice a week is telling you something.

    Ask three questions about every paying customer:

    • Is the money still coming in? A failed payment, an open invoice, or a card that expires before the next charge.
    • Are they paying for less? Fewer seats, a lower plan or a smaller usage bill.
    • Are they still using it? Fewer active days, no recent use of the thing they pay you for, or features dropped.

    Customers rarely leave in one step. They leave quietly: seats cut, logins fall, then the cancel. So one signal on its own is a reason to look, and two or more together are a reason to act.

    Write down a reason with a date for every customer you flag, for example "removed 3 seats on Sep 12" or "no reports sent since Aug 30." A reason you can read beats a number you can't explain, and it tells you what to say when you reach out.

    How to predict customer churn without a data team

    You don't need a model to start. A simple points-based score, checked against customers who already left, gets a small team most of the way there, and it fits in a spreadsheet.

    1. List your recent leavers. Export canceled subscriptions from Stripe for the past year. For each one, note what changed in the weeks before the cancel: payments, seats, plan and usage.
    2. Find the signals that repeat. Count how often each signal appears among leavers, then among customers who stayed. A signal common to both is noise. One that shows up mostly among leavers earns points.
    3. Score every customer from 0 to 100. Give each signal points by how well it separated leavers from stayers. Let a scheduled cancel or an unrecovered failed payment put a customer straight at the top, whatever else is true.
    4. Test it honestly. Score last year's customers as they looked a month before each cancel. Count how many leavers the score would have flagged, and how many customers it flagged who stayed. Both numbers matter: a list full of false alarms gets ignored.
    5. Review it weekly. Work the top of the list, then adjust the points when the list surprises you.

    Before you start, run your numbers through a churn rate calculator, so you know how many customers you lose in a typical month and how many a good list should catch.

    If you'd rather not maintain the sheet, churn prediction software does the same work from your Stripe data. North Metric gives every paying customer a 0–100 risk score, a level (Likely, Possible or Safe) and up to three reasons, each with data and dates.

    See money at risk in your own Stripe, and the first five customers to act on.

    Get your free churn reportActions off until you turn them on

    Warning signs in Stripe billing

    Stripe already holds the strongest churn signals. They sit on different objects, so they're easy to miss. These are the ones to watch:

    SignalWhere it shows in StripeWhat it tells you
    Cancel scheduledcancel_at_period_end is true, or cancel_at is setThe decision is made. You have until the period ends.
    Failed paymentinvoice.payment_failed, subscription past_dueOften a card problem, not a decision
    Hard declineCodes such as lost_card, stolen_card, incorrect_numberStripe can't retry without a new card
    Seats or plan cutLower quantity or a cheaper price on the subscriptionContraction often comes before a cancel
    Discount endingThe end date on a repeating discountThe price goes up, and the customer notices
    Card expiringCard expiry date before the next chargeA failed payment waiting to happen

    Failed payments need care. Stripe can retry them for you: its recommended default for Smart Retries is 8 tries within 2 weeks (Stripe docs, checked Oct 18, 2026). Two cases fall through. Stripe doesn't retry a hard decline until the customer adds a new payment method, and it doesn't retry when there is no payment method on file. Those customers need a personal note from you straight away. Everyone else needs a note when Stripe's retries end, not while they are still running.

    Two quieter signs are worth a look. New customers who never got set up are a known risk, so watch the first few billing cycles closely. And when someone does cancel, read cancellation_details.feedback. If you collect a cancel reason, Stripe stores the customer's choice there, such as too_expensive, unused or missing_features. Totaled over time, those reasons show you which kind of churn you have.

    Warning signs in product usage

    Usage moves before billing does. A customer who stopped working in your product keeps paying until someone notices the charge, which is why usage gives you the earliest warning. Watch three things per account:

    • Active days falling. Fewer days with real activity, compared with the account's own recent weeks.
    • The core action stopping. The one thing they pay you for, such as sending invoices or running reports, hasn't happened in longer than usual.
    • Features dropped. A feature they used every week has gone quiet, or an integration was disconnected.

    Match the source to how each customer pays. On flat or seat plans, usage lives in your product: event tracking such as PostHog, or your own database. On usage-billed plans that run on Stripe's Billing Meters, usage is already in Stripe, and a fading customer shows up as metered usage falling before the invoice shrinks. Hybrid plans need both, because the platform fee can stay flat while the usage part fades.

    Two cautions. Measure per account, not per user: on a B2B plan, one person going quiet matters less than the whole team going quiet. And allow for seasons: a drop in a month that is always quiet for your customers isn't a warning on its own.

    The guide to churn indicators covers how to measure each of these signs.

    Rank by money at risk

    A list sorted by risk alone sends you to the wrong customers, because the customer most likely to leave is often a small one. Sort by MRR multiplied by risk score instead, so a large account that is slipping comes before a tiny account that is nearly gone.

    Example: three at-risk customers, with the risk score taken as a share of 100.

    CustomerMRRRisk scoreRisk-weighted MRR
    Customer A$2.4K/mo45$1,080/mo
    Customer B$800/mo70$560/mo
    Customer C$90/mo90$81/mo

    Sorted by risk, Customer C comes first. Sorted by money at risk, Customer A does, and that is where an hour of your time does the most good.

    Then match the move to the customer. Ask two questions: is this customer valuable, and why are they at risk? A simple line for valuable is your median MRR. A valuable customer whose usage dropped gets a short personal note from you with one question. One with a failed card gets a card-update note once Stripe's retries end. One who scheduled a cancel gets a save email before the period ends. A low-value customer who is barely using the product may need nothing at all.

    This is the list North Metric keeps for you: every paying Stripe customer ranked by MRR × risk score, and a drafted move for each one at risk that you approve, or rules you set once.

    Whatever you use, keep a short log of who you contacted and what happened. Better still, leave a small comparison group of similar at-risk customers alone. That is how you tell money kept because of your moves from money that would have stayed anyway.

    Free churn report0% readGet your free churn report →
    01FAQ

    Fair questions.Straight answers.

    A change that usually comes before leaving: a scheduled cancel, a failed payment that isn't recovered, fewer seats or a lower plan, or usage falling against their own past. One signal is a reason to look. Two or more together are a reason to act.

    Keep reading

    churn-indicators
    GUIDES

    SaaS churn indicators: signs in product usage

    active days, the last core action and features dropped, the usage signs that come before a cancel.
    customer-health-score
    GUIDES

    Customer health score: build one from Stripe data

    which metrics to use, how to weight them, and when a risk score ranked by money works better.
    reduce-saas-churn
    GUIDES

    How to reduce SaaS churn without a CS team

    where churn comes from, which customers to save first, and how to tell which moves worked.
    FREE CHURN REPORT

    See who is at riskin your Stripe.

    Actions off until you turn them on