MinAI - Về trang chủ
Lý thuyết
5/1360 phút
Đang tải...

Customer Segmentation

RFM Analysis, phân khúc khách hàng, customer profiles và Customer Lifetime Value (CLV)

0

🎯 Mục tiêu bài học

TB5 min
Sau bài học này, bạn sẽ:
  • Hiểu tại sao phân khúc khách hàng là cốt lõi của E-commerce Analytics
  • Thực hiện RFM Analysis đầy đủ bằng SQL trên dataset ShopVN
  • Tạo customer segments và mô tả profile từng nhóm
  • Tính toán Customer Lifetime Value (CLV) và ý nghĩa kinh doanh
  • Đề xuất chiến lược marketing phù hợp cho từng segment
📋 Thông tin bài học
Thông tinChi tiết
⏱️ Thời lượng60 phút
📖 Chủ đề chínhRFM Analysis, Customer Segments, CLV
💡 Kiến thức cần cóBài 01-04, SQL Window Functions
🎯 OutputRFM segmentation cho 80K khách hàng ShopVN
1

📖 Thuật ngữ quan trọng

TB5 min
Thuật ngữTiếng ViệtMô tả
RFMRecency-Frequency-MonetaryMô hình phân khúc dựa trên 3 chiều: gần đây, tần suất, giá trị
RecencyĐộ gần đâySố ngày kể từ lần mua cuối
FrequencyTần suấtSố lần mua hàng trong khoảng thời gian
MonetaryGiá trị tiền tệTổng chi tiêu trong khoảng thời gian
CLVCustomer Lifetime ValueTổng giá trị kỳ vọng một khách hàng mang lại
ChurnRời bỏKhách hàng ngừng mua hàng
WinbackKéo lạiChiến lược thu hút khách đã rời bỏ quay lại
High-valueGiá trị caoKhách hàng có spending hoặc CLV cao
Segment ProfileHồ sơ phân khúcMô tả đặc điểm, hành vi của một nhóm khách hàng
PercentilePhân vịĐiểm chia dữ liệu thành 100 phần bằng nhau

Checkpoint

RFM gồm 3 chiều: Recency (mua gần đây?), Frequency (mua thường xuyên?), Monetary (chi tiêu nhiều?). Mỗi chiều được chia thành 4-5 nhóm tạo ra các customer segments. CLV dự đoán tổng giá trị khách hàng mang lại trong tương lai.

2

📊 Tại sao phân khúc khách hàng?

TB5 min

Quy tắc 80/20 trong E-commerce

Pareto Principle trong E-commerce

20% khách hàng tạo ra 80% doanh thu. Không phải tất cả khách hàng đều giống nhau — việc đối xử giống nhau với mọi khách hàng là lãng phí ngân sách marketingbỏ lỡ cơ hội upsell.

Segmentation giúp gì?

Lợi ích của Customer Segmentation

👥Customer Segmentation
📢Targeted Marketing
Personalized offers
Right channel, right time
🔄Customer Retention
Early churn detection
Winback campaigns
💰Revenue Growth
Upsell/Cross-sell
Optimize CAC
3

🔢 RFM Analysis — Lý thuyết

TB5 min

3 chiều của RFM

ChiềuÝ nghĩaCách tínhHigh = Good?
R (Recency)Mua gần đâySố ngày từ last purchase đến hôm naySố ngày NHỎ = Tốt
F (Frequency)Mua thường xuyênTổng số đơn hàngSố đơn LỚN = Tốt
M (Monetary)Chi tiêu nhiềuTổng tiền chi tiêuTổng tiền LỚN = Tốt

Scoring: Chia thành 4 nhóm (1-4)

Quy trình RFM Scoring

🧮Tính R, F, M
📊Xếp hạng (1-4)
🔗Ghép RFM Score
👥Gán Segment
R ScoreÝ nghĩaF ScoreÝ nghĩaM ScoreÝ nghĩa
4Rất gần (0-30 ngày)4Rất thường xuyên4Chi tiêu rất cao
3Gần (31-90 ngày)3Thường xuyên3Chi tiêu cao
2Khá lâu (91-180 ngày)2Trung bình2Chi tiêu trung bình
1Rất lâu (180+ ngày)1Hiếm khi1Chi tiêu thấp
4

💻 RFM Analysis — Thực hành SQL

TB5 min

Step 1: Tính R, F, M cho mỗi khách hàng

