구독 플랫폼의 유저 가치 추정 (CLV 분석 기법)

2025. 9. 5. 02:41카테고리 없음

LTV(LifeTime Value)나 CLV(Customer Lifetime Value)는 이미 많은 마케팅 분야에서 활용되고 있다.

 

마케터 뿐만 아니라, 여러 직무에서 전환율 감소에 따른 손해액 산정이나, 예상되는 유저 증가에 따른 이익 계산을 진행하기 위해 정량화된 유저의 가치가 필요하다.

 

그리고 유저의 가치를 가장 쉽게 나타내는 방법이 CLV이다. 유저가 지불할 돈 그 이상이겠지만, 가장 직관적이고 빠른 가치 계산이 장점이라 할수있다.

 

구독 플랫폼에서 이용되는 CLV를 통한 유저 가치 계산을 통해서 지금 진행하는 넷플릭스 구독 유저 데이터 분석 프로젝트에 활용해보도록 하겠다.

 

구독 플랫폼에서의 일반적 CLV 공식과 문제점

구독 플램폼에서는 일반적으로 기대되는 CLV의 값에서 E를 다음과 같이 측정될수있다.

  • 먼저 m은 구독 시 평균적으로 지불하는 금액이다. 월 구독료가 9000원 이라고 가정한다면, 프로모션 등을 통한 할인을 제외하고 9000원이라 가정할수있다.
  • S(t)는 생존 함수이다. 생존율은 시간이 지나며 깎이며, 그 생존율이 깎여 나가는 제품마다의 패턴이라고 할수있다.
  • d는 화폐가치 하락률이다. 어제 들어온 유저가 얼마나 사용할지는 모르기 때문에 생존율 예측을 할 수 밖에 없다. 미래의 화폐가치는 지금과 다르기 때문에, 시간이 갈수록 줄어드는 화폐하락률을 계산에 넣은 것이다.
  • t는 시간이다. 월간 구독을 한다면 t개월일수 있고, 연간 구독이라면 t 년 이라고 할수있다.

예시를 들어보겠다.

y축이 생존율, x축이 개월수

위와 같은 생존 그래프를 가진 제품이 있다고 가정해보자. 시간이 갈수록 생존율이 줄고있다. 초반에는 빠르게 감소하지만, 시간이 갈수록 충성유저가 남아 이탈이 감소하는 형태를 보이고 있다. 그리고 이점들을 이으면 어떤선이 나타나며 이를 "패턴" 이라고 한다.

 

그 패턴을 알수없기 때문에 S(t)라고 표현한다. t가 충분히 길다면 어떠한 값을 보일것이다.

 

위 그래프에서 M+0인 경우의 생존율은 당연히 100%, M+1 인경우에는 78%, M+2는 60% ... 로 감소하고 있다.

 

M+0일 경우에는 모든 유저가 9000원을 지불한다. M+1일 경우에는 78%만이 9000원을 지불하며, 나머지 22%는 지불하지 않는다. 즉, 평균적인 유저 1명의 지불 금액은 9000원 * 0.78이 될것이다. 그렇게 9000 * 0.60 ... 0.48 로 이어질것이다. 

 

그렇다면, 유저가 평생 지불할 금액을 추측해 보면, 

이렇게 표현이 될것이다. 그리고 이를 정리해보면

위의 공식이 되는것이다. 즉 유저가 지불할 평생 금액의 기댓값은 (평균적인 구독권 금액 X t시점의 생존율)을 t-1~무한대 까지 갔을때까지 모두 더하면 되는것이다. 물론 t가 커질수록 (시간이 지날수록) 생존율은 0에 수렴할 것이기 때문에 매우 작아질것이다. 

 

그럼 이제 S(t) (생존율) 을 예측하도록 하자.

 

고객의 생존율은 어떻게 예측해야 할까?

y축이 생존율, x축이 개월수

고객의 생존율을 예측하는것은 곧, '우리의 고객이 어떤 패턴을 가지고 생존을 해나가는 것' 질문과 같다. 그리고 대부분의 제품에서 생존율은 시간이 갈수록 떨어지는 형태일 것이다. 하지만 초반에 빠르게 이탈하는 유저가 있는 반면에, 오래 제품에 머무는 충성 유저도 있다. 이 때문에 초반엔 빠르게 이탈하는 유저 있는 반면에, 오래 제품에 머무는 충성 유저도 있을 것이다. 이 때문에 초반엔 가파르게 생존율이 떨어지고, 갈수록 생존율은 완만하게 떨이즌 형태를 보일 가능성이 높다.

Discrete-Contractual Relationship

위와 같은 패턴은 구독 플랫폼에서 주로 보이는 패턴이다. 이 패턴은 아래와 같은 조건을 가지고있다. 

 

  • 고객이 일정한 주기로 가지고 결제를 하며, 이를 플랫폼에서 확인할 수 있다.
  • 고객의 이입과 이탈이 명확하고, 이를 플랫폼에서 확인할 수 있다. 

