태블로로 하는 고객 세그멘테이션 (마케팅 RFM 분석)

오늘은 태블로에서 RFM 분석 기법을 활용하여 위 대시보드처럼 고객을 세그멘테이션 하는 방법을 알아보겠습니다.


Customer Segmentation in Marketing

Business Story

마케팅을 할 때 고객을 세분화해서 가치가 높은 고객을 발견하고, 고객 개인의 특성에 맞춘 마케팅을 하는 것은 중요합니다. 관심사나 행동 유형에 따라 고객을 세그멘테이션하고 세밀한 타겟 마케팅을 할수록 그 효과가 증대되어 매출도 함께 올라갈 수 있기 때문입니다. 예를 들어 휴면 고객에게는 재로그인 시 쿠폰을 증정하고, VIP 고객에게는 감사 이벤트를 진행하는 등의 타겟 마케팅 전략을 세우면 효과가 클 것으로 예상되는 고객에게 적합한 마케팅 활동을 할 수 있으며, 불필요한 자원을 낭비하지 않을 수 있습니다.

Business Questions

한 마케팅 팀에는 이런 고민이 있습니다.

  • 충성 고객층을 어떻게 파악해야 하는지 모르겠다.
  • 신상품을 구매력이 좋은 고객에게 먼저 안내고자 한다.
  • 프로모션의 효과가 클 것으로 예상되는 고객을 타겟팅 하고 싶다.

이러한 요구사항들의 공통점은 구매 행동을 기반으로 고객을 분류해서 효율적인 개인화 마케팅을 하고자 하는 것입니다.

RFM Analysis

이 때 CRM 마케팅 분야에서 가장 널리 사용되는 고객 세분화 모델인 RFM 을 활용할 수 있습니다.

이를 통해 잠재 고객을 구분하고 가치가 높은 고객을 발견하고, 세분화된 고객을 대상으로 효과적인 마케팅을 진행할 수 있습니다.

RFM 은 구매의 최근성(Recency), 구매 빈도(Frequency), 구매 금액(Monetary) 의 약자입니다.

Recency : 고객이 얼마나 최근에 구매하였는가?

Frequency : 고객이 얼마나 자주 방문했는가?

Monetary : 고객이 돈을 얼마나 썼는가?

RFM Score

RFM 분석을 위해서는 각각의 기준에 따라 고객에게 점수를 부여해야 합니다.

각 기준별 점수를 합산하여 동일한 점수의 고객들을 그룹으로 분류합니다. 그 기준은 다음과 같습니다.

이렇게 RFM 분석으로 나눠진 그룹에게 각각 다른 타겟 메시지를 보냄으로써 고객의 구매를 효율적으로 유도할 수 있습니다.

쉬운 설명을 위해 여기서는 가중치를 고려하지 않았지만 현업에서는 RFM 분석 결과에 적절한 가중치를 추가하고, 마케팅 비용을 고려하여 보다 적절한 고객 평가 지표로 활용할 수 있습니다.


RFM Analysis in Tableau

Dataset

Sample Superstore (태블로 기본 데이터셋)

Basic Calculated Fields

Number of Order : 주문 수 고유 카운트. 이후 고객별 구매 빈도를 구하기 위해 사용합니다.

COUNTD([Order ID])

Max Order Date of the Year : 대시보드에 연도 필터를 넣기 위해 연도별로 가장 큰 날짜 값을 불러와 이후 LOD 식에 활용합니다.

{FIXED YEAR([Order Date]): MAX([Order Date])}

RFM

Recency (최근성) : Customer Name 별로 가장 최근에 구매한 날짜로부터 몇 일이 지났는지를 계산합니다.

여기서 오늘의 날짜를 반환하는 Today 함수를 사용하지 않은 이유는 Sample Superstore 데이터를 사용하고 있기 때문입니다. 따라서 이 데이터셋의 가장 최신 날짜로부터, 가장 최근 구매한 날짜의 차이를 계산합니다.

DATEDIFF('day',{ FIXED [Customer Name],YEAR([Order Date]): MAX([Order Date])},[Max Order Date of the Year])+1

Frequency (구매 빈도) : Customer Name 별로 Order ID 의 카운트를 구합니다.

{ FIXED [Customer Name],YEAR([Order Date]):[Number of Order]}

Monetary (구매 금액) : Customer Name 별로 Sales 의 합계를 구합니다.

{ FIXED [Customer Name],YEAR([Order Date]): SUM([Sales])}

RFM Score

이제 아래 표의 기준에 따라 Recency, Frequency, Monetary 에 스코어를 부여합니다. 주의해야 할 것은 Recency 의 경우에는 값이 작을수록 점수를 높게 부여해야 한다는 점입니다.

