RFM segmentation categorizes your customers into different segments, according to their interactions with your website, which will allow you to subsequently approach these groups in the most effective way. In this article, we will show you how to make an RFM segmentation based on an RFM score combining all three RFM parameters together and allowing you to divide your customers into 11 different segments.

# RFM-based score

The overall RFM score actually consists of three separate scores - recency, frequency, and money. Each of the RFM parameters will be assigned a score in the range of 1-5 with 5 being the best score. For example, a customer who made a purchase just recently while having bought a lot of products already before and has spent a lot of money during the purchases 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 Bloomreach Engagement, we get data using the discretization method and then we calculate the score using the arbitrary/expert split.


### 1. Discretization

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

In Bloomreach Engagement, 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, an R score of 1 is granted to the customer who bought a product last time six months ago, R score of 2 is granted to the customer who bought it three months ago. The challenge of using arbitrary/expert split is that you need to choose the right values for the intervals.

In Bloomreach Engagement, you will, fortunately, have these values in the report after the discretization. Take the resulting values and put them manually in your segmentation. You will probably have to readjust the values monthly, but usually, it takes less than five minutes.

# RFM segments

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

SegmentActivityActionable Tip
ChampionsBought 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.
LoyalOrders regularly. Responsive to promotions.Upsell higher value products. Ask for reviews.
Potential LoyalistsRecent customers who spent good amounts.Offer membership / loyalty program. Keep them engaged. Offer personalized recommendations.
New CustomersBought most recently.Provide on-boarding support, give them early access, start building relationship.
PromisingPotential 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 personalized recommendations.
Need attentionCore customers whose last purchase happened more than one month ago.Make limited time offers. Offer personalized recommendations.
About to sleepMade 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 personalized. Revive their interest by a specific discount on a specific product.
Cannot Lose ThemMade 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 personalization.
At RiskSimilar to 'Cannot Lose Them' but with smaller monetary and frequency value.Provide helpful resources on the site. Send personalized emails.
Hibernating customersCustomers who made smaller and infrequent purchases before but haven't purchased anything in a long time.Include them in your standard email communication but regularly check if they don't flag your content as spam. Do not overspend on this segment.
LostMade last purchase long time ago and didn’t engage at all in the last 4 weeks.Revive interest with reach out campaign. Ignore otherwise.

Some customers may not easily fit into either of these segments, so for control purposes, you can create an 'Unsorted' segment along these. To learn more about these groups, take a look at our [RFM Segmentation - Business Use article](🔗).

# Guide

## 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 about creating a report in the [Reports article](🔗).

Use the following aggregates in the reports: `Last purchase timestamp` for the recency score, `purchases` for the 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 sometimes arises for the "Frequency score segments" report. In such a case, in step 2 you cannot rely on the automatically-generated quantiles, but instead, you will have to find the appropriate 5 intervals yourself - for frequency 1, 2, 3, 4, 5+ usually work well.

RFM Scenarios

It is essential to know that you need to have a running scenario before starting an RFM segmentation. Therefore, when getting the result of 0, a good start to troubleshooting is to check whether the RFM scenario is live or was not even ever initiated.

## 2. Create segmentations for each RFM parameter

Based on reports you can set up the intervals and create the segments. You can read more about 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 scores of 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), 5 frequency segments (50 - 10), and 5 monetary segments (5 - 1). This allows you to create an expression where you combine these three values and get a customer score. You can read more about creating expressions in the [Expressions article](🔗).


The resulting score can be used in campaigns. 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 launch the most effective campaign for the given segment.

It is can also be useful to create R, F, and M expressions separately, to be able to use the individual scores as well. 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 table below might not be perfectly suited for all projects as your customer composition might drastically differ. Therefore, use the table as a starting point and if needed make the necessary adjustments.

You can only use 26 attributes per segmentation, so certain groups need to be divided into multiple segments - each made of a maximum of eight 3-digit (3-attribute) combinations. For example, the group of Potential Loyalists consists of 72 attributes (24 scores X 3 digits in each score), so you would need to create three groups for this segment: Potential Loyalists 1, Potential Loyalists 2, Potential Loyalists 3.

Champions555, 554, 544, 545, 454, 455, 445
Loyal543, 444, 435, 355, 354, 345, 344, 335
Potential Loyalists553, 551, 552, 541, 542, 533, 532, 531, 452, 451, 442, 441, 431, 453, 433, 432, 423, 353, 352, 351, 342, 341, 333, 323
New Customers512, 511, 422, 421 412, 411, 311
Promising525, 524, 523, 522, 521, 515, 514, 513, 425,424, 413,414,415, 315, 314, 313
Need Attention535, 534, 443, 434, 343, 334, 325, 324
About To Sleep331, 321, 312, 221, 213, 231, 241, 251
At Risk255, 254, 245, 244, 253, 252, 243, 242, 235, 234, 225, 224, 153, 152, 145, 143, 142, 135, 134, 133, 125, 124
Cannot Lose Them155, 154, 144, 214,215,115, 114, 113
Hibernating customers332, 322, 233, 232, 223, 222, 132, 123, 122, 212, 211
Lost customers111, 112, 121, 131,141,151