Xác định khách hàng có khả năng rời bỏ

Xác định khách hàng có khả năng rời bỏ trong Power BI

Ngày đăng: 21/02/2024

Các doanh nghiệp phụ thuộc rất nhiều vào việc giữ chân khách hàng để đảm bảo sự tăng trưởng và thành công liên tục. Để đảm bảo được điều đó, chúng ta cần tìm ra các khách hàng có khả năng rời bỏ, hay có khả năng dừng sử dụng dịch vụ/sản phẩm của thương hiệu.

Tùy vào doanh nghiệp sẽ có điều kiện để định nghĩa thế nào là khách hàng rời bỏ, thông thường chúng ta sẽ gắn với việc khách hàng không có giao dịch trong một khoảng thời gian nhất định. Ví dụ như khách hàng có giao dịch vào tháng trước nhưng không có giao dịch trong tháng này. 

Tuy nhiên khi giải quyết bài toán này, sẽ có một vấn đề đó là nếu chúng ta không muốn cố định khoảng thời gian chúng ta muốn quan sát theo tháng, và có thể thay đổi linh hoạt tùy theo chu kỳ của khách hàng thì làm thế nào? 

Hãy theo dõi tiếp bài viết để cùng giải quyết bài toán này nhé! 

Tải file Power BI để thực hành theo hướng dẫn tại đây.

Hướng dẫn thực hành 

Giới thiệu dataset 

Chúng ta sẽ có 2 bảng như sau: 

  • DimCustomer 
  • FactInternetSales-2023 

Trong bảng DimCustomer gồm các trường: 

  • CustomerKey 
  • Title 
  • FirstName 
  • LastName 
  • EmailAddress 
  • Gender 

Còn bảng FactInternetSale-2023 gồm các trường: 

  • SalesOrderNumber 
  • SalesOrderLineNumber 
  • CustomerKey 
  • SalesAmount 
  • OrderDate 

Cột OrderDate sẽ là cột được sử dụng để tính toán chính trong ví dụ này.

Note: trong cột OrderDate, dữ liệu bao gồm từ ngày 2023-03-30 đến 2024-01-23.

Các bước thực hành 

Bước 1 – Tạo bảng danh sách khách hàng 

Đầu tiên, bảng danh sách khách hàng của chúng ta sẽ gồm trường CustomerKeyOrderDate.

OrderDate đang ở dạng Date Hierarchy, chuyển thành dạng Date.

Bước 2 – Xác định ngày phát sinh giao dịch gần nhất 

Để xác định ngày có giao dịch gần nhất hay giao dịch cuối, với trường OrderDate trong bảng, ta chỉ cần chuyển sang trả về giá trị Latest. 

Như vậy ta đã có Latest OrderDate (ngày giao dịch gần nhất) cho mỗi CustomerKey.

Bước 3 – Tính số ngày kể từ ngày giao dịch gần nhất đến ngày hiện tại 

Ở đây, chúng ta sẽ tạo một New measure trong bảng FactInternetSales-2023.

Mục tiêu của chúng ta là tính số ngày kể từ ngày giao dịch gần nhất đến ngày hiện tại, ta sẽ có measure sau: 

#Days_from_last_order =
VAR __last_order_date =
    MAX ( ‘FactInternetSales-2023′[OrderDate] )
VAR __today =
    TODAY ()
RETURN
    DATEDIFF ( __last_order_date__todayDAY )

Chú thích measure: 

  • #Days_from_last_order: tên measure.
  • VAR __last_order_date = MAX ( ‘FactInternetSales-2023′[OrderDate] ): trả ra ngày giao dịch gần nhất.
  • VAR __today = TODAY (): trả ra ngày hiện tại.
  • DATEDIFF ( __last_order_date, __today, DAY ): số ngày tính từ ngày giao dịch gần nhất đến ngày hiện tại.

Tiếp đến, kéo measure vừa tạo vào bảng danh sách khách hàng.

Sau khi kéo measure vào bảng, chúng ta sẽ có thêm cột #Days_from_last_order, cột này trả về số ngày kể từ ngày giao dịch cuối đến ngày hiện tại. 

Bước 4 – Lọc ra danh sách khách hàng có khả năng rời bỏ 

Đến đây, với bảng danh sách, ta có thể sử dụng Filters cho cột #Days_from_last_order với điều kiện đồng thời (And) như sau:

  • #Days_from_last_order is less than 60.
  • #Days_from_last_order is greater than 30.

Ở đây ta có thể hiểu rằng, khách hàng có khả năng rời bỏ là những người có giao dịch cuối trong khoảng 30-60 ngày. 

Nhấn Apply filter để kích hoạt bộ lọc cho visual. 

