콘텐츠로 이동

구독 서비스 분석

넷플릭스, 밀리의서재, SaaS 등 반복 과금 기반 비즈니스


핵심 문제 정의

구독 모델의 핵심 질문들:

문제 영역 핵심 질문 비즈니스 임팩트
이탈 (Churn) 왜 구독을 해지하는가? MRR 감소, 성장 정체
전환 무료 사용자가 왜 유료로 전환하지 않는가? 유닛 이코노믹스 악화
업그레이드 왜 상위 플랜으로 이동하지 않는가? ARPU 정체
활성화 결제만 하고 왜 사용하지 않는가? 숨겨진 이탈 리스크

구독의 본질: 한 번의 구매가 아니라 "매달 다시 선택받아야 하는" 모델. 이탈 방지가 곧 성장.

수학적 진실:
- 월 이탈률 5% → 연간 고객 46% 손실
- 월 이탈률 3% → 연간 고객 31% 손실
- 이탈률 2%p 개선이 곧 15%p 연간 고객 보존

가설 예시

이탈 시그널 정의

문제: 월 이탈률 5.2% (목표 3.5%)

가설 1: 사용 빈도 감소가 이탈을 예고한다
  - 주간 활성 세션 수가 3회 → 1회로 감소 시 다음 달 이탈률 3배
  - 콘텐츠 소비 시간 50% 감소 후 2주 내 이탈 확률 높음

가설 2: 특정 이벤트가 이탈을 촉발한다
  - 결제 실패 경험 후 이탈률 증가
  - 고객센터 불만 접수 후 이탈률 증가
  - 가격 인상 고지 후 이탈 급증

가설 3: 대안 서비스 이용이 이탈 선행 지표
  - 경쟁사 앱 설치 (앱 사용 데이터 있는 경우)
  - 유사 콘텐츠 외부 검색 (서치 데이터)

이탈 시그널 정의 프레임워크:

[행동 시그널]                    [가중치]  [이탈 예측력]
주간 세션 50% 이상 감소            0.35      높음
핵심 기능 미사용 2주 이상          0.25      높음
결제 수단 만료 임박                0.15      중간
앱 삭제 후 웹만 사용               0.10      중간
고객센터 불만 접수                 0.15      높음
────────────────────────────────────────────
이탈 위험 점수 = 가중치 합산 (0~1)

무료 → 유료 전환

문제: 무료 체험 → 유료 전환율 8% (목표 15%)

가설 1: 무료 체험 기간이 부적절하다
  - 7일: 가치 인지 전 종료
  - 30일: 무료로 충분히 만족, 전환 동기 부족
  - 14일이 최적점일 수 있음

가설 2: Aha Moment에 도달하지 못한다
  - "이 서비스 없으면 안 돼" 순간 경험 여부
  - 넷플릭스: 3편 이상 시청
  - SaaS: 핵심 기능 3회 이상 사용

가설 3: 결제 장벽이 높다
  - 결제 수단 등록 단계 이탈
  - 가격 페이지 조회 후 이탈
  - 연간 결제 vs 월간 결제 옵션

LTV/CAC 불균형

문제: LTV/CAC 비율 2.1 (목표 3.0 이상)

가설 1: CAC가 비효율적으로 높다
  - 특정 채널 CAC가 평균의 2배
  - 프로모션 유입 고객의 LTV가 낮음

가설 2: LTV가 낮다 (이탈이 빠르다)
  - 고객 평균 생존 기간 8개월
  - 특정 세그먼트 LTV가 현저히 낮음

가설 3: 가격 정책이 가치를 반영하지 못함
  - 고사용 유저가 저가 플랜에 집중
  - 가격 인상 여력 존재

분석 방법

1. 코호트 기반 이탈 분석

시간에 따른 생존율 추적

구독 시작 코호트별 생존율 (월 단위)

         M0    M1    M2    M3    M4    M5    M6    M12
Jan코호트 100%  85%   78%   73%   70%   68%   66%   58%
Feb코호트 100%  87%   81%   76%   73%   71%   69%   -
Mar코호트 100%  89%   83%   79%   76%   -     -     -
Apr코호트 100%  91%   85%   -     -     -     -     -

