구독 서비스 분석¶
넷플릭스, 밀리의서재, SaaS 등 반복 과금 기반 비즈니스
핵심 문제 정의¶
구독 모델의 핵심 질문들:
| 문제 영역 | 핵심 질문 | 비즈니스 임팩트 |
|---|---|---|
| 이탈 (Churn) | 왜 구독을 해지하는가? | MRR 감소, 성장 정체 |
| 전환 | 무료 사용자가 왜 유료로 전환하지 않는가? | 유닛 이코노믹스 악화 |
| 업그레이드 | 왜 상위 플랜으로 이동하지 않는가? | ARPU 정체 |
| 활성화 | 결제만 하고 왜 사용하지 않는가? | 숨겨진 이탈 리스크 |
구독의 본질: 한 번의 구매가 아니라 "매달 다시 선택받아야 하는" 모델. 이탈 방지가 곧 성장.
가설 예시¶
이탈 시그널 정의¶
문제: 월 이탈률 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% - 신규 유입으로 커버하지만 성장 둔화
분석 프로세스:
- 문제 정의
- 어느 시점에 이탈이 집중되는가?
- M1 이탈 15%, M2 이탈 8%, 이후 3-4% 안정화
-
첫 달 이탈이 핵심 문제
-
가설 설정
- 가설 1: 가입 직후 콘텐츠 탐색 실패
- 가설 2: 결제 후 "충분히 봤다" 인식
-
가설 3: 기대와 실제 서비스 괴리
-
데이터 분석
-
실험 설계
- A: 가입 직후 취향 설문 → 맞춤 추천 강화
- B: "꼭 봐야 할 콘텐츠 5선" 온보딩 이메일
-
C: 7일 내 5편 시청 시 다음 달 10% 할인
-
결과
- A그룹: M1 이탈률 15% → 11% (-4%p)
- B그룹: M1 이탈률 15% → 13% (-2%p)
-
C그룹: M1 이탈률 15% → 10% (-5%p), 단 마진 감소
-
최종 결정
- A안 (취향 설문) 정규화: ROI 최고
- 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%
주의 사항¶
- 겉보기 이탈 vs 실제 이탈
- 결제 실패로 인한 비자발적 이탈 구분
-
플랜 다운그레이드는 이탈이 아님 (Contraction)
-
활성 유저 ≠ 유지 유저
- 결제는 하지만 사용 안 하는 "좀비" 구독자
-
언젠가 깨닫고 해지할 숨겨진 이탈 예비군
-
프로모션 왜곡
- 할인 유입 고객의 LTV가 정상 유입 대비 낮을 수 있음
-
무료 체험 남용 (다중 계정)
-
시즌성
- 연초 결심 효과 (헬스, 교육 서비스)
- 연말/휴가 시즌 사용량 변화
- YoY 비교 시 같은 시즌 비교 필수