1 Measuring the value of a customer within the RFM framework.

  1. Measure the recency, frequency, and monetary value of customer purchases.
  2. Set a score to rank customers according to their purchase recency, frequency, and monetary value.
  3. Calculate the overall RFM score.
  4. Analyze RFM group differences.

The data:

##    Customer  TransDate Quantity PurchAmount   Cost   TransID TransKey
## 1:   149332 2005-11-15        1      199.95 107.00 127998739   100000
## 2:   172951 2008-08-29        1      199.95 108.00 128888288   100001
## 3:   120621 2007-10-19        1       99.95  49.00 125375247   100002
## 4:   149236 2005-11-14        1       39.95  18.95 127996226   100003
## 5:   149236 2007-06-12        1       79.95  35.00 128670302   100004
## 6:   140729 2009-11-19        1      129.95  59.00 127637750   100005

1.1 Step 1: Measure the recency, frequency, and monetary value

All RFM measures have to be measured on the individual customer level:

  • Recency = difference in days between the latest purchase and today.
  • Frequency = number of transactions.
  • Monetary Value = average amount spent per transaction.
RFM Values
Customer recency frequency monetary
149332 2257 3 92
172951 1411 4 222
120621 1878 1 100
149236 2007 2 60
140729 225 6 67
180970 1269 2 74

1.2 Step 2 : Set a score to rank customers

  • Recency: The higher the recency measure, the lower the score.

  • Frequency: The higher the frequency measure, the higher the score.

  • Monetary Value: The higher the monetary value measure, the higher the score.

RFM scores
Customer recency frequency monetary
149332 1 3 3
172951 2 3 3
120621 1 1 3
149236 1 2 2
140729 3 3 2
180970 2 2 2

1.3 Step 3 : Calculate the overall RFM score

RFM scores can be either unweighted or weighted:

  • The unweighted score takes the simple average over all scores.
  • The weighted score takes a weighted average over the scores, e.g. 60-20-20.

1.3.1 An unweighted overall score for all customers

\(RFM.Score(unweigthed) = 1/3*recency + 1/3*frequency + 1/3*monetary\)

##    Customer recency frequency monetary  overall
## 1:   149332       1         3        3 2.333333
## 2:   172951       2         3        3 2.666667
## 3:   120621       1         1        3 1.666667
## 4:   149236       1         2        2 1.666667
## 5:   140729       3         3        2 2.666667
## 6:   180970       2         2        2 2.000000

1.3.2 A weighted overall score which weighs frequency more heavily

\(RFM.Score(weigthed) = 0.2*recency + 0.6frequency + 0.2*monetary\)

##    Customer recency frequency monetary  overall weighted1
## 1:   149332       1         3        3 2.333333       2.6
## 2:   172951       2         3        3 2.666667       2.8
## 3:   120621       1         1        3 1.666667       1.4
## 4:   149236       1         2        2 1.666667       1.8
## 5:   140729       3         3        2 2.666667       2.8
## 6:   180970       2         2        2 2.000000       2.0

1.4 Step 4 : Analyze RFM group differences

Based on their RFM scores, customers can be divided into target groups.

Customers with the maximal score:

##    Customer recency frequency monetary overall weighted1
## 1:   187038       3         3        3       3         3
## 2:   126172       3         3        3       3         3
## 3:   198566       3         3        3       3         3
## 4:   187768       3         3        3       3         3
## 5:   155576       3         3        3       3         3
## 6:   166946       3         3        3       3         3