Recency Score : 최근성을 기준으로 고객을 4분위로 분류하고, 최근 구매로부터 며칠 지나지 않았을수록 높은 점수를 부여합니다. 따라서 다른 지표들과는 반대로 0-25% 에 4점을 부여합니다.

if [Recency] >= { FIXED YEAR([Order Date]): PERCENTILE([Recency],0.75)} then 1
ELSEIF [Recency] >= { FIXED YEAR([Order Date]): PERCENTILE([Recency],0.5)} then 2
ELSEIF [Recency] >= { FIXED YEAR([Order Date]): PERCENTILE([Recency],0.25)} then 3
else 4
end

Frequency Score : 구매 빈도를 기준으로 고객을 4분위로 분류하여 구매 빈도 75%-100% 에 4점을 부여합니다.

if [Frequency] >= { FIXED YEAR([Order Date]): PERCENTILE([Frequency],0.75)} then 4
ELSEIF [Frequency] >= { FIXED YEAR([Order Date]): PERCENTILE([Frequency],0.5)} then 3
ELSEIF [Frequency] >= { FIXED YEAR([Order Date]): PERCENTILE([Frequency],0.25)} then 2
else 1
end

Monetary Score : 구매 금액을 기준으로 고객을 4분위로 분류하여 구매 금액 75%-100%에점을 부여합니다.

if [Monetary] >= { FIXED YEAR([Order Date]): PERCENTILE([Monetary],0.75)} then 4
ELSEIF [Monetary] >= { FIXED YEAR([Order Date]): PERCENTILE([Monetary],0.5)} then 3
ELSEIF [Monetary] >= { FIXED YEAR([Order Date]): PERCENTILE([Monetary],0.25)} then 2
else 1
end

RFM Score : R, F, M 세 가지 지표의 합계를 합산합니다.

[Frequency Score] + [Monetary Score]) + [Recency Score]

RFM : str 을 활용하여 문자열 그 자체로 반환함으로써 각 지표가 몇 분위에 해당하는지 확인할 수 있도록 합니다.

STR([Recency Score]) +STR([Frequency Score]) + STR([Monetary Score])

Customer Segmentation

아래는 기존 사례를 참고하여 직접 작성한 고객 Segmentation 표 입니다. 고객별로 RFM 스코어에 따라 고객의 특성을 정의하고 이름을 부여했습니다.

Customer Segment

if [Frequency Score]>= 4 and [Monetary Score]>= 4 and [Recency Score]>= 4 then 'VIP 고객'

ELSEIF [Recency Score]>=2 and [Recency Score]<=4 and [Frequency Score]>=3 and [Frequency Score]<=4 and [Monetary Score]>=4 then '충성 고객'

ELSEIF [Recency Score]>=3 and [Frequency Score]>=1 and [Frequency Score]<=3 and [Monetary Score]>=1 and [Monetary Score]<=3 then '잠재 충성 고객'

ELSEIF [Recency Score]>=4 and [Frequency Score]<2 and [Monetary Score]<2 then '신규 고객'

ELSEIF [Recency Score]>=3 and [Recency Score]<=4 and [Frequency Score]<2 and [Monetary Score]<2 then '잠재 고객'

ELSEIF [Recency Score]>=3 and [Recency Score]<=4 and [Frequency Score]>=3 and [Frequency Score]<=4 and [Monetary Score]>=3 and [Monetary Score]<=4 then '관심 필요 고객'

ELSEIF [Recency Score]>=2 and [Recency Score]<=3 and [Frequency Score]<3 and [Monetary Score]<3      then '잠드려는 고객'

ELSEIF [Recency Score]<3 and [Frequency Score]>=2 and [Frequency Score]<=4 and [Monetary Score]>=2 and [Monetary Score]<=4 then '이탈 우려 고객'

ELSEIF [Recency Score]<2 and [Frequency Score]>=4 and [Monetary Score]>=4  then '놓치면 안되는 고객'

ELSEIF [Recency Score]>=2 and [Recency Score]<=3 and [Frequency Score]>=2 and [Frequency Score]<=3 and [Monetary Score]>=2 and [Monetary Score]<=3 then '겨울잠 고객'

ELSEIF [Recency Score]<2 and [Frequency Score]<2 and [Monetary Score]<2  then '이탈 고객'

END 


RFM Visualization in Tableau

RFM Tree Map

고객 세그먼트를 색상에 넣고, Number of Order 필드를 크기에 넣어서 트리맵을 만들어줍니다.

Number of Order 의 경우, 퀵 테이블 계산에서 구성 비율을 클릭해줍니다.

RFM Customer List

