Việc xác định khách hàng đang hoạt động, ngừng mua hay đã rời bỏ không chỉ là đặt tên cho các nhóm dữ liệu. Những định nghĩa này ảnh hưởng trực tiếp đến báo cáo giữ chân, danh sách chăm sóc và nhãn dùng để huấn luyện mô hình Machine Learning.
Bài viết giải thích cách phân biệt các trạng thái, lựa chọn ngưỡng không mua và xây dựng quy tắc phân loại có thể kiểm tra. Các số liệu trong ví dụ đều là giả định để minh họa, không phải chuẩn ngành.
1. Vì sao khó xác định khách hàng đã rời bỏ?
1.1. Không mua chưa đồng nghĩa với kết thúc quan hệ
Dữ liệu giao dịch cho biết khách đã mua gì và vào thời điểm nào. Tuy nhiên, dữ liệu đó thường không trực tiếp cho biết khách còn muốn tiếp tục mua trong tương lai hay không.
Một người chưa quay lại có thể đang sử dụng hết sản phẩm cũ, chờ mùa mua sắm tiếp theo, chuyển sang đối thủ hoặc không còn nhu cầu. Những tình huống khác nhau này đều có thể tạo ra cùng một biểu hiện: không phát sinh đơn hàng mới.
Vì vậy, cần phân biệt hành vi không mua quan sát được với sự kết thúc quan hệ chưa chắc quan sát được.
1.2. Contractual và Noncontractual
| Bối cảnh | Ví dụ | Cách quan sát rời bỏ |
|---|---|---|
| Contractual | Dịch vụ đăng ký hoặc thuê bao có hợp đồng | Có thể ghi nhận việc hủy hoặc hết hiệu lực theo quy tắc dịch vụ |
| Noncontractual | Siêu thị, cửa hàng thời trang, website bán hàng | Thường không có thông báo chính thức khi khách ngừng mua |
Trong môi trường Noncontractual, doanh nghiệp khó phân biệt khách đã chấm dứt quan hệ với khách đang có khoảng nghỉ dài giữa các giao dịch. Đây là vấn đề được đề cập trong nghiên cứu Customer-Base Analysis của Fader, Hardie và Shang [1].
Ngay cả với Contractual, cần xác định rõ rời bỏ được ghi nhận tại ngày yêu cầu hủy hay ngày dịch vụ thực sự kết thúc. Hủy một gói cũng chưa chắc đồng nghĩa với chấm dứt toàn bộ quan hệ với doanh nghiệp.
2. Khách hàng đang hoạt động là gì?
2.1. Định nghĩa Active Customer
Active Customer là khách đáp ứng điều kiện hoạt động trong một khoảng thời gian xác định.
Ví dụ, doanh nghiệp có thể định nghĩa khách đang hoạt động là người có ít nhất một đơn hàng hợp lệ trong 30 ngày gần nhất. Định nghĩa này cần nêu rõ:
- Hành vi nào được tính là hoạt động.
- Khoảng thời gian được sử dụng.
- Điều kiện xác định một giao dịch hợp lệ.
- Ngày đánh giá và phạm vi dữ liệu.
Một khách được gắn nhãn Active chỉ có nghĩa là họ đáp ứng quy tắc hiện tại. Nhãn này không bảo đảm khách sẽ mua tiếp hoặc trung thành với thương hiệu.
2.2. Hoạt động tương tác khác hoạt động mua hàng
Khách mở ứng dụng mỗi ngày nhưng không đặt đơn trong nhiều tháng có thể vẫn hoạt động về tương tác, đồng thời không hoạt động về mua hàng.
Do đó, các chỉ tiêu như người dùng hoạt động, khách mua hàng hoạt động và thành viên có tương tác cần được đặt tên riêng. Không nên dùng lượt truy cập để thay thế trực tiếp cho hành vi mua lại.
3. Khách hàng ngừng mua và khách hàng rời bỏ khác nhau thế nào?
3.1. Inactive Customer và Dormant Customer
Inactive Customer là khách không phát sinh hành vi đáp ứng điều kiện trong khoảng thời gian được xét.
Dormant Customer thường được dùng để chỉ khách đã im lặng đủ lâu để doanh nghiệp cân nhắc tái kích hoạt. Tuy nhiên, không có một ngưỡng ngày thống nhất cho thuật ngữ này trong mọi ngành hàng.
Trong bài viết này, “ngừng mua” mô tả trạng thái quan sát tại ngày đánh giá. Nó chưa xác định nguyên nhân hoặc khả năng quay lại.
3.2. Churned Customer và Operational Churn
Churned Customer có thể được hiểu theo hai cách:
- Rời bỏ được quan sát: có sự kiện kết thúc quan hệ trong phạm vi đã định nghĩa.
- Operational Churn: khách bị gắn nhãn rời bỏ theo quy tắc vận hành, chẳng hạn không mua quá một số ngày nhất định.
Trong bán lẻ và thương mại điện tử, Operational Churn thường dễ triển khai hơn. Tuy nhiên, đây là nhãn quy ước, không phải xác nhận rằng khách sẽ không bao giờ quay lại.
3.3. At-risk Customer và Reactivated Customer
At-risk Customer là khách có dấu hiệu suy giảm hoạt động hoặc có nguy cơ không mua lại theo tiêu chí đã chọn. Tiêu chí có thể là một ngưỡng ngày hoặc điểm rủi ro từ mô hình.
Reactivated Customer là khách phát sinh giao dịch mới sau khi từng được xếp vào nhóm không hoạt động hoặc rời bỏ theo quy ước.
Reactivated mô tả một sự chuyển trạng thái. Sau khi mua lại, khách có thể vừa được ghi nhận là tái kích hoạt, vừa đáp ứng điều kiện Active tại ngày đánh giá.
4. Cần xác định những gì trước khi phân loại khách hàng?
4.1. Đối tượng và hành vi hợp lệ
Trước hết, cần xác định ai thuộc phạm vi phân loại. Người chưa từng có đơn hợp lệ thường nên được quản lý như khách tiềm năng hoặc người chưa chuyển đổi, thay vì khách đã rời bỏ mua hàng.
Tiếp theo là định nghĩa đơn hợp lệ. Doanh nghiệp cần thống nhất cách xử lý đơn bị hủy, đơn thử nghiệm, hoàn tiền và hoàn trả toàn bộ.
4.2. Phạm vi quan hệ khách hàng
Một người ngừng mua trên website nhưng tiếp tục mua tại cửa hàng có thể không hoạt động ở kênh online, nhưng vẫn hoạt động ở cấp doanh nghiệp.
Tương tự, khách không mua mỹ phẩm nhưng vẫn mua thực phẩm chưa chắc đã rời bỏ thương hiệu. Phạm vi phân tích cần được ghi rõ là toàn doanh nghiệp, từng kênh hay từng ngành hàng.
4.3. Ngày đánh giá và chất lượng quan sát
Trạng thái khách hàng phải gắn với một ngày đánh giá cụ thể. Cùng một người có thể Active ở cuối tháng trước và Dormant ở cuối tháng này.
Nếu giao dịch chưa đồng bộ đầy đủ hoặc danh tính khách chưa được liên kết, nên có trạng thái Unknown để xử lý riêng. Thiếu dữ liệu không phải bằng chứng rời bỏ.
5. Chọn ngưỡng ngừng mua như thế nào?
5.1. Bắt đầu với Recency
Recency trong quy tắc phân loại này là thời gian kể từ lần mua hợp lệ gần nhất đến ngày đánh giá.
Recency = Ngày đánh giá - Ngày mua hợp lệ gần nhất
Recency càng lớn nghĩa là khách đã lâu chưa mua. Tuy nhiên, cùng một giá trị có thể mang ý nghĩa khác nhau giữa các ngành hàng và nhóm khách.
Cần thống nhất cách tính theo ngày lịch hay số giờ đã trôi qua, đồng thời sử dụng một múi giờ nhất quán.
5.2. Xem xét Interpurchase Time
Interpurchase Time là khoảng thời gian giữa hai lần mua liên tiếp. Phân phối của khoảng thời gian này giúp hiểu nhịp mua và mức độ khác biệt giữa các nhóm.
Có thể khảo sát trung vị và các phân vị theo ngành hàng. Tuy nhiên, một phân vị cao không tự động là ngưỡng rời bỏ tối ưu.
Nếu chỉ tính trên người đã quay lại, kết quả sẽ bỏ qua những khoảng chờ chưa kết thúc. Điều này có thể khiến người phân tích đánh giá thấp thời gian chờ thực tế.
5.3. Kết hợp chu kỳ mua, mùa vụ và mục tiêu hành động
- Chọn nhóm khách có đặc điểm mua sắm tương đối đồng nhất.
- Khảo sát khoảng cách giao dịch và ảnh hưởng của mùa vụ.
- Đề xuất các ngưỡng phù hợp với mục tiêu sử dụng.
- Kiểm tra hành vi mua lại sau khi khách vượt từng ngưỡng.
- Đánh giá chi phí của việc can thiệp quá sớm hoặc quá muộn.
Ngưỡng để gửi nhắc mua có thể sớm hơn ngưỡng dùng để báo cáo không hoạt động dài hạn. Nếu có nhiều bộ ngưỡng, cần đặt tên và quản lý phiên bản rõ ràng.
6. Ví dụ phân loại trạng thái bằng Recency
6.1. Một bộ ngưỡng minh họa
Giả sử cửa hàng chọn bộ ngưỡng dưới đây cho một nhóm sản phẩm mua tương đối thường xuyên. Các ngưỡng chỉ phục vụ minh họa.
| Recency | Trạng thái | Ý nghĩa vận hành |
|---|---|---|
| 0–30 ngày | Active | Có giao dịch gần đây theo cửa sổ đã chọn |
| 31–60 ngày | At-risk theo quy tắc | Vượt cửa sổ hoạt động, cần theo dõi |
| 61–90 ngày | Dormant | Không mua trong khoảng thời gian dài hơn |
| Trên 90 ngày | Operational Churn | Rời bỏ theo ngưỡng vận hành |
Các dải không chồng lấn nên mỗi khách đủ điều kiện chỉ nhận một trạng thái chính. At-risk ở đây là tên một dải Recency, không phải xác suất được mô hình ước lượng.
6.2. Vì sao quy tắc chung có thể bỏ qua khác biệt cá nhân?
Khách A có Recency bằng 20 ngày sẽ được xếp Active. Nhưng nếu trước đây họ mua mỗi tuần, nhịp giao dịch đã có dấu hiệu chậm lại.
Khách B có Recency bằng 45 ngày sẽ được xếp At-risk. Tuy nhiên, nếu họ thường mua sau khoảng hai tháng, trạng thái hiện tại có thể chưa bất thường.
Quy tắc chung thuận tiện cho báo cáo nhưng không phản ánh hết lịch sử cá nhân. Với khách chỉ mua một lần, chưa đủ thông tin để ước lượng nhịp mua riêng; có thể cần tham chiếu nhóm tương đồng.
6.3. Sơ đồ chuyển trạng thái
Khi không có giao dịch mới:
Active --> At-risk --> Dormant --> Operational Churn
Khi phát sinh đơn hợp lệ mới:
At-risk / Dormant / Operational Churn
|
v
Active
Quay lại từ Dormant hoặc Operational Churn:
ghi nhận thêm sự kiện Reactivated.
Khách quay lại sau khi bị gắn Operational Churn không tạo ra mâu thuẫn. Nhãn trước đó mô tả việc vượt ngưỡng không mua, không khẳng định kết thúc quan hệ vĩnh viễn.
7. Triển khai quy tắc phân loại trong dữ liệu
7.1. Mã giả phân loại tại ngày đánh giá
IF data_quality_ok = FALSE:
status = "Unknown"
ELSE IF last_valid_purchase_date IS NULL:
status = "No valid purchase"
ELSE:
recency_days = evaluation_date - last_valid_purchase_date
IF recency_days < 0:
status = "Data error"
ELSE IF recency_days <= 30:
status = "Active"
ELSE IF recency_days <= 60:
status = "At-risk"
ELSE IF recency_days <= 90:
status = "Dormant"
ELSE:
status = "Operational Churn"
Ngày mua gần nhất phải được xác định từ thông tin có sẵn đến ngày đánh giá. Khi dựng lại trạng thái quá khứ, không được dùng đơn hàng tương lai để thay đổi những gì có thể biết tại thời điểm đó.
7.2. Lưu Snapshot và phiên bản quy tắc
Một bảng Snapshot có thể chứa các trường sau:
customer_id: mã khách hàng.evaluation_date: ngày đánh giá.recency_days: số ngày kể từ lần mua gần nhất.status: trạng thái tại ngày đánh giá.scope: phạm vi kênh hoặc ngành hàng.rule_version: phiên bản định nghĩa.
Nếu đổi ngưỡng từ 90 lên 120 ngày, số khách mang nhãn rời bỏ có thể giảm dù không có giao dịch mới. Lưu phiên bản giúp phân biệt thay đổi hành vi với thay đổi cách đo.
8. Từ nhãn vận hành đến mô hình xác suất
8.1. Probability Alive là gì?
Một số mô hình Customer-Base Analysis ước lượng xác suất khách vẫn còn trong quá trình mua sắm dựa trên lịch sử giao dịch. Tài liệu PyMC-Marketing mô tả cách tính Probability Alive trong mô hình Pareto/NBD [2].
Đây là xác suất theo mô hình và các giả định của nó, không phải bằng chứng trực tiếp về ý định khách hàng. Probability Alive cũng khác xác suất có đơn trong 30 ngày tới: khách vẫn duy trì quan hệ có thể chưa cần mua trong một cửa sổ ngắn.
Cần kiểm tra định nghĩa biến đầu vào. Trong một số mô hình mua lặp lại, Recency là thời gian từ lần mua đầu đến lần mua gần nhất, khác với định nghĩa số ngày kể từ lần mua gần nhất ở trên.
8.2. Survival Analysis và Right Censoring
Nếu sự kiện nghiên cứu là lần mua tiếp theo, khách chưa quay lại trước ngày chốt có thời gian chờ chưa hoàn tất.
Đây là Right Censoring: biết sự kiện chưa xảy ra đến một mốc quan sát, nhưng chưa biết thời điểm xảy ra sau mốc đó. Survival Analysis cung cấp phương pháp phân tích dữ liệu thời gian đến sự kiện có Censoring [3].
Tuy nhiên, phương pháp này không tự tạo ra thời điểm rời bỏ thực sự nếu sự kiện đó không được quan sát. Người phân tích vẫn phải định nghĩa đúng sự kiện và xem xét các giả định của mô hình.
8.3. Nhãn Churn Prediction cần có thời hạn
Giả sử tại ngày t, mục tiêu là dự đoán khách có mua trong 60 ngày tiếp theo hay không:
Y = 1:
Không có đơn hợp lệ trong khoảng (t, t + 60 ngày]
Y = 0:
Có ít nhất một đơn hợp lệ trong khoảng đó
Nhãn Y = 1 có nghĩa là không mua trong cửa sổ 60 ngày. Nếu gọi nhãn này là Churn, cần ghi rõ định nghĩa; nó không có nghĩa khách sẽ không bao giờ quay lại.
- Features chỉ sử dụng thông tin có sẵn tại hoặc trước ngày t.
- Chỉ tạo nhãn hoàn chỉnh khi đã theo dõi đủ cửa sổ tương lai.
- Tách dữ liệu đánh giá theo thời gian phù hợp với triển khai.
- Kiểm tra mô hình trên đúng nhóm khách sẽ được áp dụng.
Nếu nhãn chỉ là Recency hiện tại lớn hơn 90 ngày, một quy tắc đã đủ để xác định kết quả. Huấn luyện mô hình tái tạo quy tắc đó không đồng nghĩa với dự đoán hành vi tương lai.
9. Những sai lầm thường gặp
9.1. Áp dụng một ngưỡng cho mọi ngành hàng
Chu kỳ mua thực phẩm, thời trang và thiết bị gia dụng khác nhau. Một ngưỡng chung có thể phân loại sai nhu cầu mua sắm bình thường thành dấu hiệu rời bỏ.
9.2. Bỏ qua việc khách chuyển kênh
Khách ngừng mua online có thể vẫn mua tại cửa hàng. Nếu dữ liệu không được liên kết, doanh nghiệp có thể đánh giá thấp khả năng giữ chân.
9.3. Nhầm quy mô trạng thái với tỷ lệ chuyển trạng thái
Số khách đang mang nhãn Operational Churn cuối tháng là một đại lượng tại thời điểm chốt. Số khách mới chuyển sang trạng thái đó trong tháng là một đại lượng phát sinh trong kỳ.
Hai đại lượng trả lời những câu hỏi khác nhau. Không nên mặc định lấy tổng khách mang nhãn rời bỏ chia cho tổng khách rồi gọi đó là tỷ lệ rời bỏ phát sinh trong tháng.
9.4. Coi khách có rủi ro cao là khách chắc chắn cần ưu đãi
Khả năng không mua lại và khả năng phản ứng với ưu đãi là hai vấn đề khác nhau. Một khách có rủi ro cao có thể vẫn không mua dù được giảm giá; một khách khác sẽ mua mà không cần can thiệp.
Muốn đánh giá hiệu quả chăm sóc, cần đo tác động tăng thêm của can thiệp bằng thiết kế đánh giá phù hợp, thay vì chỉ nhìn tỷ lệ mua lại của người được nhận ưu đãi.
10. Checklist xây dựng định nghĩa trạng thái khách hàng
- Đã xác định đối tượng được đưa vào phân loại.
- Đã ghi rõ phạm vi toàn doanh nghiệp, kênh hoặc ngành hàng.
- Đã định nghĩa giao dịch hợp lệ.
- Đã thống nhất ngày đánh giá và múi giờ.
- Đã xem xét chu kỳ mua và mùa vụ.
- Đã thiết kế các trạng thái chính không chồng lấn.
- Đã có cách xử lý dữ liệu thiếu hoặc chưa đầy đủ.
- Đã quy định sự kiện tái kích hoạt.
- Đã lưu Snapshot và phiên bản quy tắc.
- Đã kiểm tra hành vi tương lai trên các giai đoạn đủ thời gian theo dõi.
Checklist giúp định nghĩa có thể triển khai và kiểm tra lại. Nó không thay thế việc đánh giá mức độ phù hợp với mô hình kinh doanh cụ thể.
11. Kết luận
Khách đang hoạt động, ngừng mua và đã rời bỏ là những khái niệm cần được gắn với hành vi, thời gian và phạm vi quan sát rõ ràng.
Trong bán lẻ và thương mại điện tử, không mua gần đây thường chỉ cho biết trạng thái giao dịch. Muốn gọi đó là rời bỏ, doanh nghiệp cần nói rõ đang dựa trên sự kiện được quan sát, ngưỡng vận hành hay xác suất từ mô hình.
Với người mới học Data và Machine Learning, phân biệt được ba lớp này là nền tảng để xây dựng báo cáo giữ chân, thiết kế nhãn Churn Prediction và diễn giải kết quả đúng giới hạn của dữ liệu.
12. Tài liệu tham khảo
- Fader, P. S., Hardie, B. G. S. và Shang, J. (2010). Customer-Base Analysis in a Discrete-Time Noncontractual Setting. Marketing Science, 29(6). Nghiên cứu về hành vi mua lặp lại và trạng thái quan hệ trong môi trường không có hợp đồng. Đọc nghiên cứu Customer-Base Analysis.
- PyMC-Marketing. ParetoNBDModel.expected_probability_alive. Tài liệu kỹ thuật về ước lượng Probability Alive từ lịch sử giao dịch trong mô hình Pareto/NBD. Đọc tài liệu Probability Alive.
- scikit-survival. Introduction to Survival Analysis. Tài liệu nền tảng về thời gian đến sự kiện và dữ liệu Right-Censored. Đọc tài liệu Survival Analysis.
13. Học thêm Data, AI và phân tích khách hàng tại MCNA
Nếu bạn muốn củng cố nền tảng Python, Data Analysis và kỹ năng xây dựng báo cáo để thực hành các bài toán phân tích khách hàng, có thể tham khảo các chương trình học tại MCNA Technology School:
- Combo 5 khóa AI & Power BI: Tìm hiểu chương trình Combo 5 khóa AI & Power BI
- Combo Python: Tìm hiểu chương trình Combo Python
Tác giả
Nguyễn Quốc Hải – Data Analyst tại MCNA Technology School
MCNA Technology School là đơn vị tiên phong đào tạo AI, Big Data, Business Intelligence tại Việt Nam. Chuyên sâu về Power BI, Python, SQL và Data Analytics — đối tác đào tạo của 300+ doanh nghiệp lớn như Viettel Global, Masan Group, Techcombank, VPBank, Daikin.
🌐 Website: mcna.vn
📘 Facebook: facebook.com/mcnatechnologyschool
▶️ YouTube: youtube.com/@mcna.technology.school
💼 LinkedIn: linkedin.com/company/mcna-vn
📞 Hotline: 0939.866.825 (Mr. Minh Khang)
📍 Hà Nội: 30 Trung Liệt, Đống Đa | Liền kề 44B, TT2, Văn Quán, Hà Đông
📍 TP.HCM: The BIB Space, 50B Phan Tây Hồ, Cầu Kiệu

