01 · Definition
What is RFM segmentation?
RFM segmentation (recency, frequency, monetary) ranks customers by three facts from their order history: how many days have passed since their last purchase (recency), how many orders they placed in a period (frequency) and how much they spent (monetary value). Each customer gets a score per dimension, most often 1 to 5, and the combination, such as 5-5-4 or 1-2-3, places them in a named group that a WhatsApp campaign can target.
The scores are relative to your own customer base. The usual method sorts customers on each measure and cuts them into quintiles, so R5 is the most recent fifth of buyers and M1 the lowest-spending fifth. Recency is scored inversely, because fewer days since the last order is better. Frequency and monetary value tend to move together, so many teams read RFM as a grid of recency against frequency and use monetary value to rank customers inside each cell.
RFM is one specific method within Segmentation, which covers splitting an audience on any attribute or behaviour. It uses purchase data only, so it suits retailers, D2C brands, pharmacies and restaurants with repeat orders, and says little about leads who have never bought. RFM decides which message fits a group; Personalisation then decides what each recipient's copy says, and Opt-in decides whether that person may receive marketing at all.
Key takeaways
- RFM segmentation scores each customer on the recency, frequency and monetary value of their purchases, usually from 1 to 5 per dimension.
- Scores are relative: quintiles split your own customers into five equal groups, so R5 means the most recent fifth of buyers, not a fixed date.
- Score combinations map to named segments such as Champions, At risk and Lost, and each segment gets its own WhatsApp message and cadence.
- The score decides the message; consent decides the audience. Only contacts with a marketing opt-in enter an RFM campaign list.
- Recompute scores at least weekly: recency changes every day even when a customer does nothing.
02 · Specifications
RFM segmentation: key facts and limits
| Dimensions | Recency (days since last order), frequency (orders), monetary (net spend) |
|---|---|
| Usual scale | 1–5 per dimension (quintiles): 125 possible R-F-M codes |
| Typical look-back | 12 months, shorter for groceries, longer for furniture |
| Named segments in use | 6–10, each with its own play |
| Refresh | Nightly or weekly; recency moves daily |
| Data needed | Customer ID, order date, net value, WhatsApp opt-in |
| India marketing rate | ₹0.94 per delivered marketing message |
03 · Operation
How does RFM segmentation work?
Pull the order history
For each customer, collect the date of the last order, the number of orders and total net revenue over a fixed look-back window (12 months is common). Exclude cancelled, returned and RTO orders, and key every row by a stable customer ID linked to the WhatsApp number.
Score each dimension from 1 to 5
Rank customers on each measure and split them into quintiles. Recency uses days since the last order, with the fewest days scoring 5; frequency and monetary value score higher for more orders and more spend. Decide in advance how ties are handled.
Map scores to named segments
Translate score combinations into groups with a lookup table: R 4–5 with F 4–5 as Champions, R 1–2 with F 4–5 as At risk, R 1–2 with F 1–2 as Lost. Six to ten segments is usually enough, as long as each one gets its own message.
Filter by consent and caps
Keep only customers with a valid marketing opt-in, remove anyone on the suppression list and apply your frequency cap across all campaigns before a segment becomes a send list.
Give each segment one play
Choose the template, offer and cadence per group: early access for Champions, a second-order nudge for new buyers, a personal check-in with a reorder button for At risk, and a quarterly message or none at all for Lost.
Refresh, track movement and measure
Recompute scores nightly or weekly, record how customers move between segments, and compare each play's conversion with a holdout group that receives nothing.
04 · Code samples
RFM segmentation in code
-- RFM scores over the last 12 months, mapped to the segments on the gridWITH base AS (SELECT customer_id,CURRENT_DATE - MAX(order_date)::date AS recency_days,COUNT(*) AS frequency,SUM(net_amount) AS monetaryFROM ordersWHERE status = 'delivered' -- no cancelled, returned or RTO ordersAND order_date >= CURRENT_DATE - INTERVAL '12 months'GROUP BY customer_id),scored AS (SELECT *,NTILE(5) OVER (ORDER BY recency_days DESC) AS r, -- most recent = 5NTILE(5) OVER (ORDER BY frequency ASC) AS f,NTILE(5) OVER (ORDER BY monetary ASC) AS mFROM base)SELECT s.customer_id, s.r, s.f, s.m,CASEWHEN s.r >= 4 AND s.f >= 4 THEN 'champions'WHEN s.r >= 4 AND s.f = 3 THEN 'potential_loyalist'WHEN s.r >= 4 THEN 'new_or_promising'WHEN s.r = 3 AND s.f >= 4 THEN 'loyal_slipping'WHEN s.r = 3 AND s.f = 3 THEN 'needs_attention'WHEN s.r = 3 THEN 'about_to_sleep'WHEN s.f >= 4 THEN 'at_risk'WHEN s.f = 3 THEN 'hibernating'ELSE 'lost'END AS segmentFROM scored sJOIN contacts c ON c.customer_id = s.customer_idWHERE c.whatsapp_marketing_opt_in = TRUE -- consent decides the audienceAND c.suppressed_at IS NULLORDER BY segment, s.m DESC; -- monetary value ranks priority inside a segment
NTILE splits ties arbitrarily; with many one-order customers, replace the frequency NTILE with fixed bands (1, 2, 3–4, 5–7, 8+).
05Playground
A working model of RFM. Use its controls to replay it step by step.
Find a customer's segment on the R × F grid
| Few orders (F 1–2) | Some orders (F 3) | Regulars (F 4–5) | |
|---|---|---|---|
| Recent buyers (R 4–5) | |||
| Cooling off (R 3) | |||
| Lapsed (R 1–2) |
Hover, tap or arrow-key through the cells — a dot in the corner means there is a note.
Lapsed (R 1–2) by Few orders (F 1–2)
LostReduce or stop
Long silent with few orders. Cut to a quarterly message or stop marketing; they cost the most per conversion.
Legend — press one to highlight its cells
Row 3 of 3. Lapsed (R 1–2) × Few orders (F 1–2): Lost. Long silent with few orders. Cut to a quarterly message or stop marketing; they cost the most per conversion.
06 · Worked example: A Kochi spice brand's Monday scoring run
Example: A Kochi spice brand's Monday scoring run
A D2C spice brand in Kochi scores its 38,000 customers every Monday night on 12 months of delivered orders. About 2,100 land in Champions, 3,400 in At risk (regulars who ordered monthly but have been silent for three months) and 9,800 in Lost. Champions get a new-harvest early-access template with no discount. At-risk customers get a marketing template asking whether anything went wrong, with a button to reorder their usual blend. Lost customers drop from the weekly broadcast to one festive message a quarter. Measured against a 10% holdout, 11% of the At-risk group order again within three weeks against 4% of the holdout, and total marketing deliveries fall by about a third.
07 · Cautions
Common mistakes with RFM segmentation
Scoring on gross orders
Cancelled, returned and RTO orders inflate frequency and spend for exactly the customers who cost you most. Score on delivered, net orders only.
Letting quintiles split ties at random
When half your customers have one order, NTILE spreads identical customers across F1, F2 and F3. Use fixed frequency bands, or score ties with the same value, so a score means the same thing every week.
Treating a high score as permission
A Champion who never opted in to marketing still cannot receive a marketing template. Filter every segment through opt-in and the suppression list before it becomes a send list.
Messaging every segment every week
Lost and Hibernating customers convert least and block most. Lower their frequency or stop, and spend those deliveries on At-risk regulars and potential loyalists.
Running RFM once and freezing it
A one-off export goes stale within weeks because recency changes daily. Schedule the scoring, store the history, and treat a move such as Champion to At risk as a trigger in its own right.
08 · Recommended practice
Best practices for RFM segmentation
- Match the look-back to your purchase cycle: 3–6 months for groceries and pharmacy refills, 12–24 months for furniture or electronics.
- Use monetary value to order customers inside a segment, so the highest spenders get attention first when budget is limited.
- Keep the score history, not only today's score; movement between segments is the most useful signal RFM gives.
- Start with five or six segments and add one only when a group needs a genuinely different message.
09 · Rationale
Why does RFM segmentation matter?
Sending the same marketing template to every customer pays for deliveries to people the offer does not fit, at ₹0.94 per delivered marketing message in India, and those irrelevant messages are the ones that get blocked and reported. RFM turns an order table most businesses already have into a handful of groups with clearly different needs: thank the Champions, win back the At-risk regulars before they leave for good, and stop paying to message Lost customers every week. It is cheap to compute, easy to explain to a team and a sound first step before heavier predictive models.
10 · Questions and answers
RFM FAQs
- What does RFM stand for in marketing?
- Recency, frequency and monetary value. They describe when a customer last bought, how often they buy and how much they spend; each is scored, usually from 1 to 5, and the scores combine into segments such as Champions or At risk.
- How do you calculate an RFM score?
- Rank customers on each measure and split them into five equal groups. Days since the last order is scored inversely, so the most recent fifth gets 5; order count and spend score higher for more. The three digits, such as 5-4-4, form the customer's RFM code.
- Is RFM useful if most of my customers have bought only once?
- Only partly. RFM needs repeat purchases to separate groups, so a base of mostly one-time buyers clusters into a few cells. Use it to find and protect your repeat buyers, and segment everyone else on behaviour such as clicks, replies or the product they bought.
- Can I message an RFM segment on WhatsApp without opt-in?
- No. RFM decides which message suits a group; it does not grant permission. WhatsApp requires opt-in before a business messages people, so every RFM segment has to be filtered to contacts who agreed to receive marketing.
- How is RFM different from customer lifetime value?
- RFM describes past behaviour; customer lifetime value (CLV) predicts future revenue. RFM needs no model and is easy to explain, while CLV models are more precise and often use recency, frequency and spend as their inputs.
* Per-message rates for India, ex-GST: marketing, utility and authentication effective 1 July 2026; service messages ₹0.145 since 1 October 2026 (they were ₹0 until 30 September 2026). Volume commitments earn discounts — final rate is confirmed on your account; applicable GST extra. Rates for other countries differ (see the international rate table on /pricing).