[프렙 시나리오] 회원 등급 변화 추이 분석

Ideation

Real Business Story

인터넷 쇼핑, 온라인 주문. 삶에서 빼놓을 수 없는 일입니다. 저 역시 카드 지출의 80% 이상이 온라인 쇼핑을 차지할 정도로 온라인 주문에 익숙한 삶을 살고 있는데요, 그 중에서도 자주 사용하는 쇼핑몰은 VIP 등급을 가지고 있기도 합니다. 다들 하나쯤, VIP 수준의 충성도를 가진 자주 사용하는 쇼핑몰 하나쯤 있으시겠죠?

그런데, 이 쇼핑몰 등급, 얼마나 자주, 언제부터 언제까지의 실적 범위를 기준으로 부여되는지 눈여겨 보신 적 있으신가요? 등급에 따라 할인 쿠폰을 제공하는 쇼핑몰의 경우, 회원의 재방문을 높이기 위해 한 달에 한 번, 전월 또는 전월부터 일정 기간에 걸친 실적을 기준으로 등급을 갱신하는 정책을 운영하곤 하죠.

예를 들어, 어떤 쇼핑의 회원 등급 정책은 아래와 같을 수 있습니다.

이 때, 등급은 항상 최신 상태를 기준으로 갱신되는 데이터가 됩니다.

가령, A라는 회원이 2021년 6월 기준으로 2020년 12월-201년 5월의 누적 구매금액을 추적했을 때, 그 금액이 500만원을 넘어 VVIP가 되었다가도, 2021년 7월이 되어 2021년 1월-2021년 6월의 누적 구매금액을 반영해보니, 누적구매액이 300만원 이상이라 PRIME으로 떨어질 수 있다는 얘기입니다.

그러나, 운영 상의 관점에서는 과거의 모든 이력을 집계하여 남기는 것이 비효율적이라고 판단할 수 있습니다.

Business Questions

그런데 비즈니스 측면에서 아래와 같은 질문이 생기는 경우, 최신 상태만으로는 이 질문에 대한 대답을 할 수 없습니다.

  • 고객별 등급 변화 추이는 어떻게 달라질까?
  • 과거에 VIP였던 고객 중에서 등급을 유지한 고객과 등급이 하락한 고객의 비중은 각각 어떻게 될까?

이번 사례에서는 태블로 프렙을 사용하여 회원의 현재 등급과 직전 등급을 비교할 수 있는 데이터 세트를 만들어보고자 합니다.

데이터 다운로드

※ 이 데이터는 직접 가공 생성한 데이터입니다.

Data Shape: Original vs Prep

Original Data: 주문일자별(date)-고객별(customerid)-주문금액(orderamount)에 대한 정보가 있습니다.
Prep Data: 월별-고객별-현재 등급-6개월 금액 및 주문횟수 데이터가 있습니다.

프렙으로 데이터 불러오기

프렙으로 데이터를 가져오는 방법은 데스크탑과 동일합니다. 데이터에 연결을 선택하고, 유형에 맞는 파일 또는 서버를 선택한 후, 끌어다가 놓기만 하면 됩니다. 이 파일은 csv이므로, 텍스트 파일 유형을 선택하여 가져옵니다.

일자 데이터를 월별 데이터로

데이터 정리 – date(month) 추가하고, 데이터 유형 변경하기

가장 먼저 해야할 작업은 일자 단위로 존재하는 날짜를 월별로 집계하기 위한 필드를 추가하는 것입니다. 이를 위해, 데이터 정리 단계를 추가하고, 계산된 필드를 작성합니다. 데스크탑과 동일하게 datetrunc 함수를 사용하면 됩니다.

datetrunc('month',[date])

datetrunc 함수의 데이터 유형은 날짜 및 시간입니다. 아이콘을 선택하면 이를 날짜로 변경할 수 있습니다. 동일한 방법으로 customerid는 문자열로 변경하였습니다.

프렙에서 변경한 모든 히스토리는 변경 내용에 남아 있어 언제든지 해당 단계로 돌아가 변경 내용을 변경, 삭제, 추가, 실행 순서를 변경할 수 있습니다.

데이터 집계 – date(month), customerid 기준으로 주문금액, 주문횟수 집계하기

집계 단계를 추가하여 월별-고객별 주문금액 및 주문횟수를 집계합니다.

집계 단계를 추가한 다음, 왼쪽에 나열된 필드에서 그룹의 대상 필드를 [그룹화된 필드]에 놓고, [집계된 필드]에는 집계 대상 필드를 드래그하여 추가하면 됩니다.

이 때, date를 집계된 필드에 추가하면 집계의 기준이 CNT, 즉 카운트가 됩니다. 날짜가 발생한 수만큼 카운트하면 곧 주문횟수가 되겠죠. 필드의 이름을 [ordercount]로 수정해줍니다.

