RFM Segmentation explained

RFM segmentation categorizes your customers into different segments according to their interactions with your website, which will allow you to approach these groups in the most effective way subsequently.

The Recency, Frequency, Monetary Value (RFM) model rates your customers based on their buying habits. Customers get a score from 1 to 5 for each of these three areas. A 5, 5, 5 score represents an ideal customer. Those with lower scores highlight opportunities for improvement.

RFM Segmentation is all about getting to know your customers better. Using RFM, you can spot different customer types, understand their needs, and shape personalized experiences and offers for them. This streamlines how you gain and retain your customers. It all kicks off by figuring out each customer's RFM score.

RFM-based score

The RFM score is a composite of three distinct ratings - recency, frequency, and monetary value. Each is rated on a scale of 1-5, with 5 being the highest. Consider a frequent customer who made recent high-value purchases. Their RFM score would hit a perfect 555. However, a customer with infrequent and distant, low-value buying might get a low 111.


Overall, numbers 100-500 represent Recency, 10-50 indicate Frequency, and 1-5 show Monetary value. There are 125 distinct possible RFM combinations, and the numerical values used herein conform to industry standards.

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 Them But LosingMade 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.
Losing But Engaged
Lost CustomersMade 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.


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
Cannot Lose Them But Losing155, 154, 144, 214,215,115, 114, 113
At Risk255, 254, 245, 244, 253, 252, 243, 242, 235, 234, 225, 224, 153, 152, 145, 143, 142, 135, 134, 133, 125, 124
Hibernating Customers332, 322, 233, 232, 223, 222, 132, 123, 122, 212, 211
Losing But Engaged111, 112, 121, 131, 141, 151
Engagement: Last email campaign clicked in the last 180 days OR Last session_start in the last 90 days
Lost Customers111, 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.