Super Sale WeekClaude Skills — 20% OFF
Tips

구독 내보내기 파일을 MRR 및 ARR 보고서로 변환하는 방법 (2026년 가이드)

Powerdrill Team·
구독 내보내기 파일을 MRR 및 ARR 보고서로 변환하는 방법 (2026년 가이드)

구독 내보내기 데이터를 받으면 고객, 플랜, 금액, 주기, 상태, 시작일 등의 행이 표시됩니다. 반면 MRR 보고서에는 매월 하나의 숫자만 필요합니다. 전자의 데이터에서 후자의 보고서를 도출하는 과정은 단순한 산수처럼 보이지만, 실제로는 대부분 정의를 어떻게 내리느냐에 달려 있습니다.

완성된 보고서의 모든 수치는 두 가지 선택에 의해 결정됩니다. 어떤 구독을 활성 상태로 간주할 것인지, 그리고 금액에서 할인을 차감할 것인지 여부입니다.

둘 중 하나라도 잘못 설정하면 보고서 내부의 수치는 맞을지 몰라도, 재무 부서의 데이터, 빌링 대시보드, 그리고 지난달 보고서와 수치가 일치하지 않게 됩니다.

이 가이드에서는 가장 먼저 정해야 할 사항과 세 가지 수동 작업 경로, 그리고 각 경로가 한계에 부딪히는 지점을 다룹니다.

시작하기 전에 필요한 것

인보이스당 한 행이 아니라 구독당 한 행으로 구성된 내보내기 파일이 필요합니다. 인보이스는 청구된 금액을 나타내지만, 구독은 반복되는 금액을 나타내기 때문입니다.

모든 행에 빌링 주기가 표시되어 있어야 합니다. 연간 플랜을 표준화하기 전에는 월간 플랜과 연간 플랜을 합산할 수 없습니다.

또한 상태(status) 열도 필요합니다. Stripe의 빌링 분석 문서에서는 MRR을 월별로 표준화된 금액의 합계로 정의합니다. 여기에는 상태가 activepast_due인 구독만 포함됩니다.

이 정의는 그대로 채택할 만한 가치가 있습니다. 공식적으로 공개되어 있고 구체적이며, 누군가 수치가 왜 변했는지 물었을 때 방어할 수 있는 근거가 되기 때문입니다.

먼저 세 가지를 결정해야 합니다.

어떤 상태를 포함할 것인가. 문서상 기본값은 active에 past due를 더한 것입니다. canceled 및 unpaid는 이탈(churn)로 처리되어 제외됩니다.

할인을 차감할 것인가. Stripe에서는 반복 할인과 일회성 할인에 대해 각각 설정을 다르게 구성할 수 있습니다. 영구(forever) 할인은 항상 차감됩니다.

구독자 집계를 시작하는 시점. Stripe에서는 첫 번째 빌링 주기의 시작일 또는 첫 번째 결제 수신일 중에서 선택할 수 있습니다. 첫 번째 옵션이 가장 일반적인 방법으로 설명되어 있습니다.

수식을 작성하기 전에 시트에 이 세 가지 기준을 먼저 적어두세요. 이 기준들이 단순한 말다툼과 제대로 된 보고서를 가르는 차이점이 됩니다.

산수가 가장 쉬운 단계인 이유

표준화 작업은 간단합니다. Stripe의 실제 예시를 보면, $100 월간 플랜 구독자 100명과 $600 연간 플랜 구독자 50명이 있는 경우 수식은 (100 × 100) + (50 × (600 / 12)) = 12,500이 됩니다.

복잡한 부분은 제외 항목들이며, 스프레드시트에서 이를 놓치기 쉽습니다.

세금은 제외됩니다. Stripe은 MRR에서 세금을 제외합니다. 내보낸 데이터에 총액(세금 포함)이 포함되어 있다면 매달 수치가 과다 계상되고 있는 것입니다.

체험판(trial)은 제외됩니다. 체험 기간 중인 구독은 실제 유료로 전환되기 전까지 제외됩니다.

무료 플랜은 제외됩니다. 가격이 0원인 플랜을 이용하는 구독자는 매출에 기여하지 않으므로 활성 구독자로 집계되지 않습니다.

