Customer analytics

RFM for retail: how to split customers into useful groups

R, F and M explained with a store example: how scores are calculated, who sits in the corners of the matrix and what to do with each group. The method is simple, but it has limits.

RFM analysis splits customers by three questions: how recently they bought (Recency), how often they buy (Frequency) and how much they spend (Monetary). It is one of the easiest forms of RFM segmentation to understand, and to start you only need receipts linked to a customer: the date, the amount and the card number.

What R, F and M mean

R: recency

How many days have passed since the last purchase. The fewer the days, the higher the score: a recent customer is closer to another purchase.

F: frequency

How many times the customer bought in the chosen period. Usually visits are counted, meaning days with purchases: two receipts on one day make one visit.

M: money

How much the customer spent in the same period. You can take the total or the average receipt, but the same way for every customer.

Each indicator is turned into a score from 1 to 5. Usually customers are ranked and divided into five equal groups, quintiles: the strongest 20% get 5, the next 20% get 4, and so on down to 1. For recency the order is reversed: the most recent fifth gets 5.

This way the score shows a customer's position within your chain, not on an absolute scale. You do not have to invent thresholds: they come from your own receipts.

A worked example

All figures below are an example, not data from any store. Suppose we look at one year and compare three customers.

Customer (example)Last purchaseVisits in a yearTotal for the yearRFM
Anna5 days ago249,000 lei555
Victor40 days ago62,500 lei333
Igor200 days ago21,200 lei112

Scores are often written as three digits. Anna came out as 555, Victor as 333, Igor as 112. These codes are convenient to merge into groups.

Look at Victor: he is neither leaving nor loyal, he is in the middle. Customers like him often have the biggest potential, because a small nudge (a reminder, a second purchase with a discount on a favorite category) can be enough to move him up. For Igor, on the other hand, an expensive offer probably will not help: first check whether he is just a one-off buyer.

Who sits in the corners of the matrix

There are 125 possible combinations (5 × 5 × 5), and nobody will work with each one separately. They are gathered into a few understandable groups:

GroupApproximate scoresWhat kind of customerWhat to do
ChampionsHigh R, F, MBought recently, buys often, spends a lotLook after them, thank them, do not waste extra discounts
RisingHigh R, medium FRecent, but not yet used to the storeSuggest a second and third purchase
Sleeping valuableLow R, high F and MUsed to be a good customer, has not come for a long timePersonal message, an offer to return
NewHigh R, low FCame recently, one purchaseA welcome offer
LostLow R, F, MLeft long ago, bought littleCheap channels, no discounts

The group names are conventional, so call them whatever you like. What matters is that every group has an action.

RFM matrix
R, F and M scores by quintiles of the chain

Common calculation mistakes

  • Counting receipts instead of visits: a customer with three receipts in one day looks "frequent"
  • Mixing wholesale and retail purchases in one calculation
  • Taking too short a period for goods bought rarely
  • Counting returns as purchases or not excluding service receipts
  • Not checking what share of receipts goes through without a card

How to use the result

  1. Check the data

    You need receipts linked to a customer. If the card is not shown at every purchase, the picture will be incomplete, and you should keep that in mind.

  2. Choose the period

    For groceries a short window fits; for rare purchases, a year or more.

  3. Assign actions to groups

    No more than five or six groups and one action for each.

  4. Launch and compare

    Leave part of the customers untouched and compare who came back.

Limits of the method

RFM describes past behavior. It does not predict what a customer will do tomorrow; it only helps you decide whom to talk to first.

RFM is convenient but not universal: - One rule for everyone. A customer who comes weekly and one who buys once a quarter get the same R for the same pause, although a 40-day pause is normal for the second and alarming for the first. - No causes. The score says who the customer is, not why. - Depends on the chain. Quintiles are calculated inside your own base: in different chains the same scores mean different things. - Little data. For new customers F and M show nothing yet, and one random large receipt lifts M higher than the customer deserves.

That is why RFM is often complemented by analysis of the customer's own rhythm: the pause is compared not with a common threshold but with how often that person usually buys. This is the subject of the article on lifecycle segments.

How it looks in Synngate Loyalty

In the loyalty module inside the ERP system, the RFM matrix is calculated automatically: R, F and M scores from 1 to 5 by the chain's quintiles. In the customer profile, which gathers 60 indicators, they sit next to the lifecycle segment, so one card answers both "who is this" and "what do we do". More on the lifecycle page and in the description of the ERP module. You can see the matrix on your own data at a demo.

Frequently asked questions

How many customers do I need for RFM?

The method works with a base of any size, but it is more reliable with a few hundred customers who have purchase history. On a very small base the quintiles come out coarse.

How does RFM differ from lifecycle segments?

RFM rates recency, frequency and money on a common scale for the chain. Lifecycle segments compare a customer's pause with that customer's own rhythm and show who is leaving.

How often should I recalculate?

Once a month is enough. For actions by group, regularity matters more than day-level accuracy.

Do I need bonuses or a card for RFM?

You need to identify the customer on the receipt. A card, a phone number or an app provides that; without it the analysis is impossible.

See the solution on your own network

A 30-minute conversation about your loyalty program, with no generic slides.