RFM Analysis: A Worked Dataset, Scoring Rules, and Campaign Actions

RFM analysis summarizes purchase behavior using recency, frequency and monetary value. Define the snapshot date, customer population, observation window and valid-order rules before calculating scores. A smaller recency value means a more recent purchase; higher frequency and monetary values mean more orders and spending.
The example below uses fictional orders in Japanese yen. Its thresholds are teaching choices, not universal benchmarks or a model that guarantees future purchases.
Fix the data contract first
Field | Rule used here |
|---|---|
Snapshot | October 1, 2026, using Japan-time calendar dates |
Frequency and monetary window | October 1, 2025 through September 30, 2026 |
Population | All customers with a valid purchase before the snapshot |
Recency | Days since the last valid purchase across full history |
Frequency | Distinct valid order IDs within the window, not item rows |
Monetary value | Window orders after discounts and known returns; excluding tax and shipping |
Exclude fully canceled orders. Retain a partially returned order as one order while reducing its monetary value. Reflect returns known by the snapshot date. These are explicit design choices; preserve their version when rules change. Microsoft’s RFM documentation also treats periods and return deductions as configuration decisions.
Start with the order records
Customer | Order | Purchase date | Net amount |
|---|---|---|---|
A | A01 | 2026-01-10 | ¥10,000 |
A | A02 | 2026-08-20 | ¥8,000 |
A | A03 | 2026-09-26 | ¥7,000 |
B | B01 | 2026-04-01 | ¥12,000 |
B | B02 | 2026-08-02 | ¥6,000 |
C | C01 | 2026-06-03 | ¥30,000 |
D | D01 | 2025-09-01 | ¥15,000 |
E | E01 | 2026-09-30 | ¥5,000 |
B02 originally totaled ¥8,000 and has a ¥2,000 partial return. D01 falls outside the frequency and spending window, but remains in historical data for recency.
Customer | R: days | F: orders | M: spending | Interpretation |
|---|---|---|---|---|
A | 5 | 3 | ¥25,000 | Recent repeat buyer |
B | 60 | 2 | ¥18,000 | No purchase in the last two months |
C | 120 | 1 | ¥30,000 | One large purchase |
D | 395 | 0 | ¥0 | No purchase inside the window |
E | 1 | 1 | ¥5,000 | Newly acquired customer |
A’s spending is ¥10,000 + ¥8,000 + ¥7,000 = ¥25,000. C and E both have one order, yet their situations differ substantially. Frequency alone would hide that distinction.
Apply transparent scoring rules
For customers with a purchase in the window, use the following illustrative scale. Keep D in a separate inactive group without a combined score.
Score | Recency | Frequency | Monetary value |
|---|---|---|---|
3 | Up to 30 days | At least 3 orders | At least ¥20,000 |
2 | 31–90 days | 2 orders | ¥10,000–¥19,999 |
1 | At least 91 days | 1 order | Below ¥10,000 |
The resulting labels are A: 333, B: 222, C: 113 and E: 311. These concatenate three ordinal scores. A label of 333 does not mean almost three times the value of 113.
Give equal raw values equal scores. If using quantiles instead, document tie handling and recognize that equal-value groups may prevent equally sized bins. Buying cycles also matter: durable goods, subscriptions and business contracts need different observation periods. A new customer has had less opportunity to repurchase, so do not automatically interpret E’s low frequency as a churn warning.
Turn segments into testable actions
Pattern | Hypothesis | Possible action | Check |
|---|---|---|---|
A | Ongoing use provides value | Resolve recurring friction | Retention, profit and complaints |
B | A next purchase occasion may approach | Timing based on actual buying cycle | Repurchase and unsubscribes |
C | Demand may be one-off or infrequent | Ask about purpose and next need | Feedback and timing |
D | Inactivity or a finished need | Permission-based reason gathering | Reactivation and opt-outs |
E | First-use support may help | Onboarding information | Early use and repeat purchase |
Do not assign blanket discounts solely from a score. Specify the audience, permission status, owner, review date and stop conditions. Use a suitable comparison group where practical, accounting for seasonality and overlapping campaigns.
Validate before operational use
Check duplicate order IDs, customer identity merges, returns, timezone and boundary dates. People who have never purchased have no defined purchase recency; do not give them zero days and place them among the most recent buyers. Building the population only from orders inside the window would silently remove inactive customers such as D.
Monetary value summarizes revenue, not profit or lifetime value. Add product margin, discounts, service costs and customer feedback when making decisions. Refresh with consistent definitions and keep segment movements separate from campaign outcomes: a changed score describes behavior, while the campaign’s incremental effect requires additional evidence.
Related practical guides
- What Is a Loyal Customer? Loyalty vs. High Spending and How to Measure It
- 10 CRM Campaign Examples: Segments, Triggers, Stop Rules, and Metrics
- How to Calculate Customer Lifetime Value: Revenue, Gross Profit, and Input Data
Keep execution and budgets connected
Xtrategy supports project management, monthly budgets and actuals, and customer and deal records. Review its features to decide how your owners, costs and review dates fit the workflow, then get started.