6개월 누적 주문 금액 계산하기

데이터 정리 – 6개월 누계 계산을 위한 정리 단계

데스크탑과 프렙의 함수는 거의 동일하지만, 몇 가지 다른 것이 있습니다. 그 중 하나가 프렙에는 테이블 계산 함수가 없다는 점입니다. 이러한 점 때문에, 6개월 누적 주문 금액을 계산하는 방법이 다소 복잡합니다.

먼저, 집계 단계까지의 결과를 가져오는 [정리 3] 단계를 추가합니다. 동일한 집계 단계에서 [정리 2]를 추가합니다.

그런 다음, [정리 3]에서는 최근 6개월 누적을 계산하기 위한 필드를 추가해주겠습니다.

2021년 7월 현재 기준으로, 등급을 계산하는 대상 범위는 2021년 1월 – 즉 6개월 전과 , 2021년 6월 – 1개월 전입니다. dateadd 함수를 사용하여 [6개월 전], [1개월 전] 필드를 생성합니다.

dateadd('month',-1,[date(month)])

데이터 조인 – [6개월 전]-[1개월 전] 데이터 복제하기

정리 두 단계를 결합하는 조인 단계를 추가해보겠습니다. 조인 단계를 추가하기 위해서는 [조인 2] 단계를 드래그하여 [조인 3] 단계 오른쪽에 드롭합니다.

조인절은 그림과 같이 추가합니다. [date(month)]가 [1개월 전] 부터 [6개월 전] 사이에 있으면 해당 필드에 존재하는 orderamount를 가져오는 것입니다.

임시 필터 걸기

프렙에서 결과를 미리보기 할 때, 필터를 사용하여 데이터의 양을 특정 구간만 확인하면 결과를 쉽게 예상할 수 있습니다. 저는 [집계1] 단계에서 [customerid]에 필터를 걸고, [조인 1] 단계에서 [date(month)] 필터를 걸고 확인하였습니다.

필요없는 필드 제거하기

[정리 2], [정리 3] 단계 모두 각각 customerid, date(month),ordercount 필드를 가지고 있습니다. 정상적인 집계를 위해서는 [정리 3]이 가지고 있는 필드를 사용해야 합니다. 관계 없는 필드는 제거합니다.

이 때, 두 단계에서 발생한 필드는 필드의 색상으로 쉽게 구분할 수 있습니다. 여기서 [정리 3]은 초록색, [정리 2]는 주황색임을 주목하세요.

데이터 집계 – [6개월 주문 금액] 집계하기

이렇게 계산하고 나면 6행으로 복제된 값을 1행으로 집계할 수 있습니다. 앞선 단계에서 추가했던 필터는 단계로 돌아가 제거합니다.

회원 등급 계산하기

데이터 정리 – [회원 등급] 계산하기

회원 등급 계산식은 아래와 같습니다.

IF [orderamount] >= 5000000 then 'VVIP' ELSEIF [orderamount] >= 4000000 THEN 'VIP' ELSEIF [orderamount] >= 3000000 THEN 'PRIME' ELSEIF [orderamount] >= 1500000 THEN 'BEST' ELSE 'NEWBIE' END

필드 이름 수정하기

필드 이름을 각각 [orderamount] > [6개월 금액], [ordercount] > [6개월 주문횟수]로 수정합니다.

흐름 결과 저장 및 실행

마지막으로 흐름을 실행하기 위한 출력 단계를 추가합니다. 출력 단계에서는 출력으로 생성한 파일을 어디에 저장할지 경로를 저장할 수 있습니다.

태블로 프렙으로 작업한 결과는 두 가지를 별도로 저장한다는 사실에 유의하세요.

  • 출력 결과 파일
  • 흐름 파일

두 가지 모두 저장하셔야 다음에도 생성한 흐름 파일을 사용할 수 있습니다.

[Challenge] 직전 회원 등급은 어떻게 한 행에서 비교할 수 있을까?

위의 작업까지만 수행하여도 회원의 등급 변화를 추적할 수 있습니다. 만약 한 행에 직전 등급에 대한 정보를 함께 표현하고 싶다면 어떻게 할 수 있을까요? 바로 아래처럼 말이죠.

프렙의 자유로운 데이터 변형의 강점이 여기에 있습니다. 이 부분은 도전 과제로 남겨놓고, 댓글로 요청주시면 이메일로 프렙 파일을 보내드리겠습니다. 힌트는 셀프 조인입니다.

마지막으로 해당 태블로 프렙으로 생성한 등급 변화 확인 대시보드를 보여드립니다. 비슷한 고민을 갖고 계셨던 분들께 아이디어를 드릴 수 있는 포스트였기를 바랍니다.

One thought on “[프렙 시나리오] 회원 등급 변화 추이 분석

댓글 남기기

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