ChatGPT로 프로덕트 리텐션 구하기 -1

스타트업에서 PO로 일하며, 모바일 커머스 앱을 만들고 있어요.

by 그로쓰 코코넛

오늘은 어떻게 프로덕트 리텐션을 구하고, 왜 이것이 중요한지에 대해 이야기해 보려고 해요. 제가 리텐션을 구하면서 고민했던 지점들과 그 과정 또한 공유해 보겠습니다.


1. 리텐션 데이터를 구하게 된 배경


[리텐션이란?]

리텐션은 고객 만족도, 제품의 가치, 그리고 경쟁력을 알아볼 수 있는 중요한 지표 중의 하나예요.

리텐션 그래프를 통해 고객이 제품이나 서비스를 얼마나 오래, 그리고 꾸준히 이용하는지를 알 수 있어요.


리텐션 지표에 대한 개념과 중요성을 더 알고 싶다면 아래의 영상을 추천해 드려요

https://www.youtube.com/watch?v=0KgOCKJ1PG4&themeRefresh=1



[리텐션을 구할 결심]

프로덕트를 개선하기 위해 매일 노력하지만 실제 프로덕트가 개선되고 있는지, 올바른 방향으로 가고 있는지에 대해 의문이 들기 시작했어요. 물론 매일매일 지표를 확인하고 있었지만, 우리 프로덕트의 전체적인 상황을 파악하기가 쉽지 않았어요. 데이터가 조각조각이라 전체 그림을 그리기 어려웠죠. 현재의 매출에 만족하기보다는, 고객들이 계속해서 돌아오게 만드는 프로덕트를 만들어야 한다고 생각했죠.


이는 저뿐만 아니라 팀원들의 동기부여에도 큰 영향을 미쳤는데요. 팀원들에게 우리 프로덕트가 어디쯤 와있고, 어디로 가야 하는지에 대해 전달하여 동기를 이끌어내고 싶었어요.




2. 리텐션을 구하는 과정

리텐션을 구하는 과정은 쉽지는 않았습니다. 회사마다 고객과 제품이 다르기 때문에 하나의 공식을 통해 리텐션을 구할 수 없기 때문이었습니다.


그래서 각 상황에 맞게 리텐션을 정의해야 하는데요.

우리 프로덕트의 리텐션을 구하기 위해 내렸던 정의는 이렇습니다.


(1) 프로덕트의 핵심 지표 정의하기

우선, 회사의 핵심 지표를 정의해야 해요. 예를 들어 핵심 지표는 앱 설치, 로그인, 혹은 특정 액션 등이 될 수 있습니다. 다양한 데이터 중에서 무엇을 볼 것인지 결정해야 하죠.


핵심 지표를 결정하기 위해서는 해당 회사의 성장과 직결된 액션이 어떤 건지 보는 거예요.

즉, 유저가 제품을 사용할 때마다 수행하기를 바라는 액션이 무엇인지, 그리고 이 매트릭이 회사의 성장과 직결되어 있는지를 보고 핵심 지표를 정할 수 있어요.


저희 프로덕트는 모바일 커머스 앱이기 때문에, '결제 액션'을 핵심 지표로 정의했어요. (단, 결제 취소는 제외)



(2) 핵심 지표의 자연 발생 주기 파악하기

그다음 단계는 고객들이 어떤 주기로 우리 프로덕트를 사용하고 있는지를 파악하는 단계입니다.

핵심 지표의 발생 주기가 하루 단위일 수도 있고, 일주일, 한 달 등 프로덕트에 따라 달라질 수 있어요.


이 주기를 파악하는 것은 리텐션을 정확하게 구하기 위해 꼭 알아야 하는 필수 데이터예요.

예를 들어 자연스러운 사용 주기가 한 달인데 하루 단위로 리텐션을 측정한다면, 그 결과는 실제 고객의 사용 패턴을 제대로 반영하지 못할 수 있기 때문입니다.


그렇다면, 어떻게 이 자연 주기를 구할 수 있을까요? 제가 자연 발생 주기를 구했던 방법을 소개할게요


1단계: 핵심 지표 데이터 추출 (Mysql 사용)

2단계: 데이터 분석을 통해 발생 주기 구하기 (ChatGPT 사용)


1단계: 핵심 지표 데이터 추출하기 (with. Mysql)

쿼리를 통해 결제 데이터를 추출했어요. 이 데이터에는 유저 번호와 결제 일시를 포함했습니다.

해당 데이터는 chatGPT에 업로드할 데이터이기 때문에 보안 문제를 신경 썼어요. 데이터 분석을 위한 최소한의 데이터를 추출하고, 유저의 개인정보가 포함되지 않도록 했습니다.

스크린샷 2024-01-13 오후 8.01.14.png 해당 데이터는 임의로 생성한 예시 데이터이며, 실제 데이터와는 관련이 없습니다.



2단계: 결제 주기 구하기 (with ChatGPT)

결제 주기를 구하기 위해서 여러 가지 조건을 고려해야 했어요. 한 유저당 결제 주기가 최소 2회 이상 발생해야 하고, 각 유저별로 발생한 직전 결제와 결제 일자의 차이를 구해야 했습니다.


Mysql로 구한 csv 데이터를 업로드하고, 프롬프트에 다음과 같이 입력했어요. (파일업로드 기능은 ChatGPT 유료 버전에서만 가능합니다)


첫 번째 명령어: 각 결제 주기에 대한 날짜 차이 구하기

For each user, find the time until the next payment for each payment and extract it to a CSV file. Also create a new column to indicate the status of the next payment as either a time duration or "Last Payment"

-> 결과 값: 각 결제 건에 대해 다음 결제까지의 시간 차이가 포함된 데이터 (ChatGPT가 구한 값이 제가 의도한 대로 계산되었는지 확인하기 위함입니다)

Group 64.png
Group 63.png


두 번째 명령어 입력 : 결제 주기의 평균값 구하기, 80%의 유저가 포함된 결제주기 구하기

Tell me what the recurrence interval is for the 80% of users without duplicates. Sort them in order of lowest recurrence interval.

-> 결과 값: 결제 주기의 평균값 & 80% 유저가 포함된 결제 주기의 값

Group 68.png
Group 67.png


여기까지 리텐션을 구하기 위한 준비 단계가 완료되었어요!



이번 글에서 '프로덕트의 핵심 액션''해당 액션이 발생하는 자연적인 주기'를 구하는 방법을 소개했습니다. 다음 글에서는 구한 데이터를 기반으로 다음 글에서 리텐션 그래프를 그리는 과정을 공유할게요!



keyword
작가의 이전글실리콘 밸리 스타트업들의 KPI 관리 방법-2부