At a glance
Predicted percentage of the active customer base that will not place another order in the next 90 days. Combines recency, frequency, and monetary signals into a single score per customer, then aggregates the at-risk cohort. On Adobe Commerce, the card runs on both consumer and B2B accounts but treats them with different cadence assumptions (B2B accounts have established PO cadences; consumer customers are more variable).
| What it counts | For each active customer (defined as: at least one order in the trailing 12 months): compute their personal RFM score and infer churn probability based on (a) days-since-last-order vs their established cadence, (b) order-frequency trend over the trailing 6 months, (c) monetary trend (rising AOV is retention-positive, declining AOV is churn-leading). Aggregate as % of base predicted to churn. |
| API field | customer_id, created_at, grand_total, customer_group_id from GET /rest/V1/orders. Customer entity attributes from GET /rest/V1/customers. B2B Company attribution via extension_attributes.company_attributes.company_id. |
| VAT / tax treatment | Monetary scoring uses grand_total (tax-inclusive on B2C, often tax-exempt on B2B). The asymmetric tax treatment is acceptable because RFM scoring is normalised within each customer’s history; the score reflects relative trend, not absolute spend. |
| Shipping inclusion | Included via grand_total. |
| Discounts | Deducted (post-promotion). A customer who switched to discount-only purchasing has lower monetary trend, raising churn probability. |
| Credit Memo refund treatment | NOT subtracted. A customer with a high refund rate may rank as low-churn-risk based on order frequency alone but should be re-scored with refund-adjusted LTV; this is a known limitation. |
state machine inclusion | All states except canceled. pending_payment is included for B2B (net-30 PO pipeline). |
pending_payment quirk | Included for B2B; an account whose orders all sit in pending_payment (broken AP) appears as actively ordering even though no money is captured. Cross-check B2B Accounts Gone Quiet for stuck-pending edge cases. |
Multi-currency grand_total vs base_grand_total | Uses base_grand_total for cross-currency normalisation in the RFM monetary dimension. |
Store View scope (store_id) | All Store Views by default. Per-Store-View variants useful for distinct shopping behaviours (UK and US consumers have different frequency norms). |
| Time window | 90D (the prediction horizon). Inputs are computed over trailing 6 to 12 months of customer history. |
| Alert trigger | >35% predicted churn. The alert intent is “the at-risk cohort has grown beyond manageable rescue capacity”. |
| Roles | owner, marketing |
Calculation
Calculated automatically from your Adobe Commerce data. See the At a glance summary above for what the metric tracks and the worked example below for a typical reading.Worked example
A homewares brand on Adobe Commerce 2.4.6 with a B2B portal Store View and consumer Store Views. Snapshot Monday 4 May 26. Active customers (at least one order in last 12 months):| Segment | Active count | Predicted to churn | Churn % |
|---|---|---|---|
| B2B Companies | 180 | 22 | 12.2% |
| B2C consumer | 9,640 | 3,180 | 33.0% |
| Blended | 9,820 | 3,202 | 32.6% |
| LTV cohort | Count | Predicted churn |
|---|---|---|
| Top 10% (>$420 LTV) | 964 active | 78 (8.1% churn) |
| Mid 60% (420) | 5,784 active | 1,840 (31.8% churn) |
| Bottom 30% (<$100 LTV) | 2,892 active | 1,262 (43.6% churn) |
| LTV bucket | Count | Predicted churn |
|---|---|---|
| Top 20 (>$50k 12m LTV) | 36 active | 2 (5.6% churn) |
| Middle 60 (50k) | 108 | 14 (13.0% churn) |
| Bottom 20 (<$5k) | 36 | 6 (16.7% churn) |
- Blended churn risk is 32.6%, just under the 35% alert threshold. Rising trend over the last 4 weeks (was 28% in early April).
- B2B churn is materially lower than consumer (12% vs 33%). Expected pattern; B2B accounts are stickier because of contracts, integration costs, and procurement workflow.
- The top-10% LTV cohort has only 8% predicted churn, meaning the most valuable consumers are sticky. Good. The bottom-30% LTV (low-value customers, often one-purchase) churn at 44%, also expected; these are typically gift-buyers or single-purpose shoppers who never re-engaged.
- The mid-60% LTV cohort is the rescue priority: 1,840 customers at risk, at 420 LTV each. A targeted retention campaign converting 15% of them (276 customers) at average LTV of 69k of saved revenue if save-rate matches industry norms (typically 12 to 20% on a well-executed win-back email).
- B2B churn priorities: 2 top-20 Companies are flagged as at-risk. Each rep 100k of preserved annual revenue if both are saved. The middle-60 cohort (14 flagged) is best routed through a Customer Success follow-up rather than direct Sales engagement.
- Cross-check with B2B Accounts Gone Quiet: 14 of the 22 B2B churn-risk accounts also appear in the silence list. The two cards agree on the priority Companies. The remaining 8 are not silent but their order-frequency trend is contracting, an earlier signal.
- Action plan: marketing runs win-back email cadence to the 1,840 mid-LTV consumer churners; Sales calls the 22 flagged B2B Companies. Re-measure churn risk in 30 days.
Sibling cards merchants should reference together
| Card | Why pair it with Customer Churn Risk |
|---|---|
| B2B Accounts Gone Quiet | The B2B-specific silence detection. Subset overlap with churn risk for B2B; the silence card is more action-oriented for individual accounts. |
| Customer Count | The active customer base (denominator). |
| Customer Trend | New vs returning trend. A churn rate that’s stable but customer count growing means new acquisition is masking churn. |
| Repeat Customer Rate | Inverse: high repeat = low churn. Useful sanity check. |
| Customer Segments | LTV cohort breakdown that this card uses for prioritisation. |
| AOV | Monetary trend dimension of RFM scoring. AOV trend per customer is one of the inputs. |
klaviyo.email_engagement | Email engagement is a leading indicator of churn; declining open rates precede order silence. |
shopify.churn_risk | Cross-platform peer for agencies. |
Reconciling against the vendor’s own dashboard
Where to look in Adobe Commerce Admin: Adobe Commerce does not have a native churn-risk score. The closest views:Reports > Customers > Customers by Number of Orders lists customers ranked by lifetime order count. A customer with 1 order in the last 12 months is a likely churner; one with 12 is unlikely.
Reports > Customers > Customers by Orders Total lists by lifetime spend. Combined with the order-count report you can manually approximate RFM scoring.For B2B (Adobe Commerce paid edition):
Customers > Companies shows per-Company order history; you can manually scan for cadence-vs-silence, but at scale this is only practical via export.For email engagement (which this card uses as a churn-leading signal indirectly):
Marketing > Newsletter Subscribers shows subscribed status. A customer who has unsubscribed is a strong churn signal but not a one-to-one mapping.Other Adobe Commerce Admin views that look relevant but are not:
- Customers > Now Online: real-time login state, not behavioural pattern.
- Reports > Customers > Wishlist: wishlist activity, weak signal.
- Reports > Sales > Coupons: coupon usage, mid-strength signal.
| Reason | Direction of divergence |
|---|---|
| Definition of “active”. Card uses 12-month-active. Admin’s customer list is all-time. | Card population smaller |
| Time-zone. Admin in Store View timezone; card in UTC. Border-day customers may shift. | Negligible at 90-day horizon |
| B2B vs consumer treatment. Card uses different cadence assumptions for each segment. Manual RFM doesn’t typically segment. | Material if your manual analysis treats both segments identically |
| Refund-adjusted LTV. Card does not subtract refunds from LTV in the monetary score (known limitation). | Card overstates LTV for high-refund customers |
| Pair | Expected relationship | What divergence tells you |
|---|---|---|
klaviyo.email_engagement | Declining email engagement precedes churn risk increase by 2-4 weeks | Strong leading indicator. |
google_analytics.ga_returning_users | Returning-user count should correlate inversely with churn risk | If GA4 shows steady returning users but churn risk is rising, customers are visiting but not buying (a different problem: site or product issue, not retention). |
| ESP unsubscribe rate | Unsubscribe spike often precedes churn-risk spike | Adobe Commerce’s mailing-list status is a coarser version of the same signal. |