RFM segmentation

There are multiple ways to set up an RFM segmentation. In this article, we will show you how to make an RFM segmentation based on an RFM score that combines all three RFM parameters together and allows you to put your users into 11 different segments that can (and should) be approached in different ways. Alternatively, you can also set up RFE segmentation in the same way, where you use engagement instead of the monetary value.

RFM-based score

The overall RFM score actually consists of three separate scores. Each of the RFM parameters (recency, frequency, money) will be assigned a score in the range of 1-5. So the customer who made a purchase just recently had already bought many products before and has spent a lot of money in total will have an RFM score of 555. On the other hand, a customer who bought only one very cheap product a long time ago will have an RFM score of 111.

How to calculate the RFM score?

There are many ways in which the RFM score can be calculated. In Exponea, we get data using the discretization method and then calculate the score using the artbitrary/expert split.

1. Discretization

With discretization, customers are automatically divided into quartiles/quintiles (segments) of relatively equal size. The resulting four/five groups will, therefore, all have almost identical numbers of customers.

In Exponea, you will generate the quintiles automatically in the reports (see below in the guide). To do this create a report with discretization = 4/5 which creates four/five equal groups and gives you intervals that you will use further.

2. Arbitrary/expert split

With the arbitrary split, you define a fixed set of intervals where certain values equal certain scores. For example, you set that R score 1 is granted to the customer who bought a product last time six months ago, R score 2 is granted to the customer who bought it three months ago. The challenge using arbitrary/expert split is that you need to choose the right values for the intervals.

In Exponea, you will, fortunately, have the values for the intervals from doing discretization in the report. Take the resulting values and put them manually in your segmentation. You will probably have to readjust the values monthly, but it is easy - usually, it takes less than five minutes.

RFM segments

Based on the calculated RFM score, the customers are put into 11 segments:

Actionable Tip


Bought recently, order often and spend the most.

Reward them. Can be early adopters of new products. Will promote your brand. Most likely to send referrals.


Orders regularly. Responsive to promotions.

Upsell higher value products. Ask for reviews.

Potential Loyalist

Recent customers, and spent a good amount.

Offer membership / loyalty program. Keep them engaged. Offer personalised recommendations.

New Customers

Bought most recently.

Provide on-boarding support, give them early access, start building relationship.


Potential loyalist a few months ago. Spends frequently and a good amount. But the last purchase was several weeks ago.

Offer coupons. Bring them back to the platform and keep them engaged. Offer personalised recommendations.


Standard customers with not too long-ago purchase.

Make limited time offers.

Needs attention

Core customers whose last purchase happened more than one month ago.

Make limited time offers. Offer personalised recommendations.

Can’t lose them but losing

Made the largest orders, and often. But haven’t returned for a long time.

Win them back via renewals or newer products, don’t lose them to competition. Talk to them if necessary. Spend time on highest possible personalisation.

At Risk

Similar to “Can’t lose them but losing” but with smaller monetary and frequency value.

Provide helpful resources on the site. Send personalised emails.

Losing but engaged

Made their last purchase a long time ago but in the last 4 weeks either visited the site or opened an email.

Make subject lines of emails very personalised. Revive their interest by a specific discount on a specific product.


Made last purchase long time ago and didn’t engage at all in the last 4 weeks.

Revive interest with reach out campaign. Ignore otherwise.


1. Create reports for each RFM parameter

Create three reports - "Recency score segments", "Frequency score segments", "Monetary score segments". These reports will be used to define intervals for segments that you will create in step 2. You can read more on creating a report in the Reports article.

Use the following aggregates in the reports: Last purchase timestamp for recency score, purchases for frequency score and Sum of purchases total price for the monetary score. To be sure you achieve desirable results we recommend using data for the past 12-24 months or more.

Disproportionate results

If you use discretization and one group ends up being multiple times bigger then the others, you will not get results that would be useful for further analysis. This problem will most likely arise for the "Frequency score segments" report. In such a case, in step 2 you cannot rely on the quantiles, but instead, you will have to find appropriate 5 intervals yourself - for frequency usually 1, 2, 3, 4, 5+ work well as the 5 parameters.

2. Create segmentations for each RFM parameter

Based on reports you can set up the intervals and create the segments. You can read more on creating the segments in the Segmentations article.

It is important for step 3 that you name the segments correctly. For Recency use 100, 200, 300, 400, 500; for Frequency use 10, 20, 30, 40, 50 and for Monetary use 1, 2, 3, 4, 5; where the biggest number is always for the best customers from the segment - customer with a most recent purchase, most orders and biggest amount spent will have reived 500, 50 and 5 respectively.

3. Create RFM-based customer's score

By this point, you will have your customers divided into 5 recency segments (500 - 100), in 5 frequency segments (50 - 10) and in 5 monetary segments (5 - 1). Now, you can create an expression where you combine these three values and get a customer score. You can read more on creating expressions in the Expressions article.

The resulting store can be used for doing reports, segmentation, and subsequent scenarios easily and without the fear of overlaps. For example, you can create a reactivation campaign for all 1xx customers or even separate reactivation campaigns for 11x and 15x customers - anything you need to approach different groups of customers in the most effective way possible.

It is useful to also create R, F, and M expressions separately, to also receive information about the individual scores. These separate scores would not be in the format of 100-500 and 10-50 but only in 1-5, see below:

4. Create score-based segments

When you finally know RFM scores of all your customers, you can assign all of them into one of 11 segments. In the following image, you can see an example of how those segments can look like after you assign them their corresponding scores.

To do this last step, you need to roughly know which score belongs to which category. The table below tells you exactly that. However, remember that the following table might not be perfectly suited for all projects as their customer composition might drastically differ. Therefore, use this table as a starting point and if needed make the necessary adjustments.

As you can only use 26 attributes per segmentation, certain groups need to be divided into multiple segments - each made of a maximum of eight 3-digit (attribute) combinations.



555, 554, 544, 545, 454, 455, 445


543, 444, 435, 355, 354, 345, 344, 335

Potential Loyalist

553, 551,552, 541,542, 533, 532, 531, 452, 451, 442, 441, 431, 453, 433, 432, 423, 353, 352, 351, 342, 341, 333, 323

New Customers

512, 511, 422, 421 412, 411, 311


525, 524, 523, 522, 521, 515, 514, 513, 425,424, 413,414,415, 315, 314, 313

Need Attention

535, 534, 443, 434, 343, 334, 325, 324

About To Sleep

331, 321, 312, 221, 213, 231, 241, 251

At Risk

255, 254, 245, 244, 253, 252, 243, 242, 235, 234, 225, 224, 153, 152, 145, 143, 142, 135, 134, 133, 125, 124

Cannot Lose Them

155, 154, 144, 214,215,115, 114, 113

Hibernating customers

332, 322, 231, 241, 251, 233, 232, 223, 222, 132, 123, 122, 212, 211

Lost customers

111, 112, 121, 131,141,151

What´s next?

In the next article, we explain how should your approach differ when you communicate with each of the 11 segments of customers.

RFM segmentation - business use

RFM segmentation

Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.