← 블로그

유저는 언제 떠날까? 생존곡선으로 이탈 시점 찾기

아직 이탈하지 않은 사용자도 포함해 이탈 시점과 관측 기간을 함께 읽는 예시입니다.

내 파일로 여기서 하는 확인은 묶음별 합계입니다. 생존곡선은 도구에서 계산합니다.

가입 없이, 파일 없이. 샘플 결과부터 확인하세요.

"구독자는 평균 2.8개월 만에 떠납니다." 이런 문장이 리포트에 올라오면 한 번 의심해 봐야 합니다. 이 평균에는 이미 떠난 사람만 들어 있고, 아직 남아 있는 사람은 빠져 있을 가능성이 큽니다. 오래 남은 사람을 빼고 계산하면 이탈 시점은 실제보다 항상 빨라 보입니다.

이 글은 사용자가 언제 떠나는지 정직하게 계산하는 방법인 생존곡선(카플란-마이어 추정)을, 손으로 따라 할 수 있는 10명 예시로 정리합니다. 구독 해지뿐 아니라 첫 구매 이후 재구매가 끊기는 시점, 핵심 기능 사용이 멈추는 시점에도 같은 방법을 씁니다.

평균 이탈 기간이 틀리는 이유: 아직 떠나지 않은 사람

10명의 구독 기록이 있다고 하겠습니다. 오늘 기준으로 5명은 해지했고 5명은 아직 구독 중입니다.

사용자 지금까지 유지한 기간 상태
1 1개월 해지
2, 3 2개월 해지
4 3개월 구독 중
5 4개월 해지
6 4개월 구독 중
7 5개월 해지
8, 9, 10 6개월 구독 중

해지한 5명의 유지 기간을 평균하면 (1 + 2 + 2 + 4 + 5) ÷ 5 = 2.8개월입니다. 처음 문장의 "평균 2.8개월"이 이렇게 나옵니다. 그런데 6개월째 아직 남아 있는 3명은 이 계산에 들어가지 않았습니다. 10명 모두의 유지 기간을 평균해도 3.9개월인데, 남은 5명은 앞으로 더 유지할 것이므로 이 값도 짧게 잡힌 숫자입니다.

아직 떠나지 않은 사람은 "관측이 끝난 시점까지 남아 있었다"는 정보만 줍니다. 이를 중도절단이라고 부릅니다. 이 정보를 버리지도, 해지로 바꾸지도 않고 그대로 쓰는 계산이 생존곡선입니다.

생존곡선은 이렇게 계산합니다

매달 "그 달을 시작할 때 남아 있던 사람 중 몇 명이 그 달에 떠났는가"를 봅니다. 그리고 남은 비율을 앞 달의 생존 비율에 곱해 나갑니다.

개월 그 달을 시작한 인원 그 달 해지 그 달 이탈 위험 생존 비율
1 10 1 10% 90.0%
2 9 2 22% 70.0%
3 7 0 0% 70.0%
4 6 1 17% 58.3%
5 4 1 25% 43.8%
6 3 0 0% 43.8%

3개월째에 1명(사용자 4)이 "구독 중"으로 관측이 끝났습니다. 이 사람은 떠난 사람으로 세지 않고, 4개월째부터 분모에서만 빠집니다. 그래서 4개월째 분모가 6명입니다.

생존 비율이 처음으로 50% 아래로 내려가는 때는 5개월째입니다. 즉 생존기간 중앙값은 5개월입니다. 해지자만 평균한 2.8개월과 비교하면 거의 두 배 차이가 납니다.

해지한 사람만 평균하면 2.8개월이지만 아직 구독 중인 사람을 함께 계산한 생존곡선에서는 남은 비율이 절반 아래로 내려가는 시점이 5개월로 나오는 비교 그림

이탈 위험이 높아지는 시점을 찾으세요

생존곡선이 "얼마나 남아 있나"를 보여 준다면, 표의 "그 달 이탈 위험"은 "지금까지 남아 있던 사람이 이번 달에 떠날 확률"을 보여 줍니다. 이 값이 이탈 위험(해저드)입니다. 위 예시에서는 2개월째(22%)와 5개월째(25%)에 위험이 높았습니다.

이 차이는 행동으로 이어집니다. 2개월째에 위험이 몰린다면 첫 결제 이후 두 번째 결제 직전이 고비입니다. 5개월째라면 장기 사용자가 흥미를 잃는 시점입니다. 리마인드 메시지, 혜택, 기능 안내를 보낼 때는 위험이 치솟는 달보다 한 발 앞서 보내야 효과를 확인할 기회가 생깁니다.