사용량 기반 매출은 제외됩니다. 이 부분에서 많은 사람들이 놀라곤 합니다. 종량제(metered) 제품은 MRR에서 완전히 제외되므로, 일부 사용량 기반 요금제를 사용하는 비즈니스의 경우 구조적으로 MRR이 실제 매출보다 낮게 나타나게 됩니다.

다음으로 쿠폰 적용 사례가 있는데, 이는 문서화되어 있지만 직관과는 다소 어긋납니다. 구독자의 MRR이 0으로 떨어지면 해당 구독자는 해당 기간 동안 이탈(churn)한 것으로 처리됩니다.

100% 할인 쿠폰을 적용하면 정확히 이런 현상이 발생합니다. 나중에 쿠폰을 제거하면 구독자가 다시 활성화되며, 이는 재활성화(reactivation)로 표시됩니다.

따라서 단 한 명의 고객도 실제로 떠나지 않았음에도 프로모션으로 인해 보고서상에 이탈이 발생할 수 있습니다.

수동으로 작업하는 방법

옵션 1: 주기를 표준화한 후 월별로 합산하기

월별 금액 열을 추가합니다. 연간 금액은 12로 나누고, 주간 금액은 약 4.33을 곱하며, 월간 금액은 그대로 둡니다.

그런 다음 상태를 필터링하여 SUMIFS 함수로 월별 합계를 구합니다. 보고 기준이 되는 월말 날짜를 생성하려면 EOMONTH 함수를 사용하세요.

MRR은 오늘 기준이 아니라 월말 기준으로 보고해야 합니다. Stripe에서 다운로드할 수 있는 보고서는 명확히 월말 시점의 각 구독자별 MRR을 나타내므로, 이 규칙을 맞추어야 나중에 수치를 대조할 때 번거로움을 줄일 수 있습니다.

이 방식의 한계는 이력 관리입니다. 이번 달 수치는 깔끔하게 보여주지만, 수치가 왜 변했는지에 대해서는 아무것도 알려주지 못합니다.

옵션 2: 변동(movement) 열 구축하기

이 작업이 보고서를 유용하게 만드는 핵심입니다. 변동 사항을 신규(new), 재활성화(reactivation), 확장(expansion), 축소(contraction), 이탈(churn)로 세분화합니다.

Stripe의 성장 정의는 시작 수치에 신규, 재활성화, 확장을 더하고 축소와 이탈을 뺀 다음 환율을 조정한 값입니다. 실제 예시를 보면 정확히 이러한 구성 요소를 거쳐 $1,000가 $1,045로 변동하는 것을 볼 수 있습니다.

마지막 항목에 유의하세요. 다른 통화로 결제하는 고객이 있는 경우, 환율 효과를 처리하기 전까지는 순수 수식 모델만으로는 수치가 일치하지 않습니다.

다중 통화 사용 시 알아두어야 할 또 다른 결과가 있습니다. Stripe에 따르면 구독 매출이 여러 통화로 처리되는 경우 제품 또는 가격별 필터링 및 그룹화 기능을 사용할 수 없습니다.

이 경로의 한계는 유지 관리입니다. 변동 열을 만들려면 이전 기간의 스냅샷이 필요하므로, 지난달 데이터의 복사본을 영구적으로 보관해야 합니다.

옵션 3: 빌링 시스템에서 직접 변동 데이터 가져오기

대부분의 빌링 플랫폼은 변동 데이터를 직접 내보낼 수 있는 기능을 제공합니다. Stripe은 월별 구독자당 MRR, 구독 지표 요약, 그리고 모든 고객의 MRR 변동 로그라는 세 가지 CSV 파일을 제공합니다.

세 번째 파일이 바로 필요한 파일입니다. 이 파일을 사용하면 옵션 2에서 가장 까다로운 단계를 생략할 수 있습니다.

지표 정의를 변경하는 경우 반영되기까지 시간이 걸릴 수 있습니다. Stripe은 구성 변경 사항이 반영되는 데 24~48시간이 소요된다고 명시하고 있습니다.