인사이트: 
- M0→M1 이탈이 가장 큼 (11-15%)
- 코호트가 최신일수록 생존율 개선 (온보딩 개선 효과?)
- M6 이후 안정화 (충성 고객 정착)
-- 코호트별 생존율 계산
WITH cohort AS (
  SELECT 
    user_id,
    DATE_TRUNC('month', first_subscription_date) as cohort_month
  FROM subscriptions
),
monthly_status AS (
  SELECT 
    c.user_id,
    c.cohort_month,
    DATE_TRUNC('month', s.status_date) as status_month,
    s.is_active
  FROM cohort c
  JOIN subscription_status s ON c.user_id = s.user_id
)
SELECT
  cohort_month,
  DATEDIFF('month', cohort_month, status_month) as months_since_start,
  COUNT(CASE WHEN is_active THEN 1 END) * 100.0 / COUNT(*) as survival_rate
FROM monthly_status
GROUP BY 1, 2
ORDER BY 1, 2;

2. 이탈 예측 모델

선행 지표 기반 위험 고객 식별

이탈 예측 Feature 중요도:

[Feature]                        [Importance]
최근 4주 세션 수 변화율              0.28
마지막 로그인 이후 일수              0.22
핵심 기능 사용 횟수                  0.18
결제 실패 이력                      0.12
고객센터 문의 횟수                   0.08
구독 기간                          0.07
플랜 종류                          0.05
────────────────────────────────────
Model AUC: 0.84
-- 이탈 위험 점수 계산 (규칙 기반)
WITH user_metrics AS (
  SELECT
    user_id,
    -- 최근 4주 vs 이전 4주 세션 변화율
    (recent_4w_sessions - prev_4w_sessions) * 1.0 / NULLIF(prev_4w_sessions, 0) as session_change,
    DATEDIFF(CURRENT_DATE, last_login_date) as days_since_login,
    recent_4w_core_feature_usage as core_usage,
    payment_failure_count,
    support_ticket_count
  FROM user_activity_summary
  WHERE is_active_subscriber = true
)
SELECT
  user_id,
  -- 이탈 위험 점수 (0-100)
  CASE WHEN session_change < -0.5 THEN 30 ELSE 0 END +
  CASE WHEN days_since_login > 14 THEN 25 ELSE 0 END +
  CASE WHEN core_usage < 3 THEN 20 ELSE 0 END +
  CASE WHEN payment_failure_count > 0 THEN 15 ELSE 0 END +
  CASE WHEN support_ticket_count > 2 THEN 10 ELSE 0 END as churn_risk_score
FROM user_metrics;

3. LTV 분석

고객 생애 가치 계산과 세그먼트별 비교

LTV 계산 방법:

1. 단순 역사적 LTV
   LTV = 평균 월 매출 x 평균 구독 기간

2. 예측 LTV (생존 분석 기반)
   LTV = Σ (월 매출 x 해당 월 생존 확률)

3. 세그먼트별 LTV
   - 프리미엄 플랜: ₩450,000 (36개월)
   - 스탠다드 플랜: ₩180,000 (18개월)
   - 베이직 플랜: ₩72,000 (12개월)
-- 세그먼트별 LTV 계산
WITH subscription_duration AS (
  SELECT
    user_id,
    plan_type,
    acquisition_channel,
    monthly_price,
    DATEDIFF('month', start_date, COALESCE(end_date, CURRENT_DATE)) as months_active
  FROM subscriptions
  WHERE start_date >= DATEADD('year', -2, CURRENT_DATE)
),
ltv_calc AS (
  SELECT
    user_id,
    plan_type,
    acquisition_channel,
    SUM(monthly_price * months_active) as historical_ltv
  FROM subscription_duration
  GROUP BY 1, 2, 3
)
SELECT
  plan_type,
  acquisition_channel,
  COUNT(*) as users,
  AVG(historical_ltv) as avg_ltv,
  PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY historical_ltv) as median_ltv
FROM ltv_calc
GROUP BY 1, 2
ORDER BY avg_ltv DESC;

4. 무료 → 유료 전환 분석

전환 요인 및 최적 타이밍 파악

Aha Moment 분석:

[행동]                    [전환율]   [도달 비율]
3편 이상 콘텐츠 시청        24%        45%
플레이리스트 생성           31%        28%
다운로드 기능 사용          38%        15%
가족 공유 설정              52%        8%
프로필 개인화               29%        35%

