RFM analysis
Compare recency, frequency and monetary value under consistent rules, then plan how to test customer outreach.
RFM describes recorded purchasing behavior. Use it to ask why customers differ and propose segments for testing. First calculate customer summaries from eligible transactions, then record your definitions, grouping rules, and follow-up plan.
Customer summaries already calculated using one reference date, transaction window, order definition, refund policy and currency.
An editable RFM table with explicit definitions, proposed groups and a plan to check them.
How to use it
- Fix the customer population, reference date and transaction window, including date boundaries and time zone if known. Decide how to treat customers with no eligible purchases.
- Define eligible orders, cancellations, full and partial refunds, duplicate records, missing IDs or dates, and anomalies. Record exclusions and investigate unusual values without silently replacing them.
- Calculate R as days since the last eligible purchase, F as distinct eligible orders in the window, and M as the amount under your stated refund and currency policy. Item lines are not separate orders.
- Choose thresholds or a scoring scheme using the business distribution. Lower R means more recent; higher F and M mean more orders and spending under these rules. If scoring, document direction, cutoffs, ties and any weights. Keep raw measures separate from scores.
- Paste checked customer summaries into the worksheet. Record proposed groups and follow-up actions, including groups not covered by your rules. Test the actions before scaling them.
Keep its limits in mind
Check transaction eligibility, units, and grouping rules before interpreting segments. RFM alone does not establish profit, lifetime value, or churn. An unknown value is not zero.
Make member outreach more relevant
Fictional example. Qinghe has 600 members. Sending everyone the same offers has increased discount spending without a clear change in repeat purchases. Three precomputed customer records illustrate possible outreach; their values do not establish group sizes.
On a small screen, scroll across the diagram to read it.
Raw measures, not scores: A and B meet the trial F and M cutoffs, but their recency differs. The cutoffs are choices to test, not universal boundaries.
Evidence still needed: C has one eligible order within the window. Earlier history is not supplied, so the record does not establish when C became a customer.
Next step: Verify eligibility and group sizes in the full data, then define a comparison before trying different outreach.
Three reasons to postpone customer grouping
Use RFM when recorded purchase behavior can help you formulate a customer question. Agree on the population and definitions before naming groups. A raw measure describes eligible history; a score or group is an interpretation under chosen rules. Neither tells you what a customer wants or whether contacting them is permitted.
Pause if summaries use different reference dates, windows, refund rules or currencies. Pause if missing values have been replaced with zero: “no eligible purchase” and “purchase history unavailable” are different conditions. Pause if the team wants to label a long-gap customer as lost or a single-order customer as new without the relevant history. Resolve the evidence before planning a message.
Keep the complete eligible list when testing thresholds, including unclassified customers. Otherwise a neat table can hide the people your rule does not cover. This worksheet displays prepared summaries; it does not clean transactions, calculate R/F/M from orders or decide which grouping is useful.
Choose a behavior summary or a different customer question
RFM is useful for a purchase-history question. Understanding experience, identifying a market or defining a measurement needs different material. Do not substitute a numeric segment label for those investigations.
| Method | Material needed | Output |
|---|---|---|
| RFM | Consistently calculated customer summaries | Proposed behavior groups and a validation plan |
| Customer journey map | A person’s task and attributed touchpoint records | Experience and information gaps |
| STP | Research about a bounded market and its segments | A target and positioning hypothesis |
| KPI tree | Compatible counts, amounts and denominators | A reproducible metric breakdown |
Worked case: preserve all eight customer summaries
This independent fictional mini-cohort is not a subset or estimate of the 600 members above. D01–D08 are its complete eight-customer list. The supplied summaries use reference date 2026-09-30 at 00:00 Asia/Shanghai, with purchases from 2026-07-02 inclusive to 2026-09-30 exclusive. R uses calendar-date differences in that timezone. F counts distinct eligible paid orders; cancelled orders and orders with any full or partial refund are excluded. M is the remaining eligible order amount in CNY. These are teaching summaries, not audited transaction calculations.
Apply two separate trial groups: recent repeat means R ≤ 7, F ≥ 5 and M ≥ 500; the long-gap group requires R ≥ 60 with the same F and M conditions. The groups do not overlap. Lower R means more recent; the values below are raw days, orders and amounts, not a three-digit score.
| Customer | R days | F orders | M CNY | Initial group |
|---|---|---|---|---|
| D01 | 4 | 7 | 840 | Recent repeat |
| D02 | 7 | 5 | 500 | Recent repeat |
| D03 | 8 | 5 | 500 | Unclassified |
| D04 | 60 | 6 | 660 | Long gap, higher F/M |
| D05 | 59 | 6 | 660 | Unclassified |
| D06 | 3 | 1 | 90 | Unclassified |
| D07 | 70 | 2 | 240 | Unclassified |
| D08 | 12 | 3 | 270 | Unclassified |
Change the rule without changing the cohort
The initial result is two recent-repeat customers, one in the long-gap group and five unclassified. Now vary one recency boundary at a time, keeping F, M and all eight records fixed. D03 joins the recent group when its boundary becomes ten days. D05 joins the long-gap group when its boundary becomes 55 days. Their underlying purchase histories have not changed.
The wider groups are not automatically better. They may change message relevance, workload or who receives an offer. Neither scenario measures churn or proves a response. The table accounts for all eight customers in every row, so changing thresholds cannot silently improve apparent coverage by dropping awkward cases.
| Recency boundaries | Recent | Long gap | Unclassified |
|---|---|---|---|
| R ≤ 7 / R ≥ 60 | 2 | 1 | 5 |
| R ≤ 10 / R ≥ 60 | 3 | 1 | 4 |
| R ≤ 7 / R ≥ 55 | 2 | 2 | 4 |
| R ≤ 10 / R ≥ 55 | 3 | 2 | 3 |
Conclude with a testable question, then review mature outcomes
The conclusion is that two boundary records change group under nearby rules. Ask which interpretation fits the business question and what evidence could distinguish the alternatives. Eight teaching customers cannot establish group sizes among 600 members or support the earlier proposed 30-person-per-group pilot. Retrieve the authorized full data and check counts before agreeing a real trial.
If outreach is approved, define eligibility, contact permissions, message, comparison and outcome before sending. Preserve feedback, completed purchases and observation windows separately; allow a full 28-day period if that is the agreed follow-up. Keep nonresponders and unavailable outcomes visible rather than treating every missing result as zero. At review, retain the original definitions and thresholds, append actual outcomes, and decide whether to continue, revise or stop. A group assignment alone demonstrates none of those outcomes.
Check your work
- Every row uses the same reference date, window, eligibility rules and currency; no purchase occurs after the reference date.
- F counts distinct orders, not item lines. M has an explicit refund policy and is not mislabeled as profit.
- Missing or ineligible records have a documented treatment. Unknown numbers are not entered as zero; resolve or omit the row and explain why.
- Thresholds, score direction, ties and uncovered customers are explicit. This example uses trial thresholds, not calculated RFM scores.
- One purchase within the window does not prove the customer is new; a long gap does not prove churn.
Framework references
References explain the framework and its scope; they do not validate the fictional example's results.
Put the framework to work
Copy the outline and add your question, evidence, and open questions.
Read a practical guide →Practice with an example
Reproduce historical retail RFM results, compare filtering rules and customer lists, or paste aggregated customer results with definitions and investigation notes.
Work through an RFM analysis with public retail data →