All use casesApproval DeskCustomer LifecycleOperations AssistantTransaction ReviewReorder Ranking
built by giggit · customer lifecycle analysis

What Our Best Customers Have in Common

Built for a subscription business that knew its monthly revenue but not its customers. We measured how long each kind of customer stays and what each one is worth over a year, then cut it by contract, channel, industry, size and onboarding until the profile that stays had an address. The build is live below on - business customers.

Every number on this page is computed from the records Sample records · 1,460 customers · twelve months each The measurement is the real thing
-
Still paying after 12 months
-
Customers measured
-
Median customer, first 12 months
-
Lost to churn
Cut the customers by
Who Is Still Here: Month By Month
Share of customers still paying, month 0 to month 12. Each line is a segment. The step at month 12 is where annual agreements come up for renewal.
What They Are Worth: Revenue Per Customer, First 12 Months
Mean revenue per customer in dollars. The thin line is the 10th to 90th percentile spread inside each segment. Dashed line is the average across all customers.
SegmentCustomersKept 12 moLeftMedian valueMean valueRevenue lost
The Profile: Where Staying And Paying Agree

Measured: from the records
    Hypotheses: to test, not yet proven

      Recommended Next Step

        Draft Management Brief · built from the numbers above · edit before sending

        How the numbers were measured

        What It Does

        Churn Is a Curve, Not a Rate

        One churn percentage hides when customers leave. The curve shows the first quarter doing most of the damage, long before anyone decides whether to renew.

        A Customer Is Not the Average

        Cut by contract, channel and size, the same business holds customers worth three times each other. The average describes almost nobody in it.

        One Cut Is Something You Control

        Industry and size are who walked in the door. Onboarding is what the business did next. The cut that separates the most is the one nobody chose.

        How It Was Built

        1 CLIENT SIDE What You Already Have Invoices, the CRM, the onboarding checklist 2 GIGGIT BUILT One Customer Record Start date, fee, term, channel, industry, size, onboarding 3 GIGGIT BUILT The Curve Who is still paying, month by month, per segment 4 GIGGIT BUILT Value Per Customer Twelve months of fees, with the spread inside each segment 5 OWNER KEEPS The Call Who to go after Who to hold on to What to fix first each new month of customers re-runs the measurement
        Client sideWhat you already haveInvoices, the CRM, the onboarding checklist
        Giggit builtOne customer recordStart date, fee, term, channel, industry, size, onboarding
        Giggit builtThe curveWho is still paying, month by month, per segment
        Giggit builtValue per customerTwelve months of fees, with the spread inside each segment
        Stays with the ownerThe callWho to go after, who to hold on to, what to fix first
        Explore This With Your Customer Data

        Buyer Value Radar

        A model that predicts how much each repeat buyer will spend over the next 6 and 12 months, built on real wholesale transaction data.

        How It Works

        1. A survival model scores the chance each customer is still active in each of the next 12 months.
        2. A spend model scores how much an active customer spends in that month.
        3. Multiplying the two gives an expected value for each month.
        4. Summing the first 6 and first 12 months gives the 6-month and 12-month expected value.

        Results

        Holdout Customers
        1,295
        WAPE, 6 Months
        82.8%
        WAPE, 12 Months
        68.8%
        Survival Model ROC-AUC
        0.757 to 0.811

        WAPE is weighted absolute percentage error on total spend, measured on customers the model never trained on. ROC-AUC is the survival model's range across the 12 forecast months. From metrics.json in the repo below.

        Score a Customer

        Prefilled with a real holdout customer. Change the numbers and score again.

        Customer 12352, a holdout record the model never trained on. Scores run against the live model API. Values are wholesale invoices in GBP.

        Code

        The model, the training pipeline, and the scoring service: github.com/alphan-ml/buyer-value-radar