인사이트: 
- 다운로드/가족 공유 사용자 전환율 높음
- 그러나 도달 비율 낮음 → 해당 기능 노출 강화 필요
-- Aha Moment 도달과 전환 상관관계
WITH trial_users AS (
  SELECT
    user_id,
    trial_start_date,
    CASE WHEN converted_to_paid THEN 1 ELSE 0 END as converted
  FROM trials
  WHERE trial_start_date >= DATEADD('month', -3, CURRENT_DATE)
),
user_behaviors AS (
  SELECT
    user_id,
    SUM(CASE WHEN event = 'content_view' THEN 1 ELSE 0 END) as content_views,
    MAX(CASE WHEN event = 'playlist_created' THEN 1 ELSE 0 END) as created_playlist,
    MAX(CASE WHEN event = 'download' THEN 1 ELSE 0 END) as used_download,
    MAX(CASE WHEN event = 'family_share' THEN 1 ELSE 0 END) as setup_family
  FROM events
  WHERE event_date BETWEEN trial_start AND trial_end
  GROUP BY user_id
)
SELECT
  CASE 
    WHEN content_views >= 3 THEN '3+ views'
    ELSE '<3 views'
  END as view_segment,
  created_playlist,
  used_download,
  setup_family,
  COUNT(*) as users,
  AVG(converted) * 100 as conversion_rate
FROM trial_users t
JOIN user_behaviors b ON t.user_id = b.user_id
GROUP BY 1, 2, 3, 4
ORDER BY conversion_rate DESC;

5. MRR 움직임 분석

Monthly Recurring Revenue 변동 요인 분해

MRR 변동 분해 (월간):

┌─────────────────────────────────────────────────────────┐
│ 시작 MRR                              ₩500,000,000     │
├─────────────────────────────────────────────────────────┤
│ (+) 신규 MRR (New)                    + ₩35,000,000    │
│ (+) 확장 MRR (Expansion)              + ₩12,000,000    │
│ (+) 복귀 MRR (Reactivation)           + ₩5,000,000     │
├─────────────────────────────────────────────────────────┤
│ (-) 이탈 MRR (Churn)                  - ₩22,000,000    │
│ (-) 축소 MRR (Contraction)            - ₩8,000,000     │
├─────────────────────────────────────────────────────────┤
│ 순 신규 MRR (Net New)                 + ₩22,000,000    │
│ 종료 MRR                              ₩522,000,000     │
│ 성장률                                + 4.4%           │
└─────────────────────────────────────────────────────────┘

Quick Ratio = (New + Expansion + Reactivation) / (Churn + Contraction)
            = 52M / 30M = 1.73 (양호, 4.0 이상이면 우수)

비즈니스 액션 연결

이탈 방지

이탈 시그널 자동화 액션 기대 효과
세션 수 50% 감소 개인화 콘텐츠 추천 푸시 재활성화 25%
14일 미로그인 윈백 이메일 시퀀스 복귀율 15%
결제 실패 즉시 결제 수단 업데이트 요청 비자발적 이탈 -40%
이탈 위험 점수 70+ CS 선제 연락 이탈률 -30%

전환 최적화

인사이트 액션 기대 효과
Aha Moment 미도달 온보딩 가이드 강화 전환율 +5%p
7일 체험 종료 전 미사용 D3, D5 리마인드 활성화 +20%
결제 페이지 이탈 연간 할인 강조, 간편결제 전환율 +3%p
고가 플랜 망설임 중간 플랜 제안 전환율 +2%p

확장 (Expansion)

인사이트 액션 기대 효과
기능 한계 도달 상위 플랜 업그레이드 제안 ARPU +15%
사용량 급증 용량 추가 또는 플랜 변경 제안 확장 MRR +20%
팀원 추가 가능성 팀 플랜 전환 제안 계정당 매출 2배

실전 케이스 스터디

케이스: 이탈률 개선 프로젝트 (스트리밍 서비스)

상황: - 월 이탈률 5.2% - 연간 고객 손실률 47% - 신규 유입으로 커버하지만 성장 둔화

