먼저 ‘계산 종류’를 고르고, 표시된 칸에 값을 넣은 뒤 ‘계산’을 누르세요. 이탈률, 유지율, 평균 유지 기간, 연간 환산 등을 계산하고 고객 수가 달마다 줄어드는 모습을 그래프로 보여 줍니다.
이 페이지에서 할 수 있는 것
- 기초(월초)의 고객 수와 기간 중 해지 수로 월간 이탈률(해지율)과 유지율(리텐션율)을 계산합니다. 기간 중에 늘어난 신규 고객은 분모에 넣지 않는 정의로 고정하고, 다른 정의(기중 평균을 분모로 하는 방식)와의 차이도 표시합니다
- 월간 이탈률로 평균 유지 기간(\(100 \div\) 이탈률, 단위는 개월)과 연간 환산 이탈률을 계산합니다. ‘월 5%를 12배 해서 연 60%’가 왜 틀렸는지 숫자로 알 수 있습니다
- 역산도 할 수 있습니다: ‘연 40%의 해지율은 월간으로 몇 %인가?’, ‘평균 24개월 유지되게 하려면 월간 이탈률을 몇 % 이하로 낮춰야 하나?’, ‘고객 200명이 월 5%씩 해지하면 12개월 뒤 몇 명이 남나?’
- 고객 수가 달마다 줄어드는 모습을 감소 그래프로 보여 주고, 평균 유지 기간이 그래프의 어디에 있는지 확인할 수 있습니다
- 공식의 쉬운 해설과 Excel·Google 스프레드시트·Python용으로 복사해 쓰는 수식도 이 페이지에 정리되어 있습니다
이 계산은 어디에 쓰일까요?
월정액 구독 서비스에서는 월초 고객 수와 해지 수로 매달 이탈률을 내는 것이 기본입니다. 월초 1,200명, 해지 36명이라면 \(36 \div 1200 \times 100 = 3\)%이고, 평균 유지 기간은 약 \(100 \div 3 \fallingdotseq 33\)개월입니다.
신규 고객을 아무리 늘려도 이탈률이 높은 채로는 새 고객이 대부분 떠난 고객을 메우는 데 그칩니다. ‘지난달보다 비율이 올랐나, 내렸나’를 추적하면 요금, 제품 개선, 고객 지원에 관한 판단을 숫자로 할 수 있습니다.
‘고객 1명이 얼마의 매출을 가져다주는가’를 나타내는 LTV는 구독이라면 ‘월 요금 × 평균 유지 개월 수’로 어림합니다(매출총이익으로 보려면 마진율도 곱합니다). 월간 이탈률이 5%라면 평균 유지 기간은 20개월이므로, 월 30,000원 요금제의 LTV는 약 600,000원입니다.
이 어림값이 있으면 고객 1명을 확보하는 데 광고비를 얼마까지 쓸 수 있는지 정할 수 있습니다. 이탈률은 그 계산의 출발점이며, ‘이탈률이 낮을수록 LTV가 높다’는 관계도 평균 유지 기간이 이탈률의 역수라는 데서 나옵니다.
헬스장이나 학원처럼 ‘1년에 회원이 몇 명 그만두나’로 이야기하는 사업에서는 연간 비율과 월간 비율을 서로 환산해야 합니다. 연 40%는 월 \((1 - \sqrt[12]{0.6}) \times 100 \fallingdotseq 4.17\)%로, 단순히 12로 나눈 3.33%와 같지 않습니다.
반대로 월간 숫자를 연간 계획에 넣을 때도 ‘12배’가 아니라 1년 뒤 남는 비율을 씁니다. 월 5%는 연 약 46%로 60%와 크게 다르므로, 환산 방법에 따라 사업의 모습이 달라집니다.
‘지금 고객이 200명이고 월 5%씩 해지하면 1년 뒤 몇 명이 남나?’라는 예측은 \(200 \times 0.95^{12} \fallingdotseq 108\)명입니다. 신규 고객이 없으면 1년에 고객의 거의 절반을 잃는다는 것을 숫자로 알 수 있습니다.
이 예측으로 내년 매출, 고객 지원 인력의 규모, 필요한 신규 고객 수(줄어든 만큼을 메우는 데만 1년에 약 92명)를 계획할 수 있습니다.
해지를 완전히 막을 수는 없으므로, 실무에서는 ‘사업이 수지가 맞으려면 고객이 평균 몇 개월 유지되어야 하나’에서 거꾸로 이탈률 목표를 정합니다. 평균 24개월이 필요하다면 허용 월간 이탈률은 \(100 \div 24 \fallingdotseq 4.17\)%입니다.
목표가 숫자로 있으면 ‘이번 달은 4.5%였으니 개선이 필요하다’처럼 실적을 구체적인 행동으로 연결할 수 있습니다. 근거가 ‘이탈률의 역수 = 평균 유지 기간’이라는 간단한 공식이라 팀과 공유하기도 쉽습니다.
공식과 그림
용어·기호 해설
기호
| \(c\) | 씨 | 월간 이탈률(%)입니다. churn(뒤섞다, 교체되다)의 머리글자로, 한 달 동안 해지하는 고객의 비율입니다. 역산 공식에서는 허용할 수 있는 이탈률의 상한을 나타냅니다. |
| \(r\) | 알 | 월간 유지율(%)입니다. retention(유지)의 머리글자로, 1개월 뒤에도 계약을 이어 가는 고객의 비율입니다. \(r = 100 - c\)로 구합니다. |
| \(N_{0}\) | 엔 제로 | 기초(월초)의 고객 수입니다. \(N\)은 number(수)의 머리글자이고, 오른쪽 아래의 \(0\)은 ‘0개월째, 즉 시작 시점’을 나타냅니다(예: 월초에 200명이면 \(N_{0} = 200\)). |
| \(D\) | 디 | 기간 중(1개월) 해지 수로, 기초에 있던 고객 가운데 그달에 해지한 사람의 수입니다. 정해진 한 글자 기호가 없으므로, 여기서는 이탈(drop-off)의 뜻으로 \(D\)라고 씁니다. |
| \(L\) | 엘 | 평균 유지 개월 수입니다. lifetime(고객의 수명)의 머리글자로, 고객 1명이 평균 몇 개월 계약을 이어 가는지를 나타냅니다. \(L = 100 \div c\)입니다. 역산 공식에서는 목표 평균 유지 개월 수를 나타냅니다. |
| \(c_{\mathrm{y}}\) | 씨 와이 | 연간 환산 이탈률(%)입니다. 오른쪽 아래의 \(\mathrm{y}\)는 year(연)의 머리글자로, 1년 동안 해지하는 고객의 비율입니다. |
| \(R_{\mathrm{y}}\) | 알 와이 | 1년 뒤 남는 비율(소수)입니다. retention의 머리글자 \(R\)에 year의 \(\mathrm{y}\)를 붙인 것으로, \(R_{\mathrm{y}} = (1 - c \div 100)^{12}\)입니다. 100을 곱하면 연간 유지율(%)이 됩니다. |
| \(N_{n}\) | 엔 엔 | \(n\)개월 후 남는 고객 수입니다. 오른쪽 아래의 \(n\)이 경과 개월 수를 나타내며, \(N_{0}\)에서 시작해 달마다 줄어든 뒤의 인원입니다. |
| \(n\) | 엔 | 경과 개월 수입니다. number(수)의 머리글자로, ‘몇 개월 뒤인가’를 나타내는 정수입니다. 공식에서는 ‘1개월 뒤 남는 비율’을 곱하는 횟수(지수)가 됩니다. |
| \(\sqrt[12]{\ }\) | 12제곱근 | 12제곱근입니다. ‘12번 곱하면 그 수가 되는 수’를 구하는 기호로, 1년 뒤 남는 비율에서 1개월 뒤 남는 비율을 구할 때 씁니다. |
| \(100\) | 백 | 백분율(퍼센트)의 기준입니다. %를 100으로 나누면 소수의 비율로 돌아갑니다(\(5\% \div 100 = 0.05\)). 이 환산 때문에 이탈률의 역수 \(100 \div c\)가 평균 유지 개월 수가 됩니다. |
용어
| 이탈률 (해지율) | 일정 기간(이 페이지에서는 1개월)에 해지한 고객의 비율입니다. 영어로 churn rate라고 하며, churn은 ‘뒤섞다, 교체되다’라는 뜻으로 고객이 바뀌어 가는 모습을 나타냅니다. 이 페이지에서는 기간 중 해지 수를 기초 고객 수로 나눈 값으로 정의합니다. 구독 서비스나 SaaS에서는 매출이 줄어드는 속도를 직접 좌우하므로 가장 중요한 지표 중 하나입니다. |
| 유지율 (리텐션율) | 기초에 있던 고객 가운데 기말에도 계약을 이어 가는 비율입니다. 이탈률과 더하면 정확히 100%가 됩니다(유지율 = 100 − 이탈률). 앱 분야에서는 ‘1일 리텐션’, ‘30일 리텐션’처럼 정해진 일수의 유지율을 많이 씁니다. |
| 고객 이탈률 (로고 이탈률) | ‘인원(계약 수)’으로 세는 이탈률로, 영어로는 customer churn 또는 logo churn이라고 합니다. 이 페이지의 이탈률이 이것입니다. 보고서에 그냥 ‘이탈률’이라고 쓰여 있으면 고객 수 기준인지 매출 기준(매출 이탈률)인지 확인하세요. |
| 매출 이탈률 (MRR 이탈률) | 해지나 하위 요금제 변경으로 줄어든 월간 반복 매출(MRR)의 비율로 잰 이탈률로, 영어로는 revenue churn이라고 합니다. 비싼 요금제의 고객이 떠나면 고객 이탈률보다 크게 나옵니다. 보고서에 그냥 ‘이탈률’이라고 쓰여 있으면 고객 수 기준인지 매출 기준인지 확인하세요. |
| 기초 | 집계하는 기간의 시작입니다. 월별로 집계한다면 월초입니다. 이탈률의 분모는 ‘기초 고객 수’입니다. |
| 기말 | 집계하는 기간의 끝입니다. 월별로 집계한다면 월말입니다. 기말 고객 수는 ‘기초 − 해지 + 신규’로 구합니다. |
| 기중 평균을 분모로 한 이탈률 | 기초와 기말 고객 수의 평균(기중 평균)을 분모로 하는, 또 하나의 정의의 이탈률입니다. 신규 고객이 많은 성장기에는 분모가 커지므로 기초 기준의 값보다 작게 나옵니다. 어느 쪽이 ‘맞다’가 아니라 세는 규칙이 다를 뿐이므로, 비교할 때는 정의를 맞추세요. |
| 평균 유지 기간 (고객 수명) | 고객 1명이 평균 몇 개월(몇 년) 계약을 이어 가는지입니다. 매달 일정한 이탈률로 해지해 간다면 이탈률의 역수(100 ÷ 이탈률)가 됩니다. LTV(고객생애가치)를 ‘월 요금 × 평균 유지 개월 수’로 어림할 때의 바탕입니다. |
| 연간 환산 | 월별 비율을 ‘1년이면 얼마가 되는가’로 바꾸는 것입니다. 이탈률처럼 매달 남은 사람에게만 비율이 적용되는 것은 12를 곱하지 말고 ‘1개월 뒤 남는 비율을 12번 곱해 1에서 뺀다’로 환산합니다. 이율의 월 이율과 연 이율을 환산하는 것과 같은 생각입니다. |
| 코호트 | ‘같은 달에 계약한 고객’처럼 같은 시기에 시작한 사람들의 집단입니다. 코호트마다 달별로 추적하면 해지가 가입 직후에 몰리는지, 일정한 속도인지 알 수 있습니다. 이 페이지의 남는 고객 수 공식은 코호트 하나가 줄어드는 모습을 나타냅니다. |
| 역수 | 곱하면 1이 되는 수입니다. 5의 역수는 \(\dfrac{1}{5}\)(= 0.2)입니다. 이탈률 5%(소수로 0.05)의 역수는 \(1 \div 0.05 = 20\)으로, 평균 유지 개월 수가 됩니다(퍼센트 그대로라면 100 ÷ 5로 계산합니다). |
| 거듭제곱 | 같은 수를 여러 번 곱하는 것입니다. \(0.95^{12}\)은 0.95를 12번 곱한 수로, ‘1개월 뒤 남는 비율’을 12개월 쌓은 1년 뒤 남는 비율입니다. |
| 12제곱근 | 12번 곱하면 그 수가 되는 수입니다. \(\sqrt[12]{0.6} \fallingdotseq 0.9583\)은 ‘0.9583을 12번 곱하면 약 0.6이 된다’는 뜻입니다. 거듭제곱의 반대 계산으로, Excel에서는 \(\wedge(1/12)\)로 씁니다. |
| 지수적 감소 | ‘매기 남아 있는 양의 일정한 비율만큼 줄어드는’ 유형의 감소입니다. 처음에 많이 줄고 점점 줄어드는 양이 작아지므로 그래프는 오른쪽 아래로 내려가는 곡선이 됩니다. 방사성 물질의 반감기, 약의 혈중 농도가 떨어지는 모습도 같은 꼴입니다. |
먼저 알아 두면 좋은 내용
이 페이지의 계산을 버튼만 누르는 것이 아니라 ‘뜻을 알고’ 쓸 수 있도록, 먼저 알아 두면 좋은 내용을 정리했습니다.
막히면 이 내용으로 돌아가 복습하는 것이 지름길입니다.
| 비와 비율·백분율(초등학교 6학년, 11~12세) |
|
| 역수(초등학교 6학년~중학교 1학년, 11~13세) |
|
| 거듭제곱·지수(중학교 1학년~고등학교 수학 I, 12~17세) |
|
| 거듭제곱근(고등학교 수학 I, 16~17세) |
|
| 복리 계산(고등학교 수학·경제, 15~18세) |
|
Excel로 계산하는 방법
| 기간 중 해지 수 D | 10 |
| 기초 고객 수 N0 | 200 |
| 월간 이탈률 c(%) | =B1/B2*100 |
| 월간 이탈률 c(%) | 5 |
| 평균 유지 개월 수 L | =100/B1 |
| 월간 이탈률 c(%) | 5 |
| 1년 뒤 남는 비율 Ry | =(1-B1/100)^12 |
| 연간 환산 이탈률 cy(%) | =(1-B2)*100 |
| 연간 이탈률 cy(%) | 40 |
| 월간 이탈률 c(%) | =(1-(1-B1/100)^(1/12))*100 |
| 기초 고객 수 N0 | 200 |
| 월간 이탈률 c(%) | 5 |
| 경과 개월 수 n | 12 |
| n개월 후 남는 고객 수 Nn | =B1*(1-B2/100)^B3 |
| 목표 평균 유지 개월 수 L | 24 |
| 허용 월간 이탈률 c(%) | =100/B1 |
예를 들어 첫 번째 표의 B3에는 5(이탈률 5%), 두 번째 표의 B2에는 20(평균 20개월), 세 번째 표의 B3에는 약 45.96(연간 45.96%), 네 번째 표의 B2에는 약 4.17(월간 4.17%), 다섯 번째 표의 B4에는 약 108.07(12개월 뒤 약 108명), 여섯 번째 표의 B2에는 약 4.17(허용 이탈률 4.17%)이 표시됩니다.
‘^’는 거듭제곱(몇 번 곱하는가)이고, ‘^(1/12)’가 12제곱근입니다. 입력란을 자신의 숫자로 바꾸기만 하면 됩니다.
Google 스프레드시트로 계산하는 방법
| 기간 중 해지 수 D | 10 |
| 기초 고객 수 N0 | 200 |
| 월간 이탈률 c(%) | =B1/B2*100 |
| 월간 이탈률 c(%) | 5 |
| 평균 유지 개월 수 L | =100/B1 |
| 월간 이탈률 c(%) | 5 |
| 1년 뒤 남는 비율 Ry | =(1-B1/100)^12 |
| 연간 환산 이탈률 cy(%) | =(1-B2)*100 |
| 연간 이탈률 cy(%) | 40 |
| 월간 이탈률 c(%) | =(1-(1-B1/100)^(1/12))*100 |
| 기초 고객 수 N0 | 200 |
| 월간 이탈률 c(%) | 5 |
| 경과 개월 수 n | 12 |
| n개월 후 남는 고객 수 Nn | =B1*(1-B2/100)^B3 |
| 목표 평균 유지 개월 수 L | 24 |
| 허용 월간 이탈률 c(%) | =100/B1 |
Python으로 계산하는 방법
customers_start = 200 # 기초(월초) 고객 수
churned = 10 # 기간 중 해지 수
churn_rate = churned / customers_start * 100 # 월간 이탈률(%)
retention_rate = 100 - churn_rate # 월간 유지율(%)
avg_months = 100 / churn_rate # 평균 유지 기간(개월)
annual_retention = (1 - churn_rate / 100) ** 12 # 1년 뒤 남는 비율
annual_churn = (1 - annual_retention) * 100 # 연간 환산 이탈률(%)
print(f"월간 이탈률: {churn_rate}%")
print(f"월간 유지율: {retention_rate}%")
print(f"평균 유지 기간: {avg_months}개월")
print(f"연간 환산 이탈률: {annual_churn:.4f}%(단순히 12배 하면 {churn_rate * 12}%)")
# 역산 1: 연간 이탈률로 월간 이탈률 구하기(12제곱근)
annual_rate = 40
monthly_from_annual = (1 - (1 - annual_rate / 100) ** (1 / 12)) * 100
print(f"연 {annual_rate}%에 해당하는 월간 이탈률: {monthly_from_annual:.4f}%")
# 역산 2: 목표 평균 유지 기간으로 허용 월간 이탈률 구하기
target_months = 24
print(f"평균 {target_months}개월에 필요한 월간 이탈률: {100 / target_months:.4f}% 이하")
# 역산 3: n개월 후 남는 고객 수
months = 12
remaining = customers_start * (1 - churn_rate / 100) ** months
print(f"{months}개월 후 남는 고객 수: {remaining:.2f}명")
LaTeX 등 수식 언어로 쓰는 법(복사 가능)
c = D ÷ N₀ × 100
c = \dfrac{D}{N_{0}} \times 100
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>c</mi>
<mo>=</mo>
<mfrac><mi>D</mi><msub><mi>N</mi><mn>0</mn></msub></mfrac>
<mo>×</mo>
<mn>100</mn>
</mrow>
</math>
c = D/N_0 xx 100
d/n0*100
c := d/n0*100;
c = d/n0*100;
c = D/N_0 × 100
L = 100 ÷ c
L = \dfrac{100}{c}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>L</mi>
<mo>=</mo>
<mfrac><mn>100</mn><mi>c</mi></mfrac>
</mrow>
</math>
L = 100/c
100/c
L := 100/c;
L = 100/c;
L = 100/c
cy = (1 − (1 − c/100)¹²) × 100
c_{\mathrm{y}} = \left\{1 - \left(1 - \dfrac{c}{100}\right)^{12}\right\} \times 100
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<msub><mi>c</mi><mi mathvariant="normal">y</mi></msub>
<mo>=</mo>
<mrow>
<mo>{</mo>
<mn>1</mn><mo>−</mo>
<msup>
<mrow><mo>(</mo><mn>1</mn><mo>−</mo><mfrac><mi>c</mi><mn>100</mn></mfrac><mo>)</mo></mrow>
<mn>12</mn>
</msup>
<mo>}</mo>
</mrow>
<mo>×</mo>
<mn>100</mn>
</mrow>
</math>
c_y = (1 - (1 - c/100)^12) xx 100
(1 - (1 - c/100)^12)*100
cy := (1 - (1 - c/100)^12)*100;
cy = (1 - (1 - c/100)^12)*100;
c_y = (1 - (1 - c/100)^12) × 100
c = (1 − (1 − cy/100)^(1/12)) × 100
c = \left(1 - \sqrt[12]{1 - \dfrac{c_{\mathrm{y}}}{100}}\right) \times 100
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>c</mi>
<mo>=</mo>
<mrow>
<mo>(</mo>
<mn>1</mn><mo>−</mo>
<mroot>
<mrow><mn>1</mn><mo>−</mo><mfrac><msub><mi>c</mi><mi mathvariant="normal">y</mi></msub><mn>100</mn></mfrac></mrow>
<mn>12</mn>
</mroot>
<mo>)</mo>
</mrow>
<mo>×</mo>
<mn>100</mn>
</mrow>
</math>
c = (1 - root(12)(1 - c_y/100)) xx 100
(1 - (1 - cy/100)^(1/12))*100
c := (1 - (1 - cy/100)^(1/12))*100;
c = (1 - (1 - cy/100)^(1/12))*100;
c = (1 - (1 - c_y/100)^(1/12)) × 100
Nₙ = N₀ × (1 − c/100)ⁿ
N_{n} = N_{0} \left(1 - \dfrac{c}{100}\right)^{n}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<msub><mi>N</mi><mi>n</mi></msub>
<mo>=</mo>
<msub><mi>N</mi><mn>0</mn></msub>
<msup>
<mrow><mo>(</mo><mn>1</mn><mo>−</mo><mfrac><mi>c</mi><mn>100</mn></mfrac><mo>)</mo></mrow>
<mi>n</mi>
</msup>
</mrow>
</math>
N_n = N_0 (1 - c/100)^n
n0*(1 - c/100)^n
Nn := N0*(1 - c/100)^n;
Nn = N0*(1 - c/100)^n;
N_n = N_0 (1 - c/100)^n
c = 100 ÷ L
c = \dfrac{100}{L}
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mrow>
<mi>c</mi>
<mo>=</mo>
<mfrac><mn>100</mn><mi>L</mi></mfrac>
</mrow>
</math>
c = 100/L
100/l
c := 100/L;
c = 100/L;
c = 100/L
ChatGPT 에게 물어서 계산하는 방법
당신은 구독 사업 지표 계산 도우미입니다. 다음 계산을 Python 코드를 실제로 실행해서 하고, 실행 결과의 숫자만을 근거로 답해 주세요(암산이나 추측으로 답하지 마세요). 월초에 고객이 200명 있었고, 그달 안에 10명이 해지했습니다(신규 고객은 분모에 넣지 않습니다). 다음을 각각 구해 주세요. 1. 월간 이탈률(해지 수 ÷ 기초 고객 수 × 100, %) 2. 월간 유지율(100 − 이탈률, %) 3. 평균 유지 개월 수(100 ÷ 이탈률) 4. 연간 환산 이탈률((1 − (1 − 이탈률/100)^12) × 100, %). 단순히 12배 한 값과의 차이도 보여 주세요 5. 별도 문제: 연간 이탈률이 40%일 때의 월간 이탈률((1 − (1 − 40/100)^(1/12)) × 100, %) 6. 별도 문제: 평균 유지 기간을 24개월로 하려면 허용되는 월간 이탈률(100 ÷ 24, %) 7. 고객 200명이 월 5%씩 해지할 때 12개월 후 남는 고객 수(200 × (1 − 5/100)^12) 사용한 공식과 실행 결과의 숫자를 함께 보여 주세요.
사용법
-
1숫자 입력계산하고 싶은 숫자를 입력란에 입력합니다
-
2계산‘계산’ 버튼을 누릅니다
-
3결과 확인계산 결과가 바로 표시됩니다. 계산의 원리와 공식 해설도 같은 페이지에서 확인할 수 있습니다
DataChef의 특징
전문 지식 없이도 직관적이고 간단하게 사용
개인정보를 등록하지 않고도 이용할 수 있습니다
"다운로드"를 누르면 파일이 자동으로 삭제됩니다
출처 표기 불필요
상업적 이용 허가 연락도 필요 없습니다