공통적인 한계. 세 가지 경로 모두 MRR 단계에서 멈춥니다. 이를 ARR, ARPU, 이탈률(churn), 유지율(retention)로 변환하려면 동일한 테이블 위에 또 다른 의사 결정 레이어를 추가해야 합니다.

수동 작업 방식이 지체되는 지점

첫 달에는 반나절 정도 걸립니다. 하지만 네 번째 달에는 더 오래 걸리는데, 이는 데이터가 더 복잡해졌기 때문이 아닙니다.

그쯤 되면 워크북에는 두 가지 버전의 활성(active) 정의, 수동으로 수정한 환율 열, 그리고 아무도 건드리고 싶어 하지 않는 변동 탭이 얽혀 있게 됩니다.

파생 지표들은 문제를 더욱 복잡하게 만듭니다. ARPU는 총 MRR을 활성 구독자 수로 나눈 값입니다. 고객 평생 가치(LTV)는 ARPU를 이탈률로 나눈 값입니다.

이탈률(churn) 계산에도 함정이 있습니다. Stripe의 분모는 30일 전 활성 구독자 수에 해당 기간 동안 추가된 신규 구독자 수를 더한 값으로, 수식은 100 / (1000 + 100) = 9.1%가 됩니다. 기초(opening) 구독자 수로만 나누는 스프레드시트는 더 높은 수치를 보고하게 됩니다.

유지율(retention) 역시 예상치 못한 방식으로 작동합니다. 코호트 내부의 확장이 이탈보다 크기 때문에 매출 유지율은 100%를 초과할 수 있습니다.

이 중 어려운 것은 없습니다. 다만 보고서를 작성하는 사람이 누구든 매달 동일하게 내려야 하는 다섯 가지 판단 기준이 필요할 뿐입니다.

Powerdrill Bloom으로 보고서를 작성하는 방법

1단계: 구독 내보내기 파일 업로드하기

구독 CSV 파일 또는 구독 및 변동 파일을 함께 업로드합니다. Powerdrill Bloom은 파일이 업로드되는 즉시 열을 프로파일링하므로, 합계가 계산되기 전에 누락된 주기, 빈 금액, 중복된 구독 ID 등을 미리 찾아냅니다.

Powerdrill Bloom에서 MRR 및 ARR 보고서를 작성하기 위해 구독 내보내기 파일을 업로드하는 모습

2단계: 자연어로 정의 작성하기

규칙을 직접 구축하는 대신 말로 설명해 보세요. 어떤 상태를 포함할지, 금액에서 할인을 차감할지, 그리고 어떤 월말 기준으로 보고할지 입력합니다.

그런 다음 동일한 단계에서 검증을 요청하세요. 예상치 못한 주기를 가진 행이 무엇인지, 할인을 적용한 후 금액이 0이 되는 구독은 무엇인지 물어봅니다. 그리고 월별 합계가 빌링 요약과 일치하는지 확인을 요청합니다.

3단계: 차트, 보고서 또는 프레젠테이션 덱 내보내기

월별 트렌드, 구성 요소별 변동 테이블, 또는 수치와 정의가 포함된 이사회 보고용 슬라이드를 내보냅니다.

Powerdrill Bloom에서 월별 MRR 트렌드 및 변동 테이블 내보내기

매달 보고서를 처음부터 다시 만드는 것보다 이 방식이 더 나은 이유

수동 작업 방식 Powerdrill Bloom
연간 플랜 표준화 파일당 수식 열 추가 업로드 후 규칙 설명하기
변동 내역 세분화 이전 달 스냅샷 유지 관리 필요 구성 요소 요청하기
체험판 및 종량제 항목 제외 매 주기마다 수동 필터링 제외 항목 설명하기
빌링 요약과 수치 대조 수동 확인 합계 일치 여부 확인 요청하기

표의 중간 행들이 바로 많은 시간이 소요되는 부분입니다. 열의 합계를 구하는 것은 어려운 일이 아닙니다. 진짜 까다로운 작업은 여러 달 동안 다섯 가지 정의를 일관되게 유지하는 것입니다.

흔히 하는 실수들

