Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
40rty-ai avatar

Shopify Admin Churn Risk Scorer

  • 2 installs
  • 173 repo stars
  • Updated June 26, 2026
  • 40rty-ai/shopify-admin-skills

shopify-admin-churn-risk-scorer is a Claude Code skill that scores Shopify customers by churn probability based on purchase recency, frequency decay, and expected repurchase intervals.

About

This skill analyzes a Shopify store's order history to score repeat customers by churn probability using purchase recency and average purchase interval. It computes an expected next-purchase date and classifies each customer into Active, Cooling, At Risk, or Likely Churned segments. It is read-only and exports a CSV with churn scores and estimated revenue at risk.

  • Scores customers 0-100 for churn risk from purchase recency and frequency decay
  • Computes an expected next-purchase date and flags overdue repeat customers
  • Read-only; exports a CSV segmenting Active / Cooling / At Risk / Likely Churned

Shopify Admin Churn Risk Scorer by the numbers

  • 2 all-time installs (skills.sh)
  • Ranked #1,759 of 2,064 Data Science & ML skills by installs in the Skillselion catalog
  • Data as of Aug 1, 2026 (Skillselion catalog sync)
At a glance

shopify-admin-churn-risk-scorer capabilities & compatibility

Free skill; requires an authenticated Shopify store session with read_orders and read_customers scopes.

Capabilities
churn scoring · customer segmentation · retention analysis · csv export
Works with
stripe
Use cases
data analysis
Pricing
Bring your own API key
From the docs

What shopify-admin-churn-risk-scorer says it does

Read-only: scores customers by churn probability based on purchase recency, frequency decay, and expected repurchase intervals.
SKILL.md
Calculates an expected next-purchase date for each repeat customer, then scores churn risk based on how overdue they are. Read-only — no mutations.
SKILL.md
npx skills add https://github.com/40rty-ai/shopify-admin-skills --skill shopify-admin-churn-risk-scorer

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs2
repo stars173
Last updatedJune 26, 2026
Repository40rty-ai/shopify-admin-skills

What it does

Score Shopify repeat customers by churn risk from their purchase cadence and export at-risk segments for win-back.

Who is it for?

Merchants who want to identify repeat customers who are overdue for a purchase and target them for win-back.

Skip if: One-time or guest buyers; it needs at least two orders per customer to compute a purchase interval.

When should I use this skill?

You want to rank customers by how likely they are to churn based on how overdue their next purchase is.

What you get

Each repeat customer gets a 0-100 churn score and segment, plus an estimate of annual revenue at risk.

  • CSV churn_risk_<date>.csv with churn score and risk segment per customer
  • estimate of revenue at risk

By the numbers

  • churn score on a 0-100 scale
  • 365-day default analysis window
  • 4 risk segments (Active/Cooling/At Risk/Likely Churned)

Files

SKILL.mdMarkdownGitHub ↗

Purpose

Predicts which customers are at risk of churning by analyzing their purchase patterns against their historical buying frequency. Calculates an expected next-purchase date for each repeat customer, then scores churn risk based on how overdue they are. Read-only — no mutations.

Prerequisites

  • Authenticated Shopify CLI session: shopify store auth --store <domain> --scopes read_orders,read_customers
  • API scopes: read_orders, read_customers

Parameters

ParameterTypeRequiredDefaultDescription
storestringyesStore domain
days_backintegerno365Historical window for purchase pattern analysis
min_ordersintegerno2Minimum orders to calculate purchase interval (need 2+ for frequency)
risk_thresholdfloatno1.5Multiplier of avg purchase interval before flagging as at-risk
formatstringnohumanOutput format: human or json

Safety

ℹ️ Read-only skill — no mutations are executed. Safe to run at any time.

Churn Risk Scoring Model

For each customer with min_orders or more purchases:

1. Average Purchase Interval (API) = total days between first and last order / (order_count - 1) 2. Days Since Last Order (DSLO) = today - last_order_date 3. Overdue Ratio = DSLO / API 4. Churn Risk Score (0-100):

  • Overdue ratio ≤ 1.0 → Score 0-20 (Active)
  • Overdue ratio 1.0–1.5 → Score 20-50 (Cooling)
  • Overdue ratio 1.5–2.5 → Score 50-80 (At Risk)
  • Overdue ratio > 2.5 → Score 80-100 (Likely Churned)