아래와 사진과 같이 고객명, 연도, 세그먼트, RFM, Recency, Frequency, Monetary, RFM Score, Sales, Profit 등의 정보를 넣습니다. 그리고 나서 Customer Name 을 RFM Score 합계 기준으로 정렬합니다.

RFM Dashboard Action

마지막으로, 고객 세그먼트 트리맵을 클릭할 때 나머지 시트들이 필터링 될 수 있도록 상단의 대시보드 동작 탭에서 설정을 변경합니다.

참고 ) RFM Ternary Chart

참고로, Ternary Chart 를 통해 각 세그먼트의 고객이 어디에 위치해 있는지 살펴볼 수 있습니다. 여기서 사용된 계산된 필드는 상단 링크에서 대시보드 다운로드 후 확인하실 수 있습니다.


대시보드 활용 예시

문제
마케팅 예산을 축소하면 매출의 변동이 크다. 따라서 마케팅 예산을 보다 효과적인 곳에 집중시켜 효율적으로 사용하고자 한다.

대시보드 목적
연도별, 지역별로 고객의 특성을 세분화하고 고객의 행동 유형에 맞는 효과적인 마케팅을 통해 매출을 증대시킨다.


대시보드 기능

  • 상단 필터에서 특정 연도를 선택하고, 본인이 담당하는 지역을 선택한 뒤 고객 세그멘테이션 트리맵을 확인한다.
  • 프로모션을 진행할 타겟 세그먼트를 클릭하고, 하단에서 고객 리스트를 출력하여 해당 고객에게만 타겟 마케팅을 진행한다.
  • 해당 세그먼트가 전월 대비 성장률이 어떤지, RFM 스코어는 어떤지 파악한다.

예시 1)
이탈 VIP 고객” 들이 재로그인 하는 경우 쿠폰을 증정하면 모든 고객에게 증정하는 것보다 효과적인 마케팅을 할 수 있다.
큰 금액을 소비하며 자주 방문했지만 오랫동안 구매 이력이 없었던 고객들을 구분할 수 있다.

예시 2)
“VIP 고객” 들을 위한 감사 이벤트를 진행하여 고객들의 충성도를 높일 수 있다.
큰 금액을 소비하며, 자주 방문하고, 최근에도 지속적으로 구매 이력이 있는 고객들을 구분할 수 있다.

예시 3)
신규 고객” 들을 위한 Welcome 쿠폰을 증정하여 고객들의 재방문율을 높일 수 있다.
최근 방문한 고객일수록 프로모션에 반응할 가능성이 높다는 점을 활용할 수 있다.

이렇게 오늘은 태블로에서 RFM 분석을 활용하여 고객 세그멘테이션 하는 법을 알아보았습니다. RFM 분석은 CRM 마케팅에서 가장 널리 사용되는 고객 세분화 모델이며, 세밀하고 효과적인 마케팅을 할 수 있다는 장점이 있습니다.

하지만 RFM 분석에는 한계점도 존재합니다. 고객의 복잡한 구매 패턴을 단순히 최근성, 행동빈도, 구매 금액의 3가지 관점으로만 분석 하기 때문입니다. 이런 장단점 또한 참고로 알아두시면 좋을 것 같습니다 🙂

5 thoughts on “태블로로 하는 고객 세그멘테이션 (마케팅 RFM 분석)

  1. 안녕하세요. 좋은 글 잘 봤습니다. 직접 가지고 있는 데이터로 실습을 진행했는데, 고객 세그먼트에서 Null값이 나오는 고객은 어떤 고객일까요? 아니면 Null값이 나올 수 없는데 제가 잘못 진행한걸까요?

    1. 안녕하세요 🙂 NULL값의 경우에는 옆에 범례가 표시되면 우측 마우스 클릭 후 별칭 편집에서 NULL 을 General 로 바꿔준 것 같습니다.

  2. 안녕하세요! 너무 좋은 자료라서 저희 내부 데이터와 연결해서 활용하려고 하는데요
    다만, percentile 함수가 저는 아예 적용이 안되는데ㅠㅠ😥 혹시 적용할 수 있는 방법이 있을지 문의드립니다🙏

  3. 안녕하세요 좋은 자료 정말 감사합니다
    내부 데이터를 통해 작업중인데요, 저희 데이터로는 PERCENTILE 함수 자체가 조회도 안되고, 적용이 안됩니다ㅠㅠ😥
    혹시 다른 방법이 있을까요?🙏

    1. 데이터를 로컬상에 extract하면 PERCENTILE 함수 사용 가능합니다!

댓글 남기기

태블로위키만의 새로운 소식, 놓칠 수 없겠죠?