구독 대신 인보이스 합산하기. 인보이스에는 일회성 요금과 일할 계산(proration) 금액이 포함됩니다. 반복 매출은 청구서가 아니라 구독의 고유한 속성입니다.

금액에 세금을 포함해 두는 것. 세금은 매달 수치를 부풀리며 결코 상쇄되지 않습니다. 표준화하기 전에 세금을 제거하세요.

체험판을 매출로 집계하는 것. 체험판은 아직 반복 결제 금액이 발생하지 않았습니다. 이를 포함하는 것은 다음 달의 성장을 미리 가불해 쓰는 것과 같습니다.

설명 없이 MRR에 12를 곱해 ARR로 취급하는 것. 이는 실제 수금된 현금이 아니라 표준화된 연간 수치입니다. 다른 사람들이 이를 예약(bookings) 매출로 오해하지 않도록 명확히 라벨을 붙이세요.

쿠폰 적용으로 인한 이탈 효과를 무시하는 것. 전액 할인을 적용하면 구독자 금액이 0이 되어 이탈로 인식됩니다. 나중에 구구절절 설명하는 대신 해당 행에 미리 표시를 해두세요.

기초 구독자 수로만 이탈률을 나누는 것. 공식 문서상의 분모에는 해당 기간 동안 추가된 신규 구독자가 포함됩니다. 이 두 가지 방식은 동일한 데이터에 대해 서로 다른 이탈률을 만들어냅니다.

매달 처음부터 다시 만드는 것. 정의는 변하지 않으며, 내보낸 데이터 파일만 바뀔 뿐입니다. 규칙은 그대로 유지하고 파일만 교체하세요. 이는 예산 대비 실적 보고서를 작성할 때와 동일한 원칙입니다.

결론

상태 목록을 확정하고, 할인 적용 여부를 결정하고, 주기를 표준화하고, 월말 기준으로 보고하세요. 이 네 가지만 지키면 재무 부서의 날카로운 질문에도 끄떡없는 MRR 보고서를 만들 수 있습니다.

가장 많은 비용이 드는 부분은 합계를 구하는 과정이 아닙니다. 내보낸 데이터의 형태가 바뀔 때마다 매달 다섯 가지 정의를 흔들림 없이 유지하는 일입니다.

매달 말마다 이 작업으로 시간을 허비하고 있다면, 구독 내보내기 파일에 Powerdrill Bloom을 사용해 보세요. 자체 데이터를 활용한 KPI 목표 설정 가이드도 함께 확인해 보시기 바랍니다. 도구 활용 측면은 SaaS 지표 추적을 위한 AI 도구 모음 및 AI 재무 분석 페이지에서 자세히 다루고 있습니다.

자주 묻는 질문

구독 내보내기 파일에서 MRR을 계산하는 공식은 무엇인가요?

모든 구독을 월별 금액으로 표준화한 다음, 조건에 맞는 상태의 구독 금액을 합산합니다. Stripe의 예시를 들면 (100 × $100) + (50 × ($600 / 12)) = $12,500입니다.

MRR을 ARR로 어떻게 변환하나요?

월별 수치에 12를 곱합니다. 연간 플랜은 선불로 청구되므로, 실제 수금된 현금이 아니라 표준화된 연간 실행률(run rate)로 라벨을 지정하세요.

사용량 기반 매출도 포함해야 하나요?

Stripe은 MRR에서 종량제 제품을 제외합니다. 매출에서 사용량 기반 매출이 차지하는 비중이 크다면, 이를 MRR에 합산하기보다는 별도의 항목으로 보고하는 것이 좋습니다.

어떤 구독 상태가 활성(active) 상태로 집계되나요?

공식 문서상의 기본값은 activepast_due입니다. canceled 및 unpaid 구독은 이탈로 처리되어 합계에서 제외됩니다.

제 이탈률 수치가 빌링 대시보드와 다른 이유는 무엇인가요?

대부분의 경우 분모의 차이 때문입니다. 공식 문서상의 계산 방식은 30일 전 활성 구독자 수에 해당 기간 동안 추가된 신규 구독자 수를 더한 값으로 나누는 것입니다.