Data Analytics

RFM Segments: Stop Blasting Your Whole List

Sending the same offer to a customer who bought yesterday and one who lapsed a year ago wastes margin on both. RFM scoring tells you who to talk to and what to say.

Key takeaways
  • RFM scores customers on recency, frequency and monetary value
  • Champions and loyalists need retention, not fresh discounts
  • At-risk and lapsed segments need winback, timed to repurchase cycle
  • Segment first, then set discount depth by segment value

The cost of the one-to-all blast

Most Indian D2C brands run their CRM as a broadcast channel. Every campaign goes to the whole list with the same 15 percent code. This does two expensive things at once. It hands a discount to customers who would have bought at full price, and it fails to re-engage the lapsed buyers who need a stronger reason to return. RFM segmentation ends the blast by sorting your list into groups that behave differently and therefore deserve different messages and different discount depths.

RFM stands for recency, frequency and monetary value. It is one of the oldest ideas in direct marketing and it still outperforms most machine learning setups for a brand under Rs 50 crore in revenue, because it is transparent, cheap to build, and easy to act on.

How to score each dimension

Take your order history, ideally 12 to 24 months, and score every customer on three axes from 1 to 5.

  • Recency: how many days since the last order. A customer who bought this week scores 5, one who last bought 200 days ago scores 1. Recency is the strongest single predictor of whether someone buys again.
  • Frequency: how many distinct orders in the window. A five-time buyer scores 5, a one-time buyer scores 1.
  • Monetary: total contribution margin, not revenue, across those orders. A customer who bought high-margin SKUs is worth more than one who only chased your loss leaders.

Use quintiles so each axis is relative to your own base. A 90 day recency might be excellent for a mattress brand and terrible for a coffee brand. Scoring against your own distribution keeps the segments honest.

The segments that actually drive action

You do not need all 125 possible score combinations. Collapse them into a handful of segments that map to a clear action.

  • Champions, scoring high on all three: recent, frequent, high value. Do not discount these people. Give them early access, a loyalty tier, or a genuine thank you. A discount here is pure margin given away.
  • Loyal customers, high frequency but slipping recency: nudge the next order with a replenishment reminder or a new-arrival alert, not a code.
  • Potential loyalists, recent with one or two orders: this is your conversion-to-repeat segment. A small, time-bound second-order incentive earns its keep because it changes behaviour.
  • At-risk, once valuable but recency now low: they are drifting. A stronger winback offer is justified because the alternative is losing the relationship entirely.
  • Lost, low on everything: send a final reactivation attempt, then suppress them so you stop paying to message dead contacts and protect your deliverability.

Match discount depth to segment value

The financial logic of RFM is that discount depth should scale inversely with how likely someone is to buy anyway. Champions and potential loyalists buy at low or zero incentive, so you protect margin there. At-risk and lost customers need a real reason, so a deeper Rs 200 or 20 percent offer is defensible because you are recovering a customer who was otherwise gone. Blasting one code to everyone gets this exactly backwards: it over-discounts the loyal and under-motivates the lapsed.

Run the maths on a Rs 900 AOV. If 30 percent of a 50,000 person list are champions and loyalists, a blanket 15 percent code silently gives away roughly Rs 135 on every full-price order those segments would have placed anyway. On a few thousand orders that is lakhs of margin per campaign, spent to change nothing.

Turning segments into flows

RFM is only useful if it drives automation. Wire each segment to a WhatsApp and email flow that refreshes as scores move. A potential loyalist who places a third order graduates into loyal and stops receiving second-order nudges. An at-risk champion who lapses drops into winback. Recompute scores weekly or monthly so the segments stay live rather than freezing into a one-time export.

  • Champions: VIP early access, referral ask, loyalty perks.
  • Potential loyalists: second-order nudge, cross-sell to a complementary SKU.
  • At-risk: winback with a real offer, timed to the category repurchase cycle.
  • Lost: one reactivation attempt, then suppress to protect deliverability and cost.

RFM will not replace deeper cohort or LTV analysis, and it is not predictive in the way a churn model is. What it does is convert a flat email list into a set of segments with distinct economics, so your CRM stops being a discount hose and starts being a margin-aware retention engine.

Common mistakes to avoid

Teams new to RFM tend to make the same errors. The first is scoring on lifetime revenue instead of a rolling window, which leaves you rewarding customers who were active two years ago and have since gone quiet. Anchor the analysis to a 12 to 24 month window so recency stays meaningful. The second is treating the segments as permanent labels rather than a live state; a champion who lapses for 120 days is no longer a champion, and your flows must move them. The third is building the segments in a spreadsheet once and never wiring them into your ESP or WhatsApp tool, so the insight dies in an export nobody opens. The fourth, and most expensive, is ignoring deliverability: continuing to mail the lost segment drags your sender reputation down and quietly suppresses inbox placement for the champions you most want to reach. Suppress the truly dead contacts after one reactivation attempt, and protect the list that actually pays your bills.

FAQ

Quick answers.

Recency, frequency and monetary value. Each customer is scored on how recently they bought, how often, and how much margin they have generated, usually on a 1 to 5 scale per axis.
Contribution margin is better. A customer who only bought discounted loss leaders looks valuable on revenue but may be barely profitable, so scoring on margin avoids rewarding low-value buyers.
Weekly or monthly for most D2C brands. Recency changes constantly, so a stale export quickly misclassifies customers and sends the wrong flow to the wrong segment.
Champions and recent potential loyalists. They buy at full price anyway, so a blanket code simply gives away margin. Reserve deeper offers for at-risk and lapsed customers.

Related insights

From the wire

India's Commerce Engine

Put it
to work.

hello@zane.marketing

Book a meeting