Thực hiện bài toán tính giá trị vòng đời của khách hàng (CLV) bằng SQL.

Ngày đăng: 22/05/2023
Trong các hoạt động kinh doanh của doanh nghiệp, khách hàng là một trong những yếu tố quan trọng giúp doanh nghiệp đạt được thành công và tăng trưởng lâu dài. Giải quyết bài toán về giá trị vòng đời của khách hàng (CLV) là một trong những hướng đi mà doanh nghiệp có thể lựa chọn để vừa có thể tiết kiệm chi phí, cũng vừa đem lại lợi nhuận lâu dài.

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)

I. Nội dung phân tích giá trị vòng đời khách hàng

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)

 Để thực hiện tính toán trong SQL, chúng ta có thể làm theo lần lượt các bước sau:

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 thể tính toán giá trị vòng đời khách hàng một cách hiệu quả đơn giản, giúp ta nhanh chóng        được thông tin cần thiết để đưa ra quyết định kinh doanh phù hợp.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *