OPEN HYPER STEP
← 목록으로 (수익화)
MONETIZATION · 44 / 69
monetization
CHAPTER 44 / 69
읽기 약 2
FUNCTION

MRR/ARR 계산과 성장 지표


핵심 개념

월간반복수익(MRR), 신규/확장/이탈 분해, LTV/CAC 비율 등 SaaS 성장의 핵심 지표.

본문

MRR — 월간반복수익

TYPESCRIPT📋 코드 (14줄)
// MRR = 모든 활성 구독의 월간 환산 합계
function calculateMRR(subscriptions: Subscription[]): number {
  return subscriptions
    .filter(s => s.status === 'active')
    .reduce((sum, s) => {
      const monthlyAmount = s.billing === 'yearly' ? s.amount / 12 : s.amount;
      return sum + monthlyAmount;
    }, 0);
}

// ARR = MRR × 12
function calculateARR(mrr: number): number {
  return mrr * 12;
}

MRR 변동 분해

TYPESCRIPT📋 코드 (19줄)
interface MRRMovement {
  newMRR: number;       // 신규 가입
  expansionMRR: number; // 업그레이드 (Pro → Enterprise)
  contractionMRR: number; // 다운그레이드
  churnMRR: number;     // 해지
}

function netMRRChange(m: MRRMovement): number {
  return m.newMRR + m.expansionMRR - m.contractionMRR - m.churnMRR;
}

// 예시
const lastMonth = {
  newMRR: 500,
  expansionMRR: 100,
  contractionMRR: 50,
  churnMRR: 200,
};
console.log(netMRRChange(lastMonth));  // +350 (성장 중)

핵심 비율 — LTV/CAC

TYPESCRIPT📋 코드 (16줄)
// LTV (Lifetime Value) = 평균 사용자가 평생 지불하는 금액
function calculateLTV(arpu: number, churnRate: number): number {
  // ARPU: Average Revenue Per User (월)
  // churnRate: 월 해지율 (0.05 = 5%)
  return arpu / churnRate;
}

// CAC (Customer Acquisition Cost) = 사용자 1명 획득 비용
function calculateCAC(marketingSpend: number, newCustomers: number): number {
  return marketingSpend / newCustomers;
}

// 건강한 SaaS: LTV/CAC ≥ 3
const ltv = calculateLTV(20, 0.05);  // $400
const cac = calculateCAC(1000, 10);   // $100
const ratio = ltv / cac;              // 4 — 건강함

네트 리비뉴 리텐션 (NRR)

📋 코드 (4줄)
NRR = (시작 MRR + 확장 MRR - 이탈 MRR - 다운그레이드) / 시작 MRR × 100%

> 100% = 같은 사용자 풀에서 매출 성장 (확장 > 이탈)
< 100% = 누수 발생
TYPESCRIPT📋 코드 (7줄)
function calculateNRR(start: number, expansion: number, contraction: number, churn: number): number {
  return ((start + expansion - contraction - churn) / start) * 100;
}

// 우수 SaaS: NRR 110~140% (Snowflake, Datadog)
// 평균 SaaS: NRR 90~110%
// 위기 SaaS: NRR < 90%

코호트 분석 — 가입 시점별 추적

TYPESCRIPT📋 코드 (12줄)
// 2026년 1월 가입자 100명의 6개월 후 잔존율
const cohortJan2026 = {
  month0: 100,  // 가입 시점
  month1: 85,
  month2: 75,
  month3: 70,
  month4: 67,
  month5: 65,
  month6: 64,  // 64% 잔존
};

// 각 코호트의 잔존율을 비교하면 "어느 달부터 좋아졌는지" 보임

매출 대시보드 자가 진단

TYPESCRIPT📋 코드 (15줄)
function diagnoseSaaS(metrics: {
  mrr: number;
  growthRate: number;  // 월 성장률
  churnRate: number;
  ltv: number;
  cac: number;
  nrr: number;
}): string[] {
  const issues = [];
  if (metrics.churnRate > 0.05) issues.push(`해지율 ${metrics.churnRate * 100}% 위험`);
  if (metrics.ltv / metrics.cac < 3) issues.push(`LTV/CAC ${(metrics.ltv / metrics.cac).toFixed(1)}배 낮음`);
  if (metrics.nrr < 100) issues.push(`NRR ${metrics.nrr}% — 누수 발생`);
  if (metrics.growthRate < 0.05) issues.push(`성장률 ${metrics.growthRate * 100}% 느림`);
  return issues.length === 0 ? ['건강함 ✅'] : issues;
}

AI 프롬프트
🤖 AI에게 잘 물어보는 법 — 모델·전략별 프롬프트
Claude

무료: Sonnet 4.6 / Pro $20/mo: Opus 4.6

내 SaaS의 MRR/Churn/LTV/CAC 데이터를
분해 분석하고 가장 시급한 개선 영역을
우선순위로 알려줘.
ChatGPT

무료: GPT-5.5 / Plus $20/mo: GPT-5.5 Pro

월 MRR $1만 달성한 1인 SaaS 5개의
핵심 지표(NRR/LTV-CAC/Churn)를
비교표로 보여줘.
Gemini

무료: 2.5 Flash / Pro $19.99/mo: 3.1 Pro

내 결제 데이터(Stripe/토스)에서
코호트 분석·NRR·확장 vs 이탈 비율을
시각화 가능한 종합 리포트로 만들어줘.
Grok

무료: Grok 4.1 / SuperGrok $30/mo

2026년 1인 SaaS의 평균 MRR 도달 속도와
월 $1만 → $10만 전환 비율을
실제 데이터로 솔직히 알려줘.

⭐ 이것만 기억하세요
MRR/ARR 계산과 성장 지표 이 3가지만 확실히 잡으세요
1.MRR/ARR/NRR/LTV/CAC 5대 지표를 매주 추적해야 SaaS의 건강 상태를 정확히 진단할 수 있다
2.LTV/CAC ≥ 3 + NRR > 100%가 건강한 SaaS의 마지노선 — 둘 중 하나만 빠져도 위험 신호다
3.다음 챕터에서 광고/멤버십 외 수익원 — 프리랜서 플랫폼 활용을 다룬다


공유하기
진행도 44 / 69