RFM customer segmentation
Use case description
RFM Segmentation visualizes value trends in your customer base with an automated dashboard. It includes a best-practice RFM segmentation to segment and trigger marketing campaigns to drive Customer Loyalty and Revenue Per Visitor. RFM segmentation helps to distinguish where your revenue comes from and which customers are your core audience. By segmenting your customer base according to the RFM factors (Recency, Frequency, Monetary), you’ll get a holistic overview, which allows for better targeting of campaigns at customers based on how loyal they are to the brand and hence increase upsell, RVP and other essential metrics.
Use case items
With this use case, you’ll get an:
- RFM scenario
- Evaluation dashboard: A comprehensive dashboard provides insights into user behavior, campaign performance, and overall engagement metrics. The dashboard allows you to evaluate the effectiveness of your marketing strategies and make data-driven decisions.
How to deploy the use case
After downloading the use case, follow these steps.
Meet the requirements
Check if the data in your project meets the requirements. The Use Case Center lists requirements for each use case during the deployment process.
Understand the use case logic
All customers with at least one purchase are segmented based on the Recency, Frequency, and Monetary value of their purchases. The RFM segmentation allows for better targeting of campaigns based on how loyal the customers are to the brand and hence increases upsell, CLTV, and RVP.
The scenario runs 2
times per month for all customers with at least one purchase. The 'Initial flow' ensures the first data load on all customers, and the 'Repeat flow' tracks incremental changes.
The RFM segment is tracked under customer property rfm_segment
. If the customer changed the segment, the previous value would be tracked under the customer property previous_rfm_segment
allowing us to see the movements between segments.
Going more in-depth, the Initial flow assigns recency_score, frequency_score, and monetary_score as customer properties based on their positioning in recency, frequency, and monetary reports per the Jinja below.
Based on the individual scores, a rfm_score is populated, where the ~ operator joins the neighboring scores as strings and concatenates (e.g., recency_score = 3, frequency_score = 2, monetary_score = 1 -> rfm_score = 321).
Once these values are populated, a relevant customer segment (rfm_segment) is assigned to a customer based on the RFM group; see the values checking customer profiles.
How does the scenario calculate the segments?
The scenario turns the recency, frequency, and monetary aggregates and transforms them into customer properties, which can be seen in a report for each. The segments are then determined from these values using the following table.
By default, the RFM scenario runs every month to ensure the RFM segmentation is up to date with the recent changes in your customer base. However, feel free to adjust the repeat trigger node to more closely match your requirements (for example, repeat every day) if you wish to have most up-to-date information.
Test and run the use case
Test a use case before deploying it. Testing ensures you don't send unfinished or imperfect campaigns to your customer base.
Once the testing is over, run the use case. Open the banner and click Start to launch the campaign.
Evaluate the results
Remember to run the use case for a few days to see the impact.
After this initial period, use the prebuilt evaluation dashboard to measure and analyze relevant data.
Calculate key metrics
Customers that made a purchase where the following conditions are matched:
- purchase_status = success
- total_price > 0
- CLTV is calculated from the total_price attribute of the purchase event
The RFM segmentation works by dividing the customers based on their Recency, Frequency, and Monetary (RFM) scores. It does so in relative terms, creating percentual parts of your customer base. Through this, you will be able to see how different customers fall within different R F M values, and these then get calculated into overall RFM segments. The segmentation can be used for marketing campaigns to drive Customer Loyalty and RPV.
Find more information and related action steps regarding different segments of your customers calculated based on the RFM score in the RFM Dashboard.
Known limitations
This is a dynamic RFM Use Case. This means the RFM segments are updated monthly based on your customer base dynamics.
Dynamic RFM is editable; however, for all intents and purposes, it's designed as a "ready-to-use" black-box tool. It's built as a best-practice use case. It automatically slices your customer base into quantiles and automatically assigns the segments for each customer based on these quantiles.
Dynamic RFM is editable but due to its design, it is not easy to make changes on these assignments.
Enhance your scenario
Include other key metrics that the client business is evaluating regularly and put them into perspective of the various CLV groups.
For advanced users
As mentioned above, Dynamic RFM is editable but due to its design, it is not easy to make changes on these assignments.
If you want to make changes; you need to understand:
- How the portfolio is sliced in the Recency Report, Frequency Report and Monetary Report; all of which can be found in this use case's initiative folder.
- How each customer's recency, frequency and lifetime value is calculated via Recency Aggregate, Frequency Aggregate and Monetary Aggregate; all of which can be found in this use case's initiative folder.
- How the webhook automates the numeric assignments to each customer's aggregate in relation to their position within the reports (the webhook scenario can be found in this use case's initiative folder with the name "RFM Scenario").
- How the numeric assignments are used to assign the final RFM segment via the segmentation asset called "RFM", which can be found in this use case's initiative folder.
Reports
To compare your reports more efficiently, you can set the maximum/minimum limits for both primary and secondary axes. For more detailed information, see the documentation.
Observe movements in the segments in RFM Segments - Bloomreach segmentation.
The values in this segment are calculated from an expression, which pulls out values from yet another segmentation. These segmentations contain a dynamic condition - for example, recency aggregate (value on a customer profile) is less than r_score_2_threshold, a customer attribute pulled from a recency report.
The threshold values can change over time based on the customer base purchase behavior. Usually, they would be a static value in a report, but given that these customer attributes are populated with every scenario run, it's done automatically.
Once you collect enough data, you can observe the segment movements in different time frames over time.
Updated about 1 month ago