재무 계획은(는) 무엇을 하나요?
규칙
- MRR 계산: 모든 활성 구독의 월별 값 합계 — 연간 요금제는 12로 나누고, 일회성 요금은 제외
- ARR: MRR * 12 — 대시보드에 둘 다 표시하며, 월별 추세는 MRR, 연간 계획은 ARR 사용
- MRR 구성 요소: 신규 MRR, 확장 MRR(업그레이드), 축소 MRR(다운그레이드), 이탈 MRR(해지), 재활성화 MRR 추적 — 워터폴 차트로 표시
- 번 레이트: (기초 현금 - 기말 현금) / 개월 수 — 매월 계산, 현재 소비율 기준으로 남은 개월 수를 런웨이로 표시
- 수익 대시보드: MRR, ARR, MRR 성장률(MoM%), 순 수익 유지율, 총 고객 수 표시 — 매일 갱신
- 재무 예측: 3가지 시나리오(보수적, 기본, 낙관적) 모델링 — 성장률과 이탈률을 달리하여 12~24개월 예측
- 통화 처리: 모든 금액을 센트(정수)로 저장 — 돈에 부동 소수점 사용 금지 —
Intl.NumberFormat으로 표시 - 날짜 범위: 기본값은 최근 12개월, 사용자 지정 범위 허용 — 추세는 월별 집계, 최근 활동은 일별 집계
대시보드 데이터 모델
CREATE TABLE revenue_events (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
type TEXT NOT NULL, -- 'new' | 'expansion' | 'contraction' | 'churn' | 'reactivation'
amount_cents INTEGER NOT NULL,
customer_id UUID NOT NULL,
occurred_at DATE NOT NULL,
created_at TIMESTAMP DEFAULT NOW()
);
월별 MRR 집계: SELECT date_trunc('month', occurred_at), type, SUM(amount_cents) FROM revenue_events GROUP BY 1, 2.
주의 사항
- 돈에 부동 소수점 사용 금지 — 모든 곳에서 정수 센트 사용
- 구성 요소를 분리하지 않고 MRR 계산 금지 — MRR 변동 원인을 알아야 함
- 월별 세분성만 사용 금지 — 일별 이벤트를 저장하고, 표시용으로 집계
- 축소 MRR 무시 금지 — 다운그레이드는 이탈의 조짐