RFM - How to segment RFM
Step 1
To implement this model you must have RFM information on each individual customer like this:
customer_id recency_days frequency_times monetary_clv
1 3 6 540
2 6 10 940
3 45 1 30
4 21 2 64
5 14 4 169
Step 2
Then, for each of R/F/M sort the list in order by score and give each customer_id
a score from 1-5.
Data note: In this example there are only 5 records, so each
customer_id
gets a unique score, but in most cases you will divide the groups evenly. E.g. if there are 100 customers, there will be 20 of them with each score.
R (ascending order)
customer_id r_value r_score
1 3 5
2 6 4
5 14 3
4 21 2
3 45 1
F (descending order)
customer_id f_value f_score
2 10 5
1 6 4
5 4 3
4 2 2
3 1 1
M (descending order)
customer_id m_value m_score
2 940 5
1 540 4
5 169 3
4 64 2
3 30 1
Step 3
Put r_score
on the x-axis. Put AVG(f_score + m_score)
on y-axis.
In most cases, it seems that R & F are used to segment customers. In this case, as in the reference (1) I’m averaging
(F+M)/2
because frequency and monetary value are closely related.
``` customer_id x_value y_value [1] 5 4 [2] 4 5 [3] 1 1 [4] 2 2 [5] 3 3
F/M
5 | [2] | 4 | [1] | 3 | [5] | 2 | [4] | 1 |[3] ————————- 1 2 3 4 5 R
```
Graph:
- 108.30.10.20.20.10.10 Data Analysis - Segments - RFM - How to segment RFM to 108.30.10.20.20.10 Data Analysis - Segments - RFM
- 108.30.10.20.20.10 Data Analysis - Segments - RFM to 108.30.10.20.20.10.10 Data Analysis - Segments - RFM - How to segment RFM
- 108.30.10.40 Data Analysis - Structural analysis steps to 108.30.10.20.20.10.10 Data Analysis - Segments - RFM - How to segment RFM