RFM is a behavior-based framework for ranking and grouping customers by how recently they bought, how often they buy, and how much they spend. It turns raw transaction data into actionable segments — no machine learning required.
Not all customers deserve the same marketing investment. RFM lets you concentrate budget where it generates the highest return — retaining Champions, reactivating At Risk customers before they churn, and converting Promising customers before they cool off. A company spending the same on a Lost customer as a Loyal one is burning margin.
The framework is deliberately simple — which is a feature, not a bug. It works with a single transactions table, runs in SQL in minutes, and produces segments that any team can understand and act on without a data science degree.
| Segment | Definition | Recommended action |
|---|---|---|
| Champions | HOT · frequent · HIGH spend | Loyalty rewards, early access, referral programs. Don't over-discount — they already love you. |
| Loyal | HOT · frequent · MID or LOW spend | Upsell to higher-value products. Cross-sell adjacent categories. Increase basket size. |
| Potential | HOT · infrequent · MID or HIGH spend | Trigger repurchase with email sequences. Subscription offers. Show what they're missing. |
| New | First purchase ≤ 7 days ago | Onboarding is critical. First 30 days determine long-term retention. Welcome series + second-purchase incentive. |
| Promising | WARM recency · any F/M | Re-engage before going cold. Personalized nudge, limited-time offer, recommendation based on past behavior. |
| At Risk | WARM recency · frequent (historically) | Highest urgency. Were loyal, now drifting. Direct outreach, win-back campaign, ask why they stopped. |
| Lost | COLD recency (any F/M) | Low ROI. Test win-back with a strong offer on a random subset. If no response, suppress from active campaigns. |
RFM scoring requires only a standard orders table with three columns: customer_id, order_date, order_value.