SQL
1-- Step 1: Tính Recency, Frequency, Monetary
2WITH rfm_base AS (
3 SELECT
4 customer_id,
5 DATEDIFF(DAY, MAX(order_date), '2024-12-31') AS recency_days,
6 COUNT(DISTINCT order_id) AS frequency,
7 SUM(total_amount) AS monetary
8 FROM fact_orders
9 WHERE status = 'Delivered'
10 AND YEAR(order_date) IN (2023, 2024)
11 GROUP BY customer_id
12),
13
14-- Step 2: Scoring bằng NTILE (chia 4 nhóm)
15rfm_scores AS (
16 SELECT
17 customer_id,
18 recency_days,
19 frequency,
20 monetary,
21 -- Recency: ngày càng nhỏ càng tốt → score cao
22 NTILE(4) OVER (ORDER BY recency_days DESC) AS r_score,
23 -- Frequency: càng nhiều càng tốt → score cao
24 NTILE(4) OVER (ORDER BY frequency ASC) AS f_score,
25 -- Monetary: càng lớn càng tốt → score cao
26 NTILE(4) OVER (ORDER BY monetary ASC) AS m_score
27 FROM rfm_base
28)
29
30-- Step 3: Tạo RFM segment
31SELECT
32 customer_id,
33 recency_days,
34 frequency,
35 monetary,
36 r_score,
37 f_score,
38 m_score,
39 CONCAT(r_score, f_score, m_score) AS rfm_score,
40 CASE
41 WHEN r_score >= 3 AND f_score >= 3 AND m_score >= 3 THEN 'Champions'
42 WHEN r_score >= 3 AND f_score >= 2 AND m_score >= 2 THEN 'Loyal Customers'
43 WHEN r_score >= 3 AND f_score <= 2 THEN 'New Customers'
44 WHEN r_score = 2 AND f_score >= 2 THEN 'At Risk'
45 WHEN r_score = 2 AND f_score = 1 THEN 'About to Sleep'
46 WHEN r_score = 1 AND f_score >= 3 THEN 'Cant Lose Them'
47 WHEN r_score = 1 AND f_score >= 2 THEN 'Hibernating'
48 WHEN r_score = 1 AND f_score = 1 THEN 'Lost'
49 ELSE 'Others'
50 END AS segment
51FROM rfm_scores;

Step 2: Thống kê theo Segment

SQL
1-- Tổng hợp khách hàng theo segment
2WITH rfm_full AS (
3 -- (... CTE bên trên ...)
4 SELECT *, CASE ... END AS segment FROM rfm_scores
5)
6SELECT
7 segment,
8 COUNT(*) AS customers,
9 ROUND(COUNT(*) * 100.0 / SUM(COUNT(*)) OVER(), 1) AS pct_customers,
10 ROUND(AVG(recency_days), 0) AS avg_recency,
11 ROUND(AVG(frequency), 1) AS avg_frequency,
12 ROUND(AVG(monetary), 0) AS avg_monetary,
13 SUM(monetary) AS total_revenue,
14 ROUND(SUM(monetary) * 100.0 / SUM(SUM(monetary)) OVER(), 1) AS pct_revenue
15FROM rfm_full
16GROUP BY segment
17ORDER BY avg_monetary DESC;

Checkpoint

RFM Analysis gồm 3 bước: (1) Tính R, F, M cho mỗi khách hàng, (2) Scoring bằng NTILE chia 4 nhóm, (3) Gán segment dựa trên tổ hợp scores. NTILE(4) tự động chia đều khách hàng thành 4 nhóm theo thứ tự.

5

👥 Customer Segment Profiles

TB5 min

8 Segments chính

SegmentRFMMô tảChiến lược
ChampionsCaoCaoCaoKhách VIP, mua thường xuyên, chi tiêu lớnReward program, exclusive offers
Loyal CustomersCaoTB+TB+Khách trung thành, mua đều đặnUpsell, cross-sell, referral
New CustomersCaoThấpMới mua lần đầu hoặc ítWelcome series, nurture
At RiskTBTB+Từng mua thường, đang giảm dầnWin-back offers, surveys
About to SleepTBThấpSắp trở thành inactiveRe-engagement campaign
Cant Lose ThemThấpCaoTừng rất active, lâu không quay lạiAggressive win-back, special deals
HibernatingThấpTBĐã ngừng mua một thời gianDiscount codes, what is new
LostThấpThấpThấpĐã mất — khó kéo lạiLast-chance offers hoặc bỏ qua

Chiến lược Marketing theo Segment

Chiến lược theo RFM Segment

