Trong bài nghiên cứu này, chúng ta sẽ sử dụng SQL để tính toán giá trị vòng đời của khách hàng (CLV).
Để đơn giản hóa việc tính toán, chúng sẽ giả định dataset của chúng ta bao gồm đầy đủ các thông tin sau:
– Về khách hàng: Customer_ID
– Về đơn hàng:
+ OrderID: ID của đơn hàng
+ Order_Date: Ngày đặt hàng
+ Revenue: Doanh thu từ hoạt động kinh doanh tính cho một đơn hàng cụ thể
+ Advertising_Cost: Chi phí quảng cáo tính cho một đơn hàng cụ thể
+ Sales_Cost: Chi phí cho hoạt động bán hàng tính cho đơn hàng cụ thể
+ Profit: Lợi nhuận cho một đơn hàng cụ thể (bằng tổng doanh thu trừ đi 2 loại chi phí kể trên)
2.1. Vấn đề gặp phải khi phân tích giá trị vòng đời khách hàng
Trong quá trình kinh doanh, doanh nghiệp gặp phải nhiều khách hàng khác nhau, mỗi khách hàng có giá trị khác nhau đối với doanh nghiệp. Để tối ưu hóa lợi nhuận và tăng trưởng, doanh nghiệp cần xác định giá trị của mỗi khách hàng và tập trung vào các khách hàng có giá trị cao nhất. Tuy nhiên, tính toán giá trị khách hàng trọn đời là một bài toán phức tạp và đòi hỏi phải xử lý và phân tích một lượng lớn dữ liệu.
2.2. Các giải pháp có thể áp dụng.
Để tính toán giá trị khách hàng trọn đời, chúng ta có thể sử dụng các phương pháp như:
– Phân tích lịch sử mua hàng của khách hàng để đánh giá mức độ trung thành và tần suất mua
hàng.
– Phân tích dữ liệu doanh thu, lợi nhuận và chi phí để tính toán giá trị của mỗi khách hàng.
– Áp dụng các mô hình dự báo để ước tính lợi nhuận tương lai của khách hàng.
2.3. Lựa chọn giải pháp tối ưu
Có rất nhiều phương pháp để tiếp cận bài toán về CLV, tuy nhiên trong bài nghiên cứu này, chúng ta sẽ sử dụng SQL để tính toán giá trị vòng đời khách hàng dựa trên các thông tin chi phí quảng cáo, chi phí bán hàng, doanh thu và lợi nhuận từ khách hàng.
3. Giải quyết bài toán
3.1. Câu lệnh, công cụ sử dụng và các bước thực hiện
Ta có công thức tính giá trị vòng đời của khách hàng như sau:
CLV = AOV x PF x GPM / CR
Trong đó:
– CLV: Customer Lifetime Value – Giá trị khách hàng trọn đời
– AOV: Average Order Value – Giá trị mua hàng trung bình (số tiền trung bình mà một nhóm khách hàng nhất định chi tiêu cho mỗi lần họ mua)
– PF: Purchase Frequency – Số lần mua hàng của một khách hàng nhất định trong một khoảng thời gian nhất định
– GPM: Gross Profit Margin – Biên lợi nhuận gộp (= Profit / Revenue)
– Churn Rate (CR): tỷ lệ khách hàng bỏ đi (= tổng số khách hàng rời đi/tổng số khách hàng)
Bước 1: Tính giá trị mua hàng trung bình của một khách hàng (AOV-Average Order Value)
SELECT Customer_Id
,AVG(Revenue) – AVG(Advertising_Cost) – AVG(Sales_Cost) AS AOV FROM FactOperation
GROUP BY Customer_Id
Bước 2: Tính toán số lần mua hàng của một khách hàng nhất định trong một khoảng thời gian nhất định (PF-Purchase Frequency)
SELECT AVG(Purchase_Frequency) AS PF
FROM
(
SELECT Customer_Id
,COUNT(DISTINCT Order_Id) / DATEDIFF(MAX(Order_Date),
MIN(Order_Date)) as Purchase_Frequency FROM Fa
WHERE
YEAR(Order_Date) =
2023 GROUP BY
Customer_Id
)
Bước 3: Tính toán biên lợi nhuận gộp (GPM-Gross Profit Margin)
SELECT
SUM(Profit) / SUM(Revenue) AS GPM
FROM FactOrperation
Bước 4: Tính toán tỷ lệ khách hàng bỏ đi (Churn Rate – CR)
SELECT COUNT(DISTINCT IF(Order_Date <= DATE_SUB(NOW(), INTERVAL 1 YEAR),
Customer_Id, NULL)) / COUNT(DISTINCT Customer_Id) AS CR
FROM FactOperation
Sau khi tính toán được các thông số trên, chúng ta có thể áp dụng công thức tính toán giá trị khách hàng trọn đời (Lifetime Value – LTV) như sau:
WITH AGC AS
(
SELECT Customer_Id
,AVG(Revenue) – AVG(Advertising_Cost) – AVG(Sales_Cost) AS AOValue
,SUM(Profit) / SUM(Revenue) AS GPMargin
,COUNT(DISTINCT IF(Order_Date <= DATE_SUB(NOW(), INTERVAL 1 YEAR), Customer_Id,
NULL)) / COUNT(DISTINCT Customer_Id) AS CRate FROM FactOperation
GROUP BY Customer_Id
)
,PF AS ]
(
SELECT Customer_Id
,AVG(Purchase_Frequency) AS PFreq
FROM
(
SELECT Customer_Id
,COUNT(DISTINCT Order_Id) / DATEDIFF(MAX(Order_Date),
MIN(Order_Date)) as Purchase_Frequency
FROM FactOperation
WHERE YEAR(Order_Date) = YEAR(NOW())
GROUP BY Customer_Id
)
GROUP BY Customer_Id
)
SELECT Customer_Id
,AOValue * GPMargin * PFreq /CRate AS CLV
FROM AGC
JOIN PF
ON AGC.Customer_Id = PF.Customer_Id
3.2. Kết quả thu được.
Sau khi chạy các câu lệnh SQL trên, chúng ta sẽ có được kết quả tính toán các thông số liên quan đến giá trị vòng đời của khách hàng (CLV).
Ví dụ về kết quả:
Customer_Id | CLV |
23000001 | 45 |
23000002 | 50 |
23000003 | 55 |
4. Ứng dụng mở rộng
Bài toán CLV với SQL không chỉ giúp chúng ta tính toán giá trị khách hàng trọn đời, mà còn giúp ta phân tích các thông số khác như tỷ lệ khách hàng bỏ đi, chi phí để thu hút một khách hàng mới, tỷ suất lợi nhuận gộp, … để từ đó đưa ra các quyết định kinh doanh phù hợp nhằm tối ưu hóa chi phí và tăng doanh thu.
Bài toán CLV là một bài toán quan trọng trong lĩnh vực
marketing và kinh doanh. Bằng việc sử dụng SQL, ta có thể tính toán giá trị vòng đời khách hàng một cách hiệu quả và đơn giản, giúp ta nhanh chóng có được thông tin cần thiết để đưa ra quyết định kinh doanh phù hợp.