huny.log

기술 포스트 · 그로스해킹

코호트 LTV 곡선 — 누적 매출 그래프 그리고 해석하기

평균 LTV 한 숫자로는 채널·시즌·세그먼트 차이가 안 보입니다. 코호트별 누적 매출 곡선을 그려 그 차이를 시각적으로 잡고, 곡선 모양으로 운영 결정을 내리는 표준 워크플로.

“이 채널 LTV 400이고 어느 코호트는 $80일 수 있습니다. 코호트 LTV 곡선은 그 차이를 한 그래프로 보여주고, 곡선 모양 자체가 운영 결정의 근거가 됩니다.

마케터가 이 글을 읽어야 하는 이유: 분기 회의에서 LTV 평균만 들고 가면 의사결정자가 “그래서 어느 자리에서 그 평균이 나왔어?”를 묻습니다. 코호트 곡선이 그 자리를 시각적으로 답합니다. 곡선이 빠르게 평탄화되면 churn 문제, 천천히 우상향이면 재구매 강함, 한 번 떨어지고 회복 안 되면 이슈 발생 시점 — 곡선 모양 한 번 보면 운영 진단이 즉답.

시간 축에 코호트별 누적 매출 곡선 4개가 다른 형태로 그려진 다이어그램
평균 한 숫자가 못 보여주는 입체. 곡선 모양 자체가 진단.

1. LTV 곡선의 한 줄 직관

한 코호트(같은 시점에 획득한 사용자 묶음)의 누적 평균 매출을 시간 축에 그린 그래프.

X축이 코호트 시작 후 경과 시간(월), Y축이 그 시점까지 누적된 사용자 1인당 매출.

경과 월A코호트 누적 LTVB코호트 누적 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 pd
import matplotlib.pyplot as plt
# transactions: user_id, date, revenue, channel, signup_month
df = 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·톱니)으로 분류하는 흐름입니다. 분류 자체가 다음 분기 액션을 정해줍니다.

다음에 읽을 글

참고

그로스해킹 카테고리의 다른 글

전체 보기 →