월별 이탈 위험 막대 그림. 2개월째 22%, 5개월째 25%로 높고 3개월째와 6개월째는 0%

D1·D7·D30 리텐션 표와 무엇이 다른가요

D1·D7·D30 코호트 리텐션은 "가입 후 정해진 날에 다시 왔는가"를 봅니다. 가입일을 기준으로 줄을 세우기 때문에 최근 가입자는 D30 칸이 비어 있고, 그 칸은 계산에서 빠집니다.

생존곡선은 "처음 멈춘 시점"을 봅니다. 가입 시기가 달라 관찰 기간이 서로 다른 사람도 각자 관측된 만큼 계산에 들어갑니다. 그래서 출시한 지 얼마 안 된 기능이나 최근에 연 구독 상품처럼 오래 지켜본 사용자가 적을 때 특히 쓸모가 있습니다.

비교 항목 코호트 리텐션 생존곡선
묻는 질문 정해진 날에 돌아왔나 언제 처음 멈췄나
아직 관찰이 덜 된 사람 해당 칸에서 빠짐 관측된 기간까지 계산에 포함
잘 맞는 데이터 방문·활동 로그 구독 해지, 재구매 중단, 기능 사용 중단

결과를 행동으로 옮기는 순서

  • 먼저 전체 생존곡선의 중앙값과 위험이 높은 달을 확인합니다.
  • 채널이나 첫 행동 유형별로 곡선을 나눠 봅니다. 곡선 사이의 차이가 우연인지는 로그순위 검정으로 확인합니다.
  • 일정 기간(예: 6개월) 안에서 평균적으로 몇 개월 유지했는지를 같이 적습니다. 위 예시라면 6개월 안에서 평균 4.3개월입니다. 이 값은 남은 사람이 많아 중앙값을 구할 수 없을 때도 비교에 쓸 수 있습니다.

채널별 유지 기간이 다르게 나오면 획득 단가만으로 채널을 고르면 안 된다는 뜻입니다. 유지 기간을 획득 비용과 함께 놓고 보는 방법은 CAC 회수기간 계산법과 LTV:CAC 비율 계산을 참고하세요.

이렇게 쓰면 결과가 틀어집니다

  • 관측 종료일을 하나로 정하지 않으면 "구독 중"이 언제까지의 상태인지 흐려집니다. 데이터를 뽑은 날짜를 함께 기록하세요.
  • 중도절단은 이탈과 상관이 없어야 합니다. 결제 실패로 계정이 정지된 사람을 "구독 중"으로 두면 생존이 과대평가됩니다.
  • 곡선 끝부분은 남은 인원이 적어 크게 흔들립니다. 위 예시의 6개월째는 3명뿐이라 그 구간의 숫자로 결론을 내리면 안 됩니다.
  • 채널별 생존 차이는 채널이 만든 차이가 아닐 수 있습니다. 채널마다 들어온 사용자 특성이 다르기 때문입니다. 원인을 확인하려면 광고 증분 측정처럼 대조군이 있는 설계가 필요합니다.

다음 달 리포트에서는 "평균 이탈 기간" 대신 생존기간 중앙값과 이탈 위험이 높은 달을 함께 적어 보세요. 아직 남아 있는 사람이 많다면 "관측 6개월까지 절반 이상 유지"처럼 관찰 범위를 같이 쓰면 됩니다.

이탈을 지금 어떻게 보고 있나요?

검토

검토 Growth Opt Playbook

자주 묻는 질문

생존곡선과 D1·D7·D30 리텐션은 무엇이 다른가요?
리텐션은 정해진 날에 돌아왔는지를 보고, 생존곡선은 처음 멈춘 시점까지 얼마나 남아 있었는지를 봅니다. 가입 시기가 달라 관찰 기간이 서로 다른 사용자도 버리지 않고 함께 계산할 수 있습니다.
아직 이탈하지 않은 사용자는 어떻게 처리하나요?
관측이 끝난 시점까지는 남아 있던 사람으로 세고 그 뒤는 모른다고 둡니다. 이를 중도절단이라고 하며, 빼거나 이탈한 것으로 바꾸면 생존기간이 짧게 계산됩니다.
사용자가 몇 명이어야 생존곡선을 믿을 수 있나요?
정해진 기준은 없지만 곡선 끝부분은 남은 사람이 적어 크게 흔들립니다. 각 시점에 남아 있던 인원과 신뢰구간을 함께 보고, 남은 인원이 수십 명 아래로 떨어진 구간은 판단에서 빼세요.