Sau khi filter được kích hoạt, bảng của chúng ta sẽ trả về danh sách khách hàng theo điệu kiện như trên. 

Để có thêm thông tin về khách hàng, chúng ta có thể thêm vào bảng một số trường như: 

  • FirstName 
  • LastName 
  • EmailAddress 

Ngoài ra, ta cũng có thể thêm trường SalesAmount nếu như ta muốn ưu tiên theo giá trị của giao dịch cuối. 

Về cơ bản, chúng ta đã có danh sách các khách hàng có giao dịch gần nhất trong khoảng lớn hơn 30 và nhỏ hơn 60 ngày. 

Dựa vào danh sách này cùng với thông tin liên hệ như email, chúng ta có thể triển khai một vài chiến dịch chăm sóc khách hàng như giảm giá để khuyến khích họ mua hàng tiếp.

Tinh chỉnh ngày linh hoạt với What If Parameter

Chúng ta có thể kết hợp với tính năng Parameter trong Power BI để điều chỉnh điều kiện ngày của chúng ta linh hoạt hơn. Kết quả cuối sẽ như hình bên dưới.

Parameter trong Power BI sẽ có thêm lựa chọn để tạo nó thành slicer. Ở hình trên, các bạn sẽ thấy có 2 slicers để thay đổi giá trị ngày linh hoạt theo ý muốn, và khi thay đổi giá trị, bảng danh sách khách hàng cũng sẽ tự động lọc theo.

Bước 1 – Tạo parameter 

Tạo Parameter cho Last Days Not Order 

Để tạo parameter, chúng ta chuyển hướng đến Modelling > New parameter, ở đây chúng ta sẽ tạo parameter kiểu Numeric range. 

Một cửa sổ mới sẽ xuất hiện, các bạn điền thông số theo như trong hình. 

Sau khi nhấn Create, chúng ta sẽ thấy xuất hiện 1 slicer mới. 

Lưu ý chọn Add slicer to this page trước khi nhấn Create. 

Điều chỉnh lại kích thước và vị trí của slicer một chút. 

Tạo Parameter cho Order Date Range 

Tương tự như trên, ta tạo parameter thứ 2 cho ngày ta muốn quan sát.

Lưu ý chọn Add slicer to this page trước khi nhấn Create.

Bước 2 – Tạo measure để lọc bảng theo slicers 

Khi chúng ta tạo parameter, Power BI sẽ sinh ra 2 bảng mới với tên như ta đã đặt khi tạo parameter, trong mỗi bảng đó sẽ có measure để trả về giá trị tương ứng trên slicer. Trong ví dụ này sẽ là measure Last Day Not OrderOrder Date Range. 

Để lọc bảng của chúng ta theo giá trị của 2 slicers, ta viết measure như sau: 

Is_leaving_customer =
IF (
    AND (
        [#Days_from_last_order] >= [Last Days Not Order Value],
        [#Days_from_last_order] <= [Order Date Range Value]
    ),
    1,
    0
)

Trong đó nếu #Days_from_last_order đồng thời lớn hơn hoặc bằng Last Days Not Order Value và nhỏ hơn hoặc bằng Order Date Range Value, thì sẽ trả về 1, nếu không trả về 0.

Tiếp đến, kéo measure vào bảng, giờ bảng của chúng ta sẽ có thêm cột mới là Is_leaving_customer.

Cuối cùng, vào phần Filters, tìm đến Is_leaving_customer, trong Show items when the value, chọn is greater than or equal to, rồi điền giá trị là 1

Nhấn Apply filter để kích hoạt bộ lọc. 

Sau khi kích hoạt bộ lọc bạn có thể bỏ cột Is_leaving_customer nếu không muốn giữ lại. 

Như vậy, bảng của chúng ta sẽ luôn chứa danh sách khách hàng có khả năng rời bỏ, và có thể điều chỉnh linh hoạt hai giá trị ngày mà ta muốn quan sát. 

Kết luận

Như vậy, với kết quả là danh sách các khách hàng có nguy cơ rời bỏ, chúng ta hoàn toàn có thể làm việc thêm với bộ phân như Bán hàng, Chăm sóc khách hàng để có thể liên hệ kịp thời với những khách hàng này và khuyến khích khách hàng quay lại mua hàng. Vì họ có khả năng rời bỏ, nên nếu có những chính sách mua hàng đặc biệt như giảm giá hay mua theo combo, có thể sẽ tăng được khả năng thuyết phục khách hàng quay lại hơn.

Hy vọng phần thực hành trên đã giúp bạn có thêm kiến thức để vận dụng Parameter cho báo cáo linh hoạt hơn. Hãy theo dõi Blog của Datapot để không bỏ lỡ các bài viết tương tự nhé.

Chia sẻ bài viết này

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 *