성장 지표 대시보드: 창업자를 위한 플레이북
초기 단계 스타트업을 위한 CAC, LTV, 이탈률 추적.
이 가이드는 추적해야 할 성장 지표, 계산 방법, 간단하면서도 신뢰할 수 있는 대시보드를 구축하는 방법을 정확하게 보여줍니다. 평이한 영어 정의, 최소한의 가정, 스프레드시트나 데이터 웨어하우스에 직접 붙여넣을 수 있는 공식을 선호합니다.
이 대시보드의 용도
잘 구축된 성장 대시보드는 단순히 차트 모음이 아니라 의사 결정 엔진입니다. 이 플레이북은 다음을 수행하는 데 도움이 됩니다.
- 성장 상태를 한눈에 파악: 획득 효율성, 고객 유지 품질, 투자 회수 속도를 즉시 이해합니다.
- 리소스 투자 위치 결정: 실제로 가치를 높이는 채널, 고객 세그먼트, 제품을 식별하여 효과적인 부분에 집중하고 그렇지 않은 부분을 줄일 수 있습니다.
- 단일 정보 출처 생성: 재무, 성장, 제품 팀 모두가 지지할 수 있는 대시보드를 구축하여 숫자가 "옳은"지 여부에 대한 논쟁을 없앱니다.
핵심 지표 (역효과가 없는 정의)
정확하고 일관된 정의를 사용하는 것은 신뢰할 수 있는 대시보드의 기본입니다.
고객 획득 비 용 (CAC)
CAC는 새로운 고객 1명을 확보하는 데 드는 비용을 측정합니다. 혼합 버전과 유료 버전을 모두 추적하는 것이 중요합니다.
- 혼합 CAC: 모든 비용을 포함합니다.
CAC = (특정 기간의 모든 판매 및 마케팅 획득 비용) ÷ (특정 기간의 신규 고객 수)
- 유료 CAC: 유료 마케팅 채널의 효율성을 분리합니다.
유료 CAC = (미디어 지출 + 대행사 + 유료 채널 관련 크리에이티브) ÷ (유료 채널로 인한 신규 고객 수)
포함할 사항: S&M 급여, 수수료, 복리후생, 소프트웨어 도구, 대행사 수수료, 광고 지출, 크리에이티브 개발, 관련 계약자 비용을 포함하여 _획득_에 사용되는 모든 비용. 제외할 사항: _유지_를 위한 고객 성공 또는 지원 비용, R&D 비용 및 창업자 급여 (창업자가 대부분의 시간을 획득 활동에 보내지 않는 한). 귀속: 첫 번째 터치 또는 마지막 터치와 같은 간단한 모델을 선택합니다. 가장 중요한 것은 일관성을 위해 하나를 선택하고 문서화하고 고수하는 것입니다.
평생 가치 (LTV)
LTV는 고객이 회사와의 전체 관계를 통해 얻을 총 이익을 추정합니다.
-
빠르고 구독에 안전한 근사 (총 LTV): 이 공식은 빠른 상태 확인에 적합합니다.
LTV = ARPA × 총 마진 % ÷ 월별 로고 이탈률 %
ARPA
: 해당 기간의 활성 계정당 평균 월간 반복 수익 (MRR).- 여기서는 수익 이탈이 아닌 로고 이탈(고객 이탈)을 사용하십시오. 이렇게 하면 확장 수익이 기본 유지 문제를 가리는 것을 방지할 수 있습니다.
-
더 정확함 (할인, 코호트 기반): 이 방법은 더 복잡하지만 화폐의 시간 가치를 고려하므로 훨씬 더 정확합니다. 수명 동안 주어진 코호트의 월별 총 이익을 합산하여 비율
d
(일반적으로 연간 10-15%)로 할인합니다.LTV = Σ_t (ARPA_t × 총 마진 % × 생존_t) / (1 + d)^(t/12)
이탈 및 유지 (고객과 수익 모두 추적)
얼마나 많은 고객을 잃는지 (로고 이탈)와 얼마나 많은 수익을 잃는지 (수익 이탈)를 모두 추적해야 합니다.
- 로고 이탈 (고객): 취소하는 고객의 백분율.
월별 로고 이탈률 % = (이번 달에 이탈한 고객 수) ÷ (월초의 고객 수)
- 총 수익 이탈: 취소 및 다운그레이드로 인해 손실된 MRR의 백분율. 이는 순수한 수익 누출 측정입니다.
총 수익 이탈률 % = (이탈 MRR + 축소 MRR) ÷ 월초 MRR
- 순수익 유지율 (NRR): SaaS 지표의 성배. 이 지표는 이탈, 축소 및 확장을 고려하여 기존 고객 기반에서 발생하는 수익 성장을 보여줍니다. 100%가 넘는 NRR은 신규 고객을 추가하지 않아도 비즈니스가 성장한다는 의미입니다.
NRR = (시작 MRR − 이탈 MRR − 축소 MRR + 확장 MRR) ÷ 시작 MRR
- 비자발적 이탈 대 자발적 이탈: 고객이 적극적으로 취소하도록 선택한 고객("원하지 않음")과 결제 실패로 인해 이탈한 고객을 분리하는 것이 중요합니다. 높은 비자발적 이탈은 종종 더닝 프로세스의 수정 가능한 문제를 지적합니다.
CAC 회수 및 LTV:CAC 비율
이 두 지표는 획득 비용을 단위 경제학과 연결합니다.
- CAC 회수 기간 (월): 고객 획득 비용을 회수하는 데 걸리는 시간입니다.
회수 = CAC ÷ (ARPA × 총 마진 % − 계정당 평균 가변 성공 비용)
- LTV:CAC 비율: 고객의 평생 가치와 획득 비용 간의 관계. 일반적인 경험 법칙은 ≥ 3:1의 비율을 목표로 하는 것입니다. 건강한 비즈니스는 획득에 지출한 1달러당 최소 3달러의 평생 가치를 창출해야 합니다. 회수는 SMB 고객의 경우 < 12–18개월, 중견/대기업의 경우 < 24개월이 이상적입니다.
대시보드에 표시해야 할 사항 (레이아웃)
대시보드를 세 개의 레이어로 구성 하여 높은 수준의 KPI에서 세분화된 진단으로 이동합니다.
- 상단 행 (핵심 성과 지표): 한눈에 볼 수 있는 상태 확인.
신규 고객
|신규 MRR
|NRR (최근 3개월 및 12개월)
CAC (혼합 + 유료)
|CAC 회수 (월)
|LTV:CAC
- 중간 행 (추세): 핵심 지표가 시간이 지남에 따라 어떻게 진화하는지.
- 시간이 지남에 따른
CAC
및회수 기간
을 보여주는 선 차트. 로고 이탈률 %
및총 수익 이탈률 %
를 보여주는 선 차트.확장 vs. 축소 vs. 이탈
이라는 MRR 이동을 시각화하는 누적 막대 차트.
- 시간이 지남에 따른
- 하단 행 (진단): 추세의 "이유".
- 코호트 히트맵: 고객 유지 및 수익 유지를 위한 것으로, 가입 월별 성과를 보여줍니다. 이것은 제품 및 유지가 실제로 개선되고 있는지 확인하는 가장 좋은 방법입니다.
- 채널 성과 표:
지출
,신규 고객
,CAC
,90일 유지율
및LTV:CAC
를 보여주는 획득 채널별 분석. - 이탈 이유: 추세와 함께 상위 5가지 이탈 이유를 보여주는 원형 또는 막대 차트.
필요한 데이터 (최소 모델)
이 대시보드를 구동하려면 몇 가지 주요 소스에서 데이터를 수집하고 구성해야 합니다.
- customers:
customer_id, signup_date, plan, segment, country, channel, sales_owner
- subscriptions:
customer_id, term_start, term_end, status, plan, seats, list_price, discount
- subscription_events (강력히 권장):
event_date, customer_id, event_type (new|upgrade|downgrade|churn|reactivate), mrr_delta
- invoices/payments:
invoice_id, customer_id, service_period_start, service_period_end, amount, cogs_if_any
- ad_spend:
date, channel, campaign, cost
- s&m_costs:
month, cost_type, amount, attributable_to (acquisition|retention)
- churn_survey:
customer_id, churn_date, reason_code, free_text
전문가 팁: 대시보드 보기를 위해 모든 것을 월별 버킷에 보관하되, 보다 유연한 분석을 위해 기본 이벤트를 일별 세분성으로 저장합니다.
스프레드시트 공식 (복사/붙여넣기)
간단한 스프레드시트 모델의 경우 각 월별 시트를 만들고 다음 공식을 사용합니다.
ARPA = 시작_MRR / 시작_고객
로고_이탈_% = 이탈한_고객 / 시작_고객
총_수익_이탈_% = (이탈_MRR + 축소_MRR) / 시작_MRR
NRR = (시작_MRR - 이탈_MRR - 축소_MRR + 확장_MRR) / 시작_MRR
CAC_혼합 = (S&M_획득_비용) / 신규_고객
회수_월 = CAC_혼합 / (ARPA * 총_마진_% - 고객당_가변_성공_비용)
LTV_총 = ARPA * 총_마진_% / 로고_이탈_%
LTV_대_CAC = LTV_총 / CAC_혼합
중요: 항상 월초 기준에 대해 이탈률을 계산하고 분모에서 신규 고객을 제외합니다. 이렇게 하면 새 가입이 해당 기간의 이탈률을 인위적으로 낮추는 것을 방지할 수 있습니다.
적응할 수 있는 SQL (Postgres)
보다 강력한 설정을 위해 다음 SQL 쿼리를 시작점으로 사용합니다.
1) 월별 MRR 흐름 이 쿼리는 월초 MRR과 각 월의 주요 이동 (신규, 확장, 축소, 이탈)을 계산합니다.
WITH m AS (
SELECT
date_trunc('month', event_date) AS month,
SUM(CASE WHEN event_type = 'new' THEN mrr_delta ELSE 0 END) AS new_mrr,
SUM(CASE WHEN event_type = 'upgrade' THEN mrr_delta ELSE 0 END) AS expansion_mrr,
SUM(CASE WHEN event_type = 'downgrade' THEN -mrr_delta ELSE 0 END) AS contraction_mrr,
SUM(CASE WHEN event_type = 'churn' THEN -mrr_delta ELSE 0 END) AS churn_mrr
FROM subscription_events
GROUP BY 1
),
base AS (
SELECT
month,
SUM(new_mrr + expansion_mrr - contraction_mrr - churn_mrr)
OVER (ORDER BY month ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS end_mrr
FROM m
)
SELECT
m.month,
LAG(end_mrr, 1, 0) OVER (ORDER BY m.month) AS start_mrr,
m.new_mrr, m.expansion_mrr, m.contraction_mrr, m.churn_mrr
FROM m
JOIN base b ON b.month = m.month
ORDER BY m.month;
2) 로고 이탈률 이 쿼리는 월초의 활성 고객을 기준으로 월별 고객 이탈률을 계산합니다.
WITH actives AS (
SELECT date_trunc('month', s.term_start) AS month, s.customer_id
FROM subscriptions s
WHERE s.status = 'active'
GROUP BY 1,2
),
churns AS (
SELECT date_trunc('month', se.event_date) AS month, se.customer_id
FROM subscription_events se
WHERE se.event_type = 'churn'
)
SELECT
a.month,
COUNT(DISTINCT a.customer_id) AS start_customers,
COUNT(DISTINCT c.customer_id) AS churned_customers,
COUNT(DISTINCT c.customer_id)::decimal /
NULLIF(COUNT(DISTINCT a.customer_id),0) AS logo_churn_pct
FROM actives a
LEFT JOIN churns c
ON c.customer_id = a.customer_id AND c.month = a.month
GROUP BY 1
ORDER BY 1;
3) 채널 CAC (혼합 및 유료) 이 쿼리는 각 획득 채널에 대한 혼합 CAC와 유료 CAC를 모두 계산합니다.
WITH new_logos AS (
SELECT date_trunc('month', signup_date) AS month, channel, COUNT(*) AS new_customers
FROM customers
GROUP BY 1,2
),
paid_spend AS (
SELECT date_trunc('month', date) AS month, channel, SUM(cost) AS spend
FROM ad_spend
GROUP BY 1,2
),
s_and_m AS (
SELECT month, SUM(amount) AS acq_costs
FROM s_m_costs
WHERE attributable_to = 'acquisition'
GROUP BY 1
)
SELECT
n.month,
n.channel,
n.new_customers,
COALESCE(p.spend,0) AS paid_spend,
CASE WHEN n.new_customers > 0
THEN COALESCE(p.spend,0)::decimal / n.new_customers
ELSE NULL END AS paid_cac,
s.acq_costs,
CASE WHEN (SELECT SUM(new_customers) FROM new_logos WHERE month = n.month) > 0
THEN s.acq_costs::decimal / (SELECT SUM(new_customers) FROM new_logos WHERE month = n.month)
ELSE NULL END AS blended_cac
FROM new_logos n
LEFT JOIN paid_spend p ON p.month = n.month AND p.channel = n.channel
LEFT JOIN s_and_m s ON s.month = n.month
ORDER BY n.month, n.channel;
4) 코호트 수익 유지 히트맵 이 쿼리는 각 월별 가입 코호트에 대해 시간이 지남에 따라 유지되는 초기 MRR의 백분율을 보여주는 수익 유지 히트맵에 대한 데이터를 생성합니다.
WITH firsts AS (
SELECT customer_id, date_trunc('month', MIN(signup_date)) AS cohort_month
FROM customers
GROUP BY 1
),
mrr_by_month AS (
SELECT date_trunc('month', event_date) AS month, customer_id,
SUM(mrr_delta) OVER (PARTITION BY customer_id ORDER BY event_date
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS mrr
FROM subscription_events
),
cohorts AS (
SELECT f.cohort_month, m.month,
EXTRACT(YEAR FROM age(m.month, f.cohort_month)) * 12 +
EXTRACT(MONTH FROM age(m.month, f.cohort_month)) AS months_since,
SUM(GREATEST(m.mrr,0)) AS cohort_mrr
FROM firsts f
JOIN mrr_by_month m USING (customer_id)
GROUP BY 1,2,3
)
SELECT cohort_month, months_since,
cohort_mrr / NULLIF(MAX(CASE WHEN months_since = 0 THEN cohort_mrr END)
OVER (PARTITION BY cohort_month),0) AS revenue_retention
FROM cohorts
ORDER BY cohort_month, months_since;
계측 체크리스트 (이것을 건너뛰지 마십시오)
좋은 데이터 입력, 좋은 지표 출력. 제품 및 시스템이 이러한 중요한 이벤트를 캡처하도록 계측되었는지 확인합니다.
- UTM: 모든 가입 경로에서 UTM 매개변수를 추적하고 생성 시 계정 기록에 저장합니다.
- 취소 이벤트: 고객이 이탈하면 구조화된
reason_code
를 캡처하고 선택적 자유 텍스트 필드를 제공합니다. - 더닝 이벤트: 비자발적 이탈을 적절하게 식별하고 분석하기 위해 결제 재시도와 성공/실패를 추적합니다.
- 좌석/요금제 변경: 좌석 변경 및 요금제 업그레이드/다운그레이드를 각각
mrr_delta
와 연결된 개별 이벤트로 기록합니다. - 재활성화: 고객 재활성화를 명시적으로 추적합니다. 돌아온 고객은 "새로운" 고객이 아닙니다.
- 재무: 각 송장 라인에
price
및discount
를 저장합니다. 상당한 가변 비용 (예: 인프라, AI 모델 추론, 타사 API 수수료)이 있는 경우 관련 COGS를 저장합니다.
실제로 의사 결정에 도움이 되는 세분화
혼합된 회사 전체 지표에만 의존하지 마십시오. 데이터를 세분화하여 비즈니스에 대한 숨겨진 진실을 밝혀내십시오. 핵심 지표 (CAC, LTV, 이탈)를 다음 기준으로 분석합니다.
- 요금제 / ACV 대역: 예: 연간 계약 가치가 1,000달러 미만, 1–10,000달러, 10–100,000달러.
- 채널: 유료 검색, 콘텐츠, 파트너, 아웃바운드 판매 등.
- ICP 적합성: 이상적인 고객 프로필과 비 ICP 고객.
- 시장 진출 방식: 셀프 서비스 대 영업 주도.
- 지역: 가격 책정, 경쟁 또는 사용자 행동이 크게 다른 경우.
일부 세그먼트는 매우 수익성이 높지만 다른 세그먼트는 전체 지표에 부담이 된다는 것을 거의 항상 알 수 있습니다.
검토 주기
이 대시보드를 팀의 운영 리듬에 통합합니다.
- 주간:
CAC
추세,신규 MRR
,확장 vs. 이탈 MRR
차트 및 상위 이탈 이유와 같은 고속 지표를 검토합니다. - 월간:
NRR
(최근 3개월 및 12개월),CAC 회수
및LTV:CAC
를 자세히 살펴보십시오. 이를 사용하여 채널 및 세그먼트 성과를 검토합니다. - 분기별:
코호트 유지
곡선을 분석하여 장기적인 제품 상태를 평가합니다. 이 회의를 사용하여 귀속 모델을 검증하고 가격 책정 및 패키징 변경의 영향을 논의합니다.