RFM Analysis is one of the most popular customer segmentation techniques to quantify customer transaction history. It considers the customers' purchasing habits including Recency- how recently a customer made a purchase, Frequency which is how often a customer makes a purchase and Monetary value, which is the total value of a customer's purchases. RFM classifies customers by scoring customers across these dimensions.
Benefits of RFM Analysis:
Cost-Effective Targeting: Select customers for targeted mailing campaigns, reducing costs while boosting sales.
Tailored Promotions: Identify customers to promote better and market your products and services, increasing relevance and engagement.
Retention of At-Risk Customers: Spot at-risk customers early and take steps to retain them, enhancing customer loyalty.
Driving Engagement: Create more personalized and effective engagement strategies based on customer behaviour
Ratafar Mall aims to classify its customers into four segments based on their purchasing habits. This will enable them to identify valued customers, and those needing immediate attention, and create targeted marketing campaigns tailored to each group, promoting their products more effectively.
This project employs the use of Microsoft Power BI to clean, transform, Analyse and Visualise the data. The steps taken to achieve these are described below:
The data contains 11 columns and 400 rows. The columns are Customer ID, Customer Name, Purchase Date, Amount, Birth, Gender, Job title, Education, Income, Total Orders, and Picture URL. There are 25 duplicated rows which were removed from the data.
Two new columns were created to calculate the customers' age and the Number of Days since the Last Order.
DateSinceLastOrder =
DATEDIFF(
[DateOfPurchase],
TODAY(),
DAY
)
The recency value, frequency value and monetary value columns were created and ranked between 1 and 5. This enables us to have the same base value for each metric. The formulas used to create these columns are as follows:
Recency =
SWITCH(
TRUE(),
Customer_Data[DateSinceLastOrder] <= PERCENTILE.INC(Customer_Data[DateSinceLastOrder],0.2),"5",
Customer_Data[DateSinceLastOrder] <= PERCENTILE.INC(Customer_Data[DateSinceLastOrder],0.4),"4",
Customer_Data[DateSinceLastOrder] <= PERCENTILE.INC(Customer_Data[DateSinceLastOrder],0.6),"3",
Customer_Data[DateSinceLastOrder] <= PERCENTILE.INC(Customer_Data[DateSinceLastOrder],0.8),"2",
"1"
)
Frequency =
SWITCH(
TRUE(),
Customer_Data[TotalOrders] <= PERCENTILE.INC(Customer_Data[TotalOrders], 0.2), "1",
Customer_Data[TotalOrders] <= PERCENTILE.INC(Customer_Data[TotalOrders], 0.4), "2",
Customer_Data[TotalOrders] <= PERCENTILE.INC(Customer_Data[TotalOrders], 0.6), "3",
Customer_Data[TotalOrders] <= PERCENTILE.INC(Customer_Data[TotalOrders], 0.8), "4",
"5")
Monetary =
SWITCH(
TRUE(),
Customer_Data[Amount] <= PERCENTILE.INC(Customer_Data[Amount], 0.2), "1",
Customer_Data[Amount] <= PERCENTILE.INC(Customer_Data[Amount], 0.4), "2",
Customer_Data[Amount] <= PERCENTILE.INC(Customer_Data[Amount], 0.6), "3",
Customer_Data[Amount] <= PERCENTILE.INC(Customer_Data[Amount], 0.8), "4",
"5")
Each customer's RFM value was added together and ranked between the values of 1 and 5 to calculate the RFM Score of each customer. The table below shows the preview of the newly calculated columns.
A table containing the RFM score and Segment was created. This will enable us to know the segment each customer belongs to based on their RFM score.
After calculating the customers' RFM scores, it was pertinent to analyse and visualise the data to understand the distribution of customers according to the segments.
Below is the report of the analysis:
Based on the analysis performed on 375 customers, some of the insights derived are as follows:
-
16% of customers are champions.
-
39% were classified as loyal customers.
-
20% were identified as at-risk customers.
-
25% of the customers fell into the immediate attention category.
-
Top customers (champions), On average made 8 purchases, their average spending was $2000, and their last purchase occurred, on average 112 days ago.
-
Potential Loyalists have made an average of 6 purchases while spending $1700 per purchase and their last purchase occurred an average of 196 days ago.
-
The combination of At-risk and Immediate Attention customer segments purchased 4 times on average, spending $1,504. These customers' recent purchases took place on average every 268 days.
Top Customers
-
Offer Incentives and Discounts: Exclusive offers should be given to these customers such as discounts on products, loyalty cards, cashback schemes, and free coupon points.
-
Feature a customer of the week or month: Recognizing and celebrating loyal customers will enable them to feel loved and encourage them to keep patronising your business. This is also a good way to attract other customers who might be interested in patronising the business.
-
Surprise and delight them: Send them personalised birthday messages with a special deal, such as upgrading their orders or giving them a bonus product or service that exceeds their expectations.
-
Reward them with an early access program: Consider giving them access to a new product that hasn’t officially been launched to anyone else or services that aren’t opened to the public yet.
At Risk/Immediate Attention Customers
-
Feedback Survey: A feedback survey should be carried out to help understand the causes of setbacks and ask how you can improve your services to them and ensure resolve any concerns raised by the customers.
-
Launch Re-Engagement Campaign: Reach out to them with customized emails or messages containing unique offers or discounts to encourage them to make purchases.
-
Win-Back Incentives: Extend appealing win-back offers to customers who haven't made purchases recently. These could include discounts, free shipping, or bundled deals to entice their return.