5. Customer Lifetime Value (CLV) = total spend / customer age in years × expected remaining years

Workflow Steps

1. OPERATION: orders — query Inputs: query: "created_at:>='<NOW - days_back days>'", first: 250, select createdAt, totalPriceSet, customer { id, email, firstName, lastName }, pagination cursor Expected output: All orders with customer association

2. Group orders by customer, calculate per customer:

  • Order dates (sorted chronologically)
  • Average purchase interval
  • Days since last order
  • Total spend
  • Order count

3. OPERATION: customers — query (enrichment) Inputs: Customer IDs for at-risk and likely-churned segments Expected output: Contact details, tags, total spend

4. Calculate churn risk score and classify into segments

5. Estimate revenue at risk = sum of (annual_spend × churn_probability) for at-risk customers

GraphQL Operations

# orders:query — validated against api_version 2025-01
query OrdersForChurnAnalysis($query: String!, $after: String) {
  orders(first: 250, after: $after, query: $query) {
    edges {
      node {
        createdAt
        totalPriceSet { shopMoney { amount currencyCode } }
        customer {
          id
          email
          firstName
          lastName
          numberOfOrders
        }
      }
    }
    pageInfo { hasNextPage endCursor }
  }
}
# customers:query — validated against api_version 2025-01
query AtRiskCustomers($ids: [ID!]!) {
  nodes(ids: $ids) {
    ... on Customer {
      id
      email
      firstName
      lastName
      totalSpentV2 { amount currencyCode }
      numberOfOrders
      tags
      createdAt
    }
  }
}

Session Tracking

Claude MUST emit the following output at each stage. This is mandatory.

On start, emit:

╔══════════════════════════════════════════════╗
║  SKILL: Churn Risk Scorer                    ║
║  Store: <store domain>                       ║
║  Started: <YYYY-MM-DD HH:MM UTC>             ║
╚══════════════════════════════════════════════╝

After each step, emit:

[N/TOTAL] <QUERY|MUTATION>  <OperationName>
          → Params: <brief summary of key inputs>
          → Result: <count or outcome>

On completion, emit:

For format: human (default):

══════════════════════════════════════════════
CHURN RISK REPORT  (<days_back> days analyzed)
  Repeat customers scored:  <n>
  ─────────────────────────────
  Active (score 0-20):      <n> (<pct>%)
  Cooling (score 20-50):    <n> (<pct>%)
  At Risk (score 50-80):    <n> (<pct>%)   ⚠️
  Likely Churned (80-100):  <n> (<pct>%)   🔴

  Revenue at risk:         $<amount>/year

  Top at-risk by value:
    <name> (<email>)  Score: <n>  Last order: <date>  Lifetime: $<n>

  Output: churn_risk_<date>.csv
══════════════════════════════════════════════

Output Format

CSV file churn_risk_<YYYY-MM-DD>.csv with columns: customer_id, email, first_name, last_name, order_count, total_spent, avg_purchase_interval_days, days_since_last_order, overdue_ratio, churn_risk_score, risk_segment, expected_annual_value

Error Handling

ErrorCauseRecovery
THROTTLEDAPI rate limit exceededWait 2 seconds, retry up to 3 times
Single-purchase customersCan't calculate intervalExclude from scoring (need 2+ orders)
Guest ordersNo customer linkageSkip — cannot build customer profile

Best Practices

  • Pair with customer-win-back skill to take action on At-Risk and Likely Churned segments.
  • Use with rfm-customer-segmentation for a more holistic view of customer health.
  • High-value churning customers (top 20% by spend) should get personalized outreach.
  • Export At-Risk segment to email marketing platform for automated win-back sequences.
  • Adjust risk_threshold based on your product type: consumables (1.3), fashion (1.5), furniture (2.0).

Related skills

FAQ

How is churn risk calculated?

It computes an overdue ratio (days since last order divided by average purchase interval) and maps it to a 0-100 score across Active, Cooling, At Risk, and Likely Churned bands.

Does it modify customer records?

No. It is a read-only skill; it exports a CSV and executes no mutations.

Data Science & MLecommercefinance

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.