코호트 LTV 곡선 — 누적 매출 그래프 그리고 해석하기
평균 LTV 한 숫자로는 채널·시즌·세그먼트 차이가 안 보입니다. 코호트별 누적 매출 곡선을 그려 그 차이를 시각적으로 잡고, 곡선 모양으로 운영 결정을 내리는 표준 워크플로.
“이 채널 LTV 400이고 어느 코호트는 $80일 수 있습니다. 코호트 LTV 곡선은 그 차이를 한 그래프로 보여주고, 곡선 모양 자체가 운영 결정의 근거가 됩니다.
마케터가 이 글을 읽어야 하는 이유: 분기 회의에서 LTV 평균만 들고 가면 의사결정자가 “그래서 어느 자리에서 그 평균이 나왔어?”를 묻습니다. 코호트 곡선이 그 자리를 시각적으로 답합니다. 곡선이 빠르게 평탄화되면 churn 문제, 천천히 우상향이면 재구매 강함, 한 번 떨어지고 회복 안 되면 이슈 발생 시점 — 곡선 모양 한 번 보면 운영 진단이 즉답.
1. LTV 곡선의 한 줄 직관
한 코호트(같은 시점에 획득한 사용자 묶음)의 누적 평균 매출을 시간 축에 그린 그래프.
X축이 코호트 시작 후 경과 시간(월), Y축이 그 시점까지 누적된 사용자 1인당 매출.
| 경과 월 | A코호트 누적 LTV | B코호트 누적 LTV |
|---|---|---|
| 1 | $30 | $25 |
| 3 | $55 | $40 |
| 6 | $85 | $55 |
| 12 | $145 | $75 |
| 24 | $220 | $90 |
평균 LTV (12개월 = 220, B는 $90으로 곡선 모양이 완전 다름. 의사결정에 이 차이가 결정적.
2. 코호트 정의 — 어떻게 묶을까
코호트는 같은 시점에 획득한 사용자 묶음. 자주 등장하는 묶음 기준.
2-1. 획득 월
가장 흔한 기준. 2026-Q1·Q2·Q3 등 분기 단위 또는 월 단위.
2-2. 획득 채널
Meta·Google·Naver 등 채널별로 코호트 분리. 채널별 LTV 곡선 비교가 분기 의사결정의 핵심 자리.
2-3. 캠페인·크리에이티브
특정 캠페인이나 크리에이티브로 들어온 사용자만 묶기. 캠페인 단위 평가에 적합.
2-4. 첫 구매 카테고리
첫 구매 카테고리(전자기기·의류·식품 등)별로 묶어 LTV 차이 측정.
| 코호트 기준 | 자주 쓰는 자리 |
|---|---|
| 획득 월 | 분기 트렌드·시즌 효과 |
| 채널 | 채널 간 LTV 비교 |
| 캠페인 | 캠페인 평가 |
| 첫 카테고리 | 카테고리 전략 |
| 첫 구매 가격대 | 가격 정책 |
3. 4가지 표준 곡선 모양
LTV 곡선의 모양이 곧 운영 진단입니다.
3-1. 가파른 우상향 — 우수
처음 1-3개월에 빠르게 누적, 그 이후 안정적 추가 매출. 재구매·구독 강한 자리.
$250 | ___------ $200 | __-- $150 | _-/ $100 | _-/ $50 | _-/ +-----+-----+-----+-----+ 3m 6m 12m 18m진단: 이 채널·세그먼트에 예산 추가 투입.
3-2. 빠른 평탄화 — Churn 문제
처음 한두 달은 매출 좋고, 그 이후 거의 평평. 첫 구매 후 떠나는 사용자 많음.
$100 | ____________________ $80 | / $40 | / $20 | / +-----+-----+-----+-----+ 3m 6m 12m 18m진단: post-purchase journey, retention 캠페인 도입 검토.
3-3. S-curve — 늦게 활성화
초반은 약하고 6-9개월쯤부터 매출 급증. 학습·신뢰 형성 후 사용 본격화 패턴.
$200 | ____------ $150 | __-/ $100 | __-/ $50 | _____/ +-----+-----+-----+-----+ 3m 6m 12m 18m진단: 회수 시간이 길지만 LTV는 큼. 자본 여유 시 가치 큰 자리.
3-4. 톱니형 — 시즌·이벤트 의존
특정 시기(연말·세일)마다 급증, 다른 시기엔 평탄. 일정 의존도 높음.
$150 | __-/-_____-/ $100 | __/ $60 | __/ $30 | _/ +-----+-----+-----+-----+ 3m 6m 12m 18m진단: 시즌 외 retention 약점. 평상시 캠페인 강화.
4. 코드 한 묶음 — 코호트 곡선 그리기
이게 글에 박는 유일한 코드입니다.
import pandas as pdimport matplotlib.pyplot as plt
# transactions: user_id, date, revenue, channel, signup_monthdf = pd.read_csv("transactions.csv", parse_dates=["date"])users = pd.read_csv("users.csv", parse_dates=["signup_month"])
# 사용자별 코호트 (channel + signup_month 단위)df = df.merge(users[["user_id", "channel", "signup_month"]], on="user_id")df["cohort_month"] = (df["date"].dt.year - df["signup_month"].dt.year) * 12 + \ (df["date"].dt.month - df["signup_month"].dt.month)
# 코호트별·월별 1인당 매출agg = df.groupby(["channel", "cohort_month"]).agg( revenue_per_user=("revenue", "sum"), users=("user_id", "nunique")).reset_index()agg["per_user"] = agg["revenue_per_user"] / agg["users"]
# 누적 LTV (각 채널별로 cohort_month 누적)agg = agg.sort_values(["channel", "cohort_month"])agg["cumulative_ltv"] = agg.groupby("channel")["per_user"].cumsum()
# 시각화 — 채널별 곡선fig, ax = plt.subplots(figsize=(9, 5))for ch in agg["channel"].unique(): sub = agg[agg["channel"] == ch] ax.plot(sub["cohort_month"], sub["cumulative_ltv"], marker="o", label=ch)ax.set_xlabel("코호트 시작 후 경과 월")ax.set_ylabel("누적 1인당 매출 (LTV)")ax.legend(); ax.grid(alpha=0.3)plt.tight_layout(); plt.savefig("ltv_curve.png", dpi=150)이 한 묶음이 코호트 LTV 곡선의 표준 시각화. 채널별 비교가 한 그래프에.
5. 곡선에서 읽는 의사결정 신호 5가지
5-1. 12개월 LTV 절대치
각 채널·세그먼트의 12개월 누적 LTV가 LTV/CAC 비율의 기반. 절대치 비교가 첫 단계.
5-2. 곡선 기울기
기울기가 가파른 자리는 재구매 강함. 평평한 자리는 첫 구매 의존.
5-3. 손익분기 시점 (CAC 회수)
곡선이 CAC 라인 넘는 시점이 payback period. 짧을수록 좋음.
5-4. 코호트 간 변동성
같은 채널 다른 월 코호트의 곡선이 비슷한 모양인지. 변동성 크면 운영 안정성 약함.
5-5. 시즌·이벤트 영향
특정 코호트가 다른 모양이면 그 시기에 시즌·이벤트·정책 변화 의심.
6. LTV 곡선의 한계와 보완
6-1. 미래 추정의 한계
12개월 코호트 곡선이 24개월 LTV를 정확히 예측 못 함. BG/NBD 같은 확률 모델(bgnbd-ltv-prediction)이 미래 LTV 추정의 표준.
6-2. 자가 선택 편향
ROAS 좋은 채널은 광고 자체가 더 자주 좋은 사용자에게 노출됨. LTV 곡선이 채널 효과인지 사용자 차이인지 분리 어려움.
6-3. 외부 요인
경기·경쟁·브랜드 인지도 변화가 LTV에 영향. 같은 채널의 분기 코호트가 다른 모양이면 외부 요인 의심.
6-4. Right-truncation
가장 최근 코호트는 데이터가 짧아 12개월 LTV 알 수 없음. 6개월 LTV로 12개월 LTV 추정하는 모델 필요.
7. 분기 보고에 박을 표 양식
| 채널 | 12mo LTV | 곡선 기울기 | Payback | 변동성 | 판단 |
|---|---|---|---|---|---|
| Meta retargeting | $185 | 가파름 | 1개월 | 낮음 | 적극 확장 |
| Naver 검색 | $220 | 표준 | 5개월 | 낮음 | 표준 |
| TikTok prospecting | $110 | 평평 | 9개월 | 높음 | retention 캠페인 도입 |
| Display | $130 | 톱니 | 14개월 | 매우 높음 | 시즌 의존 — 분기별 분석 |
LTV 절대치만 보면 Naver가 1위지만, 곡선 기울기·payback·변동성을 함께 보면 Meta retargeting이 운영 안정성 우위.
8. 마치며 — 평균 한 숫자가 가린 진실
평균 LTV 한 숫자는 코호트 간 차이·곡선 모양·시간 변동성을 모두 가립니다. 코호트별 LTV 곡선을 한 그래프에 두는 것만으로 분기 회의의 의사결정 입력이 입체적이 되고, “왜 이 채널?”의 답이 데이터로 따라옵니다.
다음 분기에 한 번만 시도해 볼 만한 것은 채널별 코호트 LTV 곡선을 한 슬라이드에 두고 4가지 모양(가파른·평탄·S·톱니)으로 분류하는 흐름입니다. 분류 자체가 다음 분기 액션을 정해줍니다.
다음에 읽을 글
- BG/NBD LTV 예측 — 미래 LTV 확률 모델링
- CAC payback period — 곡선의 손익분기 시점
- Retention curve cohort — LTV 곡선의 형제 도구
참고
- “Cohort analysis 101” (Mode): https://mode.com/blog/cohort-analysis/
- “LTV cohort curves in DTC” (Common Thread): https://commonthreadco.com/
- “Cohort retention” (Reforge): https://www.reforge.com/
- “Customer LTV” (HBR, 2014): https://hbr.org/
- “Right-truncation in LTV estimation” (Fader & Hardie): https://www.brucehardie.com/papers/
그로스해킹 카테고리의 다른 글
전체 보기 →-
2026·05·16
AARRR을 진짜 운영하는 법 — North Star metric, funnel ops, growth loop의 실전 가이드
AARRR(acquisition·activation·retention·referral·revenue)는 그로스해킹의 기본 프레임이지만 실제 운영에서는 자주 깨집니다. North Star metric 정의, 단계별 funnel ops, growth loop 설계까지 실전 가이드로 정리합니다.
-
2026·05·10
ROAS·CAC·LTV — 세 숫자 서로 다른 질문에 답하는 이유
회의에서 ROAS만 들고 가면 장기·LTV가 빠지고, CAC만 보면 광고 효율이 빠집니다. 세 숫자를 한 슬라이드에 입체적으로 두는 표준 양식과 의사결정 프레임.
-
2026·05·10
CAC Payback period — 광고비를 몇 개월 만에 회수하는가
CAC 한 번 쓰고 끝이 아닙니다. 그 광고비를 매출로 회수하는 데 몇 개월 걸리는지가 현금흐름·재투자 속도를 결정합니다. payback period 계산·운영 룰·SaaS vs 이커머스 차이.
-
2026·05·08
Frequency capping — 같은 사람한테 광고를 몇 번 보여줄까
광고를 너무 자주 보이면 피로(fatigue), 너무 드물게 보이면 노출 부족. 두 함정 사이에서 최적 빈도를 잡는 frequency capping의 표준 룰과 시간창 설계를 마케터 시선에서 정리합니다.