BizThinkFrame
← Back to frameworks
Framework 2-2-2 / Understand customer purchase patterns

RFM analysis

Compare recency, frequency and monetary value under consistent rules, then plan how to test customer outreach.

When to use it

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.

What to bring

Customer summaries already calculated using one reference date, transaction window, order definition, refund policy and currency.

What you will have

An editable RFM table with explicit definitions, proposed groups and a plan to check them.

How to use it

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.

Fictional teaching example

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.

CustomerR · DaysF ·OrdersM ·AmountGroup and actionA58960Recent repeat buyer; inviteproduct trialB706720Long gap, higher pastspending; ask about needsC3180One order in window; offerusage tipsData scope and definitionsFictional example; reference: 2026-09-30. Window: 2026-07-02inclusive to 2026-09-30 exclusive (90 days). Count distincteligible orders; exclude canceled or refunded orders. M inCNY.Grouping rulesTrial rules: R ≤ 7 recent; R ≥ 60 long gap; F ≥ 5 and M ≥ 500higher past spending and frequency. Other combinations remainunclassified. Validate against the full distribution; noscores assigned.Customer RFM summaryA | 5 | 8 | 960 | Recent repeat buyer; invite product trialB | 70 | 6 | 720 | Long gap, higher past spending; ask aboutneedsC | 3 | 1 | 80 | One order in window; offer usage tipsValidation and follow-upThese three records are illustrative. Check group sizes beforeplanning a 30-person pilot per group. Compare feedback andrepeat purchases over the next 28 days. A long gap does notprove churn.

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.

Neighboring methods and their outputs
MethodMaterial neededOutput
RFMConsistently calculated customer summariesProposed behavior groups and a validation plan
Customer journey mapA person’s task and attributed touchpoint recordsExperience and information gaps
STPResearch about a bounded market and its segmentsA target and positioning hypothesis
KPI treeCompatible counts, amounts and denominatorsA 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.

Complete fictional cohort; no customers omitted
CustomerR daysF ordersM CNYInitial group
D0147840Recent repeat
D0275500Recent repeat
D0385500Unclassified
D04606660Long gap, higher F/M
D05596660Unclassified
D063190Unclassified
D07702240Unclassified
D08123270Unclassified

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.

Complete threshold scenarios; F ≥ 5 and M ≥ 500 stay fixed
Recency boundariesRecentLong gapUnclassified
R ≤ 7 / R ≥ 60215
R ≤ 10 / R ≥ 60314
R ≤ 7 / R ≥ 55224
R ≤ 10 / R ≥ 55323

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 →

When to consider another framework

Pareto analysisWith customer amounts aggregated in one currency and window, use Pareto Analysis to examine revenue concentration and investigation priorities.