Customer 360
Customer 360
2
Chapter I: Overview Of RFM Customer 360
1.1. Introducing Customer 360
Customer360 is a customer-based analytics strategy transaction data set (Transaction Data);
website interaction data or application (Interaction Data); consumer behavior and customer needs
(Behavioral Data) and data about customer age and demographics (Demographics Data)
4
1.3. Fundamental concepts in RFM Customer 360 analytics
- RFM Customer 360 is a customer analysis method based on the RFM (Recency - Frequency -
Money) model.
- This method helps businesses evaluate the value of each customer based on their level of
interaction with the business and offer different approach strategies to optimize customer
care.
5
Chapter II: Determine Customer Groups
2.1. Define RFM
2.1.1. Data separation
Description of data sheets
In this case, we have two tables that need to be analyzed: Customer_Transaction table,
Customer_Registered table
6
2.1.2. Build RFM SCORE scoring framework and classification in SQL.
Tool: MS SQL (Source Code)
How to do:
- Process OLTP data to OLAP from Customer_Transaction table
- Use join to join two tables Customer_Registered and Customer_Transaction to get information
- Use functions such as SUM, DATEDIFF, WINDOWFUNCTION, CASE WHEN to process
➢ Step 1: Calculate Recency – Frequency – Monetary
7
Customer_transaction table after calculating RFM according to IQR
➢ Step 3: Classify customer groups based on RFM in SQL
8
➢ Step 4: Customer definition
9
Chapter III. Customer Analysis
3.1. Overview of customer segments
Tool: PowerBI
The store's total revenue reached 2.46 billion VND with a customer base of 112.66 (thousand) people.
- According to the statistics table showing in 3 months, we can see that the TOP 5 revenue
belongs to the customer groups Hibernating, Champion, Potential Loyalist, At Risk,
Loyal Customers
- However, if we look at the report, we can see that although the Hibernating Customer
group brings in TOP 1 revenue for the business, when compared to the purchasing frequency
of customers in the Loyal Customers and Champion groups. These groups show that the
purchasing frequency of this group is once a month, while the purchasing frequency of
customers belonging to the Hibernating group has a low frequency.
- The "At Risk" customer group brings in the top 5 revenue, so there needs to be a
campaign to care for them to keep them buying because customers have a very high risk of
switching to rival companies.
- In addition, the purchasing frequency of new customer groups is very high, showing that the
campaign was quite successful in attracting new customers to buy regularly. However, the
revenue brought in was not as expected. It is necessary to retain these customers, offer many
incentive programs for them, and need to convert them into potential customers.
10
Through this report, it is necessary to find a strategy to increase the purchasing frequency of the
Hiberating group and pull the number of customers from this group to the Champion/ Loyal
Customers group.
3.2. Understand your customers
Looking at the charts, we can see that the number of customers of the business is distributed
as follows:
11
- The number of customers of the Hibernating group is 31.67% compared to the remaining customer
groups and has the largest number of customer groups. Therefore, businesses that want to increase
sales need to have a strategy to care for and stimulate this group of customers so that they can return
to use the service more often and have a plan to convert this group of customers to Loyal or Potential
- Although the "Champion Customers” group brings in high revenue and ranks in the top 2, the
number of customers of this group only accounts for 7.86%. In addition, the "Loyal Customers" group
only accounts for 5.18% even though this group brings in the top 5 revenue. This shows that customer
care is not good, and promotion and marketing programs are not effective so that results in a relatively
low percentage of this customer group, while the "At Risk" and "About to sleep" customer groups
have a high percentage of customers and there has been no conversion among the groups.
3.3. Revenue growth solution for the last quarter of the year
➢ Increase conversion rate and revenue of Potential and Hibernating groups to Loyal segment:
- For customers in the Hibernating group:
• Generate attention and stimulate repeat visits by sending email notifications
about special offers, new products, or useful information. Create a special
marketing campaign to keep them coming back.
• Survey and feedback: Ask them why they haven't made a purchase recently.
Based on their feedback, you can adjust your marketing strategy to better
suit their needs.
- For customers in the Potential group:
• Create a good customer experience: Ensure that customers receive good
service, from ordering to delivery and after-sales. Address all their questions
and feedback quickly and professionally.
• Incentives and promotions: create a rewards program specifically for regular
customers. For example: Bonus points, discounts for next purchases, free
gifts.
➢ Maintain Champion and Loyal customer base.
- Understanding customers:
• Champion Customers: Continue to create positive experiences for them. Ask
them about their opinions and wishes to improve the service.
• Loyal customers: Continuously monitor their behavior. Make sure that they
still feel satisfied and that their needs are met.
- Make a good first impression:
• Champion Customers: Continue to provide high value and quality. Keep them
feeling like they made the right decision in choosing you.
• Loyal Customers: Make sure their first experience with, you is positive. They
will remember this and continue to support you.
- Offers and promotions:
• Champion Customers: Give them special offers, gifts, or exclusive
experiences. Show appreciation for them.
• Loyal customers: Build a reward program specifically for them. For example:
Bonus points, discounts, gifts.
- Interact and communicate regularly:
• Champion Customers: Contact them regularly via email, text, or call. Ask
about the situation and provide new information.
• Loyal Customers: Send notifications about new products, promotions, and
special events. Maintain interaction via social networks.
- Monitor and evaluate performance:
12
• Champion Customers: Measure their purchase frequency and interactions. Make sure
they don't get "lost".
• Loyal customers: Track RFM index (Recency, Frequency, Monetary value). Optimize
your marketing campaign based on this data.
13
CODE SQL REFERENCE
-- Tính các giá trị Recency, Frequency, Monetary
SELECT cr.Contract,
DATEDIFF(DAY, MAX(CAST(Purchase_Date AS DATE)), '2022-09-01') AS
RECENCY,
ROUND(CAST(COUNT(Purchase_date) AS FLOAT) /
CAST(DATEDIFF(YEAR, CAST(created_date AS DATE), '2022-09-01')
AS FLOAT), 2) AS FREQUENCY,
ROUND(CAST(SUM(GMV) AS FLOAT) /
CAST(DATEDIFF(YEAR, CAST(created_date AS DATE), '2022-09-01')
AS FLOAT), 2) AS MONETARY,
ROW_NUMBER()OVER(ORDER BY (MAX(CAST(Purchase_Date AS DATE)))DESC) AS
RN_RECENCY,
ROW_NUMBER()OVER(ORDER BY (ROUND(CAST(COUNT(DISTINCT Purchase_date)
AS FLOAT) /
CAST(DATEDIFF(YEAR,
CAST(created_date AS DATE), '2022-09-01') AS FLOAT), 2))) AS RN_FREQUENCY,
ROW_NUMBER()OVER(ORDER BY SUM(GMV)) AS RN_MONETARY
INTO #a
FROM Customer_Transaction ct
JOIN Customer_Registered cr ON ct.CustomerID = cr.ID
WHERE CustomerID != 0
GROUP BY cr.Contract, created_date;
-- Tính điểm RFM
SELECT Contract, RECENCY, FREQUENCY, MONETARY,
CASE
WHEN RN_RECENCY >= (SELECT MIN(RN_RECENCY) FROM #a) AND
RN_RECENCY < (SELECT CAST(COUNT(RN_RECENCY) * 0.25 AS INT)
FROM #a) THEN 4
WHEN RN_RECENCY >= (SELECT CAST(COUNT(RN_RECENCY) * 0.25 AS INT)
FROM #a) AND
RN_RECENCY < (SELECT CAST(COUNT(RN_RECENCY) * 0.5 AS INT)
FROM #a) THEN 3
WHEN RN_RECENCY >= (SELECT CAST(COUNT(RN_RECENCY) * 0.5 AS INT)
FROM #a) AND
RN_RECENCY < (SELECT CAST(COUNT(RN_RECENCY) * 0.75 AS INT)
FROM #a) THEN 2
ELSE 1
END AS R,
CASE
WHEN RN_FREQUENCY >= (SELECT MIN(RN_FREQUENCY) FROM #a) AND
RN_FREQUENCY < (SELECT CAST(COUNT(RN_FREQUENCY) * 0.25 AS
INT) FROM #a) THEN 1
WHEN RN_FREQUENCY >= (SELECT CAST(COUNT(RN_FREQUENCY) * 0.25 AS
INT) FROM #a) AND
RN_FREQUENCY < (SELECT CAST(COUNT(RN_FREQUENCY) * 0.5 AS
INT) FROM #a) THEN 2
WHEN RN_FREQUENCY >= (SELECT CAST(COUNT(RN_FREQUENCY) * 0.5 AS
INT) FROM #a) AND
RN_FREQUENCY < (SELECT CAST(COUNT(RN_FREQUENCY) * 0.75 AS
INT) FROM #a) THEN 3
ELSE 4
END AS F,
14
CASE
WHEN RN_MONETARY >= (SELECT MIN(RN_MONETARY) FROM #a) AND
RN_MONETARY < (SELECT CAST(COUNT(RN_MONETARY) * 0.25 AS
INT) FROM #a) THEN 1
WHEN RN_MONETARY >= (SELECT CAST(COUNT(RN_MONETARY) * 0.25 AS
INT) FROM #a) AND
RN_MONETARY < (SELECT CAST(COUNT(RN_MONETARY) * 0.5 AS INT)
FROM #a) THEN 2
WHEN RN_MONETARY >= (SELECT CAST(COUNT(RN_MONETARY) * 0.5 AS
INT) FROM #a) AND
RN_MONETARY < (SELECT CAST(COUNT(RN_MONETARY) * 0.75 AS
INT) FROM #a) THEN 3
ELSE 4
END AS M
INTO #RFM
FROM #a;
--Mapping các nhóm khách hàng
SELECT *,
CONCAT(R,F,M) AS 'RFM',
CASE
WHEN CONCAT(R,F,M) IN ('111', '112', '121', '131', '141') THEN
'Lost'
WHEN CONCAT(R,F,M) IN ('332', '322', '231', '241', '233', '232',
'223', '222', '132', '123', '122', '212', '211') THEN 'Hibernating'
WHEN CONCAT(R,F,M) IN ('144', '214', '215', '115', '114', '113')
THEN 'Can’t Lose Them'
WHEN CONCAT(R,F,M) IN ('243', '242', '234', '224', '143', '142',
'134', '133', '124') THEN 'At Risk'
WHEN CONCAT(R,F,M) IN ('331', '321', '312', '221', '213') THEN
'About To Sleep'
WHEN CONCAT(R,F,M) IN ('443', '434', '343', '334', '324') THEN
'Customers Needing Attention'
WHEN CONCAT(R,F,M) IN ('424', '413', '414', '415', '314', '313')
THEN 'Promising'
WHEN CONCAT(R,F,M) IN ('422', '421', '412', '411', '311') THEN
'Recent Customers'
WHEN CONCAT(R,F,M) IN ('442', '441', '431', '433', '432', '423',
'342', '341', '333', '323') THEN 'Potential Loyalist'
WHEN CONCAT(R,F,M) = '344' THEN 'Loyal Customers'
WHEN CONCAT(R,F,M) = '444' THEN 'Champion'
ELSE 'New Customers'
END AS SEGMENTATION
FROM #RFM
15