보통은 구독 환경에서 볼 수 있는 고객 관계이지만, 꼭 구독이 아니더라도 보이는 패턴이 위의 그래프와 같은 생존율을 보이고 있다면, 크게 문제 없이 사용할수도 있다. 

 

그렇다면 이를 간단한 함수를 통해 쉽게 적합해보도록 하겠다.

보이는것처럼, 현재를 설명하는 데에는 무리가 없다. 

 

하지만 현재가 아닌 미래 예측이 중요하다. 아래는 미래 예측 그래프이다.

미래에 있어서는 큰 오차를 보이고 있다. 지수 함수는 생존율이 0으로 수렴하지 않고 과도하게 평생가치를 측정하게 된다.

 

이에 반해 n차식의 경우는 음수가 나온다. 생존율은 음수가 나올수 없으므로, 이또한 반영이 힘들다.

 

이때 많이 활용하는 모델이 SBG(Shifted Beta Geometric) 모델이다. 이모델의 경우 기하분포를보면 이해가 가능하다.

이 그래프가 기하 분포의 형태이다. 기하 분포라는것은 특정한 확률이 있는 어떠한 사건이 처음 발생할 경우 보이는 패턴이라고 볼수있다.

 

예를 들어, 강화 확률이 80%인 게임의 경우 성공확률이 80% 로 매우 높기 때문에 1트라이 만에 강화에 성공한 유저가 가장많을것이다. 물론 2번째 트라이에 성공한 유저도 있을것이다. 그렇게 100번째 트라이에서야 가능한 유저수는? 아마도 거의 0에 수렴하는 숫자일것이다. 

 

여기서 강화확률은 이탈확률이라고 보자. 이탈이 처음에는 많이 발생하겠지만, 갈수록 점점 작이지는 형태가 위에서 보았던 구독 플랫폼의 생존 확률 과 상당히 흡사하다.

 

이 기하분포를 사용하는것은 아니지만, 이와 비슷한 과정을 통해 예측해 나간다고 이해하면되겠다.

 

그렇다면 SBG모델을 사용하여 예측을 진행해보겠다.

 

현재의 분포
미래 분포

이전에 사용했던 함수와 다르게 음수가 나오지 않고, 0에 수렴하여 시간이 지날수록 생존율이 0에 수렴 하는 모습을 보인다. 

 

최신 트렌드 반영

 

우리가 예측에 사용하였던 데이터를 보면, M+12 까지의 데이터를 사용하였다. 즉 12개월 전 데이터로 예측을 한것이다. 

 

12개월전 데이터는 트렌드가 많이 다르기때문에, 최근 결제한 고객의 그룹 생존율과 같이 확인해야한다.

23년 4월 결제그룹과 23년 11월 결제 그룹의 생존율을 비교해 보자. 

 

11월 결제 그룹의 생존율이 더 떨어진것이 확연히 보인다.

만약 4월 결제 그룹의 결과를 토대로 현재 사용한다면 잘못된 의사결정을 내릴 수 도 있다.

 

하지만 11월의 데이터만 가지고는 학습을 하면 위험하다. 데이터가 너무 적기 때문이다. 따라서 아래의 문제점이 따라온다.

 

1. 과거의 코호트: 데이터는 많지만, 최근의 트렌드 반영 못함.

2. 최근의 코호트: 데이터는 적지만, 최신 트렌드를 반영함.

 

따라서, 최근의 트렌드 반영하면서, 과거의 방향성을 가지고 예측을 시키는것이 좋다.

 

그러면 이를 어떻게 반영을 할까. 이는 사람마다의 프로덕트에 따라 달라질 수 있다. 최근 지표가 더 중요하다고 생각한다면 가중치를 최근 지표에 더 두어 예측값을 혼용할수있고, 최근 함수를 유리함수 등으로 적합시킨 결과를 과거 데이터와 섞을수도 있을것이다. 

 

여기서, 가장 기본이라 할 수있는 과거 데이터를 기반으로 한 예측과 최근 데이터를 기반으로 한 예측의 평균을 사용하여 둘의 정보를 모두 활용하여 보겠다. 

 

이 수식은 각 10개의 코호트를 예측한 다음, t 시점의 예측값을 총 코호트 개수인 10으로 나누는 수식이다. (각 그룹의 코호트 평균) 

 

이를 시각화 하면 다음과 같다.

이렇게 과거의 최근 데이터를 각각 예측한다음 평균을 사용한다.

 

좀더 많은 코호트를 반영하여 보겠다.

방향성은 비슷하지만 코호트 별로 조금씩 편차가 존재한다.

 

CLV를 추정하기 위해서 편의상 1부터 200까지만 가정하고 예측을 진행하면 다음과 같다.

 

 

M+25  부터는 거의 0에 수렴하는 생존율을 보인다. 

 

각 코호트별로 평균 생존함수를 구해보겠다.