분석 프로세스:

  1. 문제 정의
  2. 어느 시점에 이탈이 집중되는가?
  3. M1 이탈 15%, M2 이탈 8%, 이후 3-4% 안정화
  4. 첫 달 이탈이 핵심 문제

  5. 가설 설정

  6. 가설 1: 가입 직후 콘텐츠 탐색 실패
  7. 가설 2: 결제 후 "충분히 봤다" 인식
  8. 가설 3: 기대와 실제 서비스 괴리

  9. 데이터 분석

    M1 이탈자 vs 생존자 행동 비교:
    
    [지표]              [이탈자]    [생존자]
    첫 주 시청 편수       1.2편      4.8편
    장르 다양성           1.1개      2.8개
    개인화 설정 완료      12%        67%
    위시리스트 추가        8%        45%
    

  10. 실험 설계

  11. A: 가입 직후 취향 설문 → 맞춤 추천 강화
  12. B: "꼭 봐야 할 콘텐츠 5선" 온보딩 이메일
  13. C: 7일 내 5편 시청 시 다음 달 10% 할인

  14. 결과

  15. A그룹: M1 이탈률 15% → 11% (-4%p)
  16. B그룹: M1 이탈률 15% → 13% (-2%p)
  17. C그룹: M1 이탈률 15% → 10% (-5%p), 단 마진 감소

  18. 최종 결정

  19. A안 (취향 설문) 정규화: ROI 최고
  20. C안 일부 적용: 이탈 고위험군에만 할인 제공

연간 효과: - 이탈률 5.2% → 4.3% - 연간 추가 유지 고객 약 45,000명 - 추가 매출 약 ₩27억

케이스: 무료 → 유료 전환 (SaaS)

상황: - 무료 체험 전환율 8% - 경쟁사 평균 12% - "왜 전환하지 않는가?" 분석 필요

분석:

전환자 vs 비전환자 행동 분석:

[행동 지표]                    [전환자]    [비전환자]
핵심 기능 사용                  92%         34%
팀원 초대                       78%         12%
데이터 업로드                   85%         28%
대시보드 커스텀                 71%         15%
지원 문서 조회                  45%         62%

인사이트:
- 핵심 기능 미사용이 가장 큰 차이
- 비전환자는 사용법을 몰라서 지원 문서만 봄

액션: 1. 가입 후 24시간 내 핵심 기능 사용 가이드 강제 노출 2. "첫 프로젝트 생성" 단계별 체크리스트 3. 48시간 미사용 시 화상 온보딩 제안

결과: - 전환율 8% → 14% (+6%p) - 핵심 기능 도달률 34% → 68%


핵심 지표 대시보드

SaaS / 구독 서비스

[MRR 현황]
┌────────────────────────────────────────────────────────────┐
│  MRR: ₩522M (+4.4%)    ARR: ₩6.26B    고객수: 12,400     │
├────────────────────────────────────────────────────────────┤
│  New: +₩35M   Expansion: +₩12M   Churn: -₩22M            │
│  Quick Ratio: 1.73                                        │
└────────────────────────────────────────────────────────────┘

[유닛 이코노믹스]
LTV: ₩324,000    CAC: ₩108,000    LTV/CAC: 3.0
Payback Period: 4.2개월

[이탈 현황]
월간 이탈률: 4.3%    이탈 위험 고객: 1,240명 (10%)

[전환 퍼널]
가입 → 활성화 → 전환
100%    68%      14%

컨텐츠 구독 서비스

[구독 현황]
총 구독자: 2.4M    유료 전환: 1.8M (75%)
MRR: ₩18B         ARPU: ₩10,000

[활성화 지표]
DAU/MAU: 35%    주간 시청 시간: 8.2h    완주율: 45%

[이탈 예측]
이탈 위험 (30일 내): 180,000명 (10%)
윈백 대상 (90일 내 이탈): 95,000명

[코호트 건강도]
M1 리텐션: 85%    M6 리텐션: 68%    M12 리텐션: 58%

주의 사항

  1. 겉보기 이탈 vs 실제 이탈
  2. 결제 실패로 인한 비자발적 이탈 구분
  3. 플랜 다운그레이드는 이탈이 아님 (Contraction)

  4. 활성 유저 ≠ 유지 유저

  5. 결제는 하지만 사용 안 하는 "좀비" 구독자
  6. 언젠가 깨닫고 해지할 숨겨진 이탈 예비군

  7. 프로모션 왜곡

  8. 할인 유입 고객의 LTV가 정상 유입 대비 낮을 수 있음
  9. 무료 체험 남용 (다중 계정)

  10. 시즌성

  11. 연초 결심 효과 (헬스, 교육 서비스)
  12. 연말/휴가 시즌 사용량 변화
  13. YoY 비교 시 같은 시즌 비교 필수