본문으로 건너뛰기

성장 지표 대시보드: 창업자를 위한 플레이북

초기 단계 스타트업을 위한 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와 연결된 개별 이벤트로 기록합니다.
  • 재활성화: 고객 재활성화를 명시적으로 추적합니다. 돌아온 고객은 "새로운" 고객이 아닙니다.
  • 재무: 각 송장 라인에 pricediscount를 저장합니다. 상당한 가변 비용 (예: 인프라, 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를 자세히 살펴보십시오. 이를 사용하여 채널 및 세그먼트 성과를 검토합니다.
  • 분기별: 코호트 유지 곡선을 분석하여 장기적인 제품 상태를 평가합니다. 이 회의를 사용하여 귀속 모델을 검증하고 가격 책정 및 패키징 변경의 영향을 논의합니다.

벤치마크 (경험 법칙)

모든 비즈니스는 다르지만 건강한 SaaS 회사를 위한 몇 가지 일반적인 벤치마크는 다음과 같습니다.

  • LTV:CAC: ≥ 3:1의 비율은 건강한 것으로 간주됩니다. > 5:1의 비율은 성장에 과소 투자하고 있음을 시사할 수 있습니다.
  • CAC 회수: SMB/PLG 모델의 경우 < 12–18개월, 엔터프라이즈 판매의 경우 < 24개월을 목표로 합니다.
  • 월별 로고 이탈: SMB의 경우 2–4%가 일반적입니다. 중견 기업의 경우 1–2%; 엔터프라이즈의 경우 &lt;1%.
  • NRR: SMB의 경우 90–110%; 중견 기업의 경우 100–120% 이상; 엔터프라이즈의 경우 110–130% 이상.

기억하십시오: 자신의 목표를 적어 두십시오. 자신과 먼저 비교하고 시장과 나중에 비교하십시오.


일반적인 함정 (및 피하는 방법)

  • 동일한 공식에서 수익과 고객 이탈을 혼합합니다. → 항상 올바른 분자와 분모 (로고 이탈의 경우 고객, 수익 이탈의 경우 수익)를 사용합니다.
  • 확장이 있는 경우 LTV에 수익 이탈을 사용합니다. → 이렇게 하면 LTV가 크게 부풀려집니다. 간단한 LTV 공식에는 로고 이탈을 사용하거나 적절한 코호트 기반 LTV 모델을 구축합니다.
  • 예약 또는 현금을 MRR로 계산합니다. → 현금이 은행에 들어올 때가 아니라 서비스 제공 기간 동안 수익을 인식합니다.
  • CAC에서 주식 기반 보상 및 도구를 무시합니다. → 이렇게 하면 실제 고객 획득 비용이 과소 평가됩니다.
  • 월별 이탈률을 평균화합니다. → 이것은 수학적으로 부정확합니다. 코호트 곡선을 선호하거나 항상 기간 시작 기준에 대해 이탈을 계산합니다.
  • 귀속 스래싱. → 매달 귀속 모델을 전환하면 시간이 지남에 따라 데이터를 비교할 수 없습니다. 하나를 선택하고 변경 시기를 문서화하고 지표를 버전 관리합니다.

"좋음 → 더 좋음 → 최고" 구현

첫날부터 완벽한 데이터 스택이 필요하지 않습니다. 간단하게 시작하고 진화하십시오.

  • 좋음 (1–2시간):
    • 신규 고객, MRR 흐름 및 S&M 비용에 대한 월별 수동 입력이 있는 Google 시트.
    • 이 가이드의 공식을 사용합니다. UTM 및 이탈 이유를 수동으로 추적합니다.
  • 더 좋음 (1–2일):
    • Metabase 또는 Looker Studio와 같은 BI 도구에 연결된 Postgres 또는 BigQuery 데이터베이스.
    • subscription_events 테이블을 자동화하고 API를 통해 광고 지출 데이터를 수집합니다. 코호트 히트맵 시각화를 구축합니다.
  • 최고 (1–2주):
    • dbt와 같은 도구를 사용하여 버전 제어된 데이터 모델을 만들고 데이터 무결성에 대한 테스트를 작성합니다.
    • 관리되는 데이터 "탐색"을 통해 셀프 서비스 분석을 가능하게 하는 Mode 또는 Looker와 같은 BI 도구를 사용합니다. 과거 데이터 백필 및 할인된 LTV 계산을 구현합니다.

최소 지표 사전 (Wiki에 붙여넣기)

이 표를 사용하여 회사 내 모든 사람이 동일한 언어를 사용하고 있는지 확인합니다.

지표정의참고
CAC (혼합)S&M 획득 비용 ÷ 신규 고객급여, 도구, 대행사, 광고, 수수료 포함
CAC (유료)유료 미디어 비용 ÷ 유료 소스 신규 고객일관된 귀속 기간 사용
LTV (총)ARPA × GM% ÷ 월별 로고 이탈상태 확인에 적합; GM% 가정 문서화
CAC 회수CAC ÷ (ARPA × GM% − 가변 성공 비용)월 단위로 측정; 요금제/ACV별 세그먼트
로고 이탈 %이탈한 고객 ÷ 월초 고객분모에서 신규 고객 제외
총 수익 이탈 %(이탈 MRR + 축소 MRR) ÷ 시작 MRR확장 수익 제외
NRR(시작 MRR − 이탈 − 축소 + 확장) ÷ 시작 MRR후행 3개월 (T3M) 및 T12M 추적

라이브 후 결정해야 할 사항

대시보드가 라이브 상태입니다. 이제 무엇을 해야 할까요? 이를 사용하여 중요한 비즈니스 질문에 답변하십시오.

  • 유료 CAC 및 더 중요한 _90일 유지_에 따라 채널을 확장하거나 삭감합니다.
  • 확장 MRR이 평평하고 축소 MRR이 증가하는 경우 가격 책정 및 패키징을 조정합니다.
  • 자발적 이탈이 높은 경우 온보딩 및 고객 성공에 투자합니다. 비자발적 이탈이 높은 경우 먼저 결제 및 더닝 시스템을 수정하십시오.
  • 비 ICP 세그먼트가 지속적으로 LTV:CAC 비율을 목표 이하로 끌어내리는 경우 ICP 정의를 강화합니다.