Recency, Frequency and Monetary models

The Recency, Frequency and Monetary (RFM) model is a ready-to-use data science model.

The RFM model explained

The RFM model measures the email engagement and purchase behavior using the following characteristics:

  • Recency: What was the user's most recent transaction?

  • Frequency: How often does the user make a transaction?

  • Monetary: What is the size/total value of the user's transaction?

Each characteristic is represented by a score between one and five, with a score of one for the least recent, least frequent, or lowest purchase value, and a score of five for the most recent, most frequent, or highest purchase value.

The model uses the following personas to indicate the value of each customer.

Value Description
Lost Your weakest engagers, with minimum activity in the observed time period.
At Risk Engagers who show the beginnings of inactivity and low purchase behavior.
Can't Lose Subscribers who have a stronger footprint in inactivity. Still salvageable.
Promising Engagers with average recency and value.
New Recent engagers with a strong rate of valued engagement.
Champion The best of the best. Your most recent engagers with the strongest rate of high value engagement.

Parameters of the model

When creating the model, you will need to define the following parameters for the model:

  • Algorithm: The algorithm is the piece of code that runs the model.

  • Queries: The queries selected for the model generate a dataset for model training and scoring.

  • Inputs: The inputs are query attributes from the Unity data model that are used for model training and scoring. You can't make changes to model inputs.

  • Outputs: The outputs are data objects and attributes from the Unity data model that are used to store the output values of the model. You can make updates to the default mapping of model outputs.

Model inputs

To generate values, the RFM model uses the following data.

For the model to successfully run, data needs to be ingested into all the input attributes below.

Data object Attribute Data type Description
Event SourceEventID String

The unique identifier for the event.

Event SourceCustomerID String The unique identifier for the customer.
Event SourceID String The unique identifier for the source.
Event Type String The type of event, such as View, Purchase, Buy, and Click.
Event EventTS Timestamp The date and time when the event occurred.
Event Medium String The channel for the message, such Email, SMS, and Push.
Event Source String The source of the event, such as Facebook, Google, and Responsys.
Event ExtendedPrice String The amount paid by the customer after deducting discounts.
Event Quantity String The number of items purchased for each SKU.
Order OrderEntryTS String The date and time when the order was initiated.

Model outputs

You can review values for the scores and personas generated for each customer in the Customer_RFMScore data object. The following attributes will generate output values.

Attribute Description Data Type Is Key attribute?
SourceCustomer_RFMScoreID The unique identifier for the data object. String Yes
SourceID The unique identifier for the source. String Yes
SourceContactID The unique identifier for the contact. String Yes
RFM_Timestamp The date and time when the values were last generated. Timestamp No
R_Score The recency score between one and five. Integer No
F_Score The frequency score between one and five. Integer No
M_Score The monetary score between one and five. Integer No
RF_Persona The persona generated for the user. String No

The RF Persona attribute will generate one of the following personas based on the RFM scores.

Value Description
Lost Your weakest engagers, with minimum activity in the observed time period.
At Risk Engagers who show the beginnings of inactivity and low purchase behavior.
Can't Lose Subscribers who have a stronger footprint in inactivity. Still salvageable.
Promising Engagers with average recency and value.
New Recent engagers with a strong rate of valued engagement.
Champion The best of the best. Your most recent engagers with the strongest rate of high value engagement.

Create and use an RFM model

To create and use an RFM model, you will need to do the following:

  1. Follow the steps for Creating Recency, Frequency and Monetary models.

  2. After creating the model, follow the steps for Running training and scoring jobs.

After the model runs and creates output values, you can do the following:

data science, data science model, analyze data, create data science model, how to create a data science model, recency, frequency, monetary, rfm, rfm model