📢Marketing Strategy
🏆Retain (Giữ chân)
Champions: VIP rewards
Loyal: Upsell/Cross-sell
📈Grow (Phát triển)
New: Onboarding series
At Risk: Personalized offers
🔄Win-back (Kéo lại)
Cant Lose: Big discounts
Lost: Last-chance email
6

💰 Customer Lifetime Value (CLV)

TB5 min

CLV là gì?

Customer Lifetime Value

CLV dự đoán tổng giá trị mà một khách hàng sẽ mang lại trong toàn bộ thời gian họ là khách hàng. CLV giúp trả lời: "Nên chi bao nhiêu để có được một khách hàng mới?" (CAC phải thấp hơn CLV).

Tính CLV đơn giản

SQL
1-- CLV = Avg Order Value × Purchase Frequency × Customer Lifespan
2WITH customer_metrics AS (
3 SELECT
4 customer_id,
5 COUNT(DISTINCT order_id) AS total_orders,
6 SUM(total_amount) AS total_spent,
7 AVG(total_amount) AS avg_order_value,
8 DATEDIFF(MONTH, MIN(order_date), MAX(order_date)) + 1 AS active_months,
9 DATEDIFF(DAY, MAX(order_date), '2024-12-31') AS days_since_last
10 FROM fact_orders
11 WHERE status = 'Delivered'
12 GROUP BY customer_id
13)
14SELECT
15 -- Thống kê tổng thể
16 COUNT(*) AS total_customers,
17 ROUND(AVG(avg_order_value), 0) AS avg_aov,
18 ROUND(AVG(total_orders), 1) AS avg_frequency,
19 ROUND(AVG(active_months), 1) AS avg_lifespan_months,
20 ROUND(AVG(total_spent), 0) AS avg_clv,
21
22 -- Phân bố CLV
23 ROUND(PERCENTILE_CONT(0.25) WITHIN GROUP (ORDER BY total_spent), 0) AS clv_p25,
24 ROUND(PERCENTILE_CONT(0.50) WITHIN GROUP (ORDER BY total_spent), 0) AS clv_median,
25 ROUND(PERCENTILE_CONT(0.75) WITHIN GROUP (ORDER BY total_spent), 0) AS clv_p75,
26 ROUND(PERCENTILE_CONT(0.95) WITHIN GROUP (ORDER BY total_spent), 0) AS clv_p95
27FROM customer_metrics;

CLV theo Segment

SQL
1-- CLV trung bình theo RFM segment
2-- (Giả sử đã có bảng rfm_segments từ bước trước)
3SELECT
4 segment,
5 COUNT(*) AS customers,
6 ROUND(AVG(monetary), 0) AS avg_clv,
7 ROUND(AVG(frequency), 1) AS avg_orders,
8 ROUND(AVG(monetary / NULLIF(frequency, 0)), 0) AS avg_order_value
9FROM rfm_segments
10GROUP BY segment
11ORDER BY avg_clv DESC;
CLV Rule of Thumb

Trong E-commerce, CLV nên gấp ít nhất 3 lần CAC (Chi phí có được khách hàng). Nếu trung bình CLV = 5M VND, thì CAC không nên vượt quá 1.67M VND. Champions có CLV cao gấp 5-10 lần Lost customers.

7

📋 Tổng kết

TB5 min

Kiến thức đã học

Chủ đềNội dung chính
Tại sao segmentation20% khách tạo 80% doanh thu — cần đối xử khác nhau
RFM AnalysisRecency × Frequency × Monetary scoring
SQL ImplementationNTILE(4) + CASE WHEN để tạo segments
8 SegmentsChampions → Loyal → New → At Risk → Lost
Marketing StrategyRetain (Champions), Grow (New), Win-back (Lost)
CLVAOV × Frequency × Lifespan, CLV nên gấp 3 lần CAC

Key Takeaways

  1. RFM là phương pháp segmentation phổ biến nhất — đơn giản, hiệu quả, actionable
  2. Champions (10-15%) tạo ra 40-50% doanh thu — ưu tiên giữ chân nhóm này
  3. CLV giúp quyết định ngân sách marketing — chi bao nhiêu để có 1 khách mới
  4. ✅ Mỗi segment cần chiến lược riêng — không one-size-fits-all

Bài tiếp theo: Cohort & Retention Analysis →

🎉 Bạn đã thành thạo RFM Customer Segmentation! Bài tiếp theo sẽ phân tích retention và churn theo cohort.