D7 리텐션은 코호트 시작일로부터 최소 7일이 지난 사용자만 계산해야 해요. 데이터 최대 날짜가 7월 30일인데 7월 28일 유입 코호트를 D7 평균에 넣으면, 아직 도달할 수 없는 D7을 0 또는 결측으로 섞는 셈이죠. 먼저 데이터 최대 날짜와 관찰 기간을 확인하고, 완성된 코호트끼리 비교하세요.
리텐션 코호트 분석은 전체 사용자 평균을 보는 보고서가 아니에요. 같은 시점에 시작한 사용자를 묶어, 시간이 지난 뒤에도 가치 행동을 하는 비율을 비교하는 방법입니다. 이 기준을 지켜야 신규 유입, 채널 믹스 변화, 미완성 데이터가 만든 착시를 줄일 수 있어요.
리텐션 코호트는 무엇을 비교하나
코호트는 같은 기준을 공유하는 사용자 집단이에요. 앱 마케팅에서는 보통 install_date 또는 first_open_date가 같은 사용자를 일·주 단위로 묶습니다. 필요하면 매체, 캠페인, OS, 국가, 첫 핵심 행동까지 나눌 수 있어요.
기본 계산식은 다음과 같습니다.
Dn 리텐션 = n일차에 정의한 재방문 또는 가치 행동을 한 코호트 사용자 수 ÷ 코호트 시작 사용자 수 × 100
분자보다 중요한 건 정의예요. 앱을 열었음을 리텐션으로 볼지, 콘텐츠 소비·장바구니 추가·결제를 시도했음을 볼지에 따라 숫자의 의미가 달라집니다. 제품 가치를 실제로 나타내는 행동을 먼저 정하고, 시작 이벤트·재방문 이벤트·시간대·집계 단위를 문서화하세요.
Google Analytics의 코호트 보고서도 첫 세션 날짜가 같은 사용자 집단을 기준으로 하며, cohortActiveUsers / cohortTotalUsers로 리텐션 비율을 계산할 수 있습니다. 팀의 GA4 정의는 Google의 코호트 사양과 리텐션 보고 예시를 기준으로 고정하세요.
먼저 데이터 최대 날짜와 완성 코호트를 확인하세요
분석 전 두 날짜를 적습니다.
- 코호트 시작일: 사용자를 묶은 날짜
- 데이터 최대 날짜: 원본에서 실제로 확인 가능한 마지막 이벤트 날짜
예를 들어 데이터 최대 날짜가 7월 30일이면 7월 23일 코호트까지 D7을 볼 수 있고, D30은 6월 30일 코호트까지 볼 수 있어요. 오늘 날짜가 아니라 원본 데이터 최대 날짜를 써야 합니다. ETL 지연, 업로드 누락, 시간대 차이가 있으면 오늘 데이터가 있어도 마지막 하루는 완성되지 않을 수 있어요.
| 보고 지표 | 데이터 최대 날짜가 7월 30일일 때 포함 가능한 마지막 일간 코호트 |
|---|---|
| D1 | 7월 29일 |
| D7 | 7월 23일 |
| D30 | 6월 30일 |
날짜 경계와 시간대는 도구마다 다릅니다. 예를 들어 Amplitude는 기본으로 사용자별 24시간 창을 쓰지만, 엄격한 달력일 기준도 선택할 수 있어요. 같은 이름의 D1이라도 도구·시간대·시작 이벤트가 다르면 직접 비교하면 안 됩니다. Amplitude의 시간 집계 설명을 확인해 분석 문서에 기준을 남기세요.
예시 데이터: 미완성 코호트가 D7 평균을 낮추는 방식
다음은 설명용 예시 데이터입니다. 실제 업종 평균이 아닙니다.
| 설치 코호트 | 사용자 수 | D7 관찰 가능 여부 | D7 리텐션 |
|---|---|---|---|
| 7월 10일 | 1,000 | 가능 | 18% |
| 7월 17일 | 1,100 | 가능 | 17% |
| 7월 24일 | 1,300 | 불가 | 미완성 |
| 7월 29일 | 1,500 | 불가 | 미완성 |
완성 코호트 두 개의 사용자 가중 D7은 약 17.5%예요. 미완성 코호트를 0%로 처리하면 평균은 약 7.5%로 보입니다. 실제 리텐션이 반토막 난 게 아니라, 아직 일곱 번째 날을 맞지 않은 사용자를 실패로 처리한 오류죠.
아직 관찰이 끝나지 않은 사용자를 버리지 않고 "언제 처음 멈췄는가"를 계산하는 방법은 유저 이탈 시점 분석에 정리했습니다.
계산 근거: 잔존 사용자 = 1,000 × 18% + 1,100 × 17% = 367명. 완성 코호트만 포함하면 367 ÷ 2,100 = 17.48%, 미완성까지 분모에 넣으면 367 ÷ 4,900 = 7.49%입니다.
미완성 값은 0으로 채우지 마세요. 미완성, N/A, 또는 별도 음영으로 표시하고 평균에서 제외합니다. Amplitude도 최근 관찰 기간이 끝나지 않은 데이터 포인트를 따로 표시하며, 완성 기간이 아닌 값이 전체 해석을 바꿀 수 있음을 설명합니다. Retention Analysis FAQ를 참고하세요.
Classic, Rolling, Bracket: 같은 D7이 아닙니다
리텐션 정의를 섞으면 같은 그래프에서도 결론이 뒤집힙니다.
| 정의 | D7에서 묻는 질문 | 적합한 상황 |
|---|---|---|
| Classic / Return On | 정확히 7일차에 가치 행동을 했나? | 매일 돌아오는 제품의 사용 습관 |
| Rolling / Return On or After | 7일차 이후 한 번이라도 돌아왔나? | 장기 복귀 신호 |
| Bracket | 1~7일 구간 안에 돌아왔나? | 주간 사용·구매 주기가 긴 제품 |
Classic D7은 정확히 일곱 번째 날의 활동을 묻습니다. Rolling은 그 이후 복귀까지 포함하므로 보통 더 높게 나와요. Bracket은 제품 사용 주기에 맞춰 기간을 정의합니다. 배달 앱의 매일 열기와 B2B 도구의 주간 업무 사용을 같은 D7 정의로 평가하면 제품 건강도를 오해할 수 있습니다.
보고서 제목에 D7 retention만 쓰지 말고 D7 Classic, UTC+9, first_open → value_event처럼 정의를 함께 기록하세요. GA4, Amplitude, MMP 사이 숫자 차이도 훨씬 빠르게 설명할 수 있습니다.
히트맵은 평균보다 먼저 읽으세요
히트맵의 행은 코호트 시작일, 열은 경과일, 셀은 리텐션입니다. 전체 평균 한 줄보다 먼저 다음을 확인하세요.
- 같은 열에서 최근 완성 코호트가 연속으로 하락하는가. 한 행만 낮으면 표본·유입 믹스·프로모션을 먼저 의심합니다.
- D1부터 낮은가, D1은 같은데 D7부터 낮은가. 전자는 광고 메시지·온보딩·기술 오류를, 후자는 반복 가치·알림·콘텐츠 공급을 우선 점검합니다.
- 특정 채널·OS·국가에만 나타나는가. 전체 평균을 보기 전에 채널별 유입 비중 변화를 분리합니다.
- 새 코호트가 미완성으로 색을 바꾸고 있지 않은가. 미완성 구간은 평균과 경고 규칙에서 제외합니다.
일간 설치가 작으면 일 단위 셀은 노이즈가 큽니다. 주 단위로 묶거나 신뢰구간을 함께 보고, 표본 수를 숨기지 마세요. 10명 코호트에서 D7 사용자가 1명 늘면 리텐션은 10%p 움직입니다.
리텐션 변화 뒤에 무엇을 점검할까
| 관찰 | 우선 질문 | 다음 행동 |
|---|---|---|
| D1부터 하락 | 유입 약속과 첫 경험이 달라졌나? | 소재·랜딩·가입·첫 핵심 행동 퍼널 점검 |
| D1은 유지, D7 하락 | 반복 가치가 약해졌나? | 알림, 콘텐츠 공급, 핵심 기능 재방문 경로 점검 |
| 특정 채널만 하락 | 저품질 유입 또는 캠페인 변경인가? | 채널·캠페인·소재별 코호트 분리 |
| 특정 OS만 하락 | 릴리스·SDK·로그인 오류인가? | 버전별 이벤트 누락과 크래시·로그인 흐름 QA |
| 초기 행동 뒤 차이 | 어떤 행동이 장기 잔존과 연결되나? | Aha Moment 후보 행동 분석 후 실험 설계 |
고리텐션 오가닉 비중이 줄고 저리텐션 신규 매체 비중이 늘면 전체 D7은 떨어질 수 있어요. 이때 각 채널의 리텐션이 변하지 않았다면 제품 문제가 아니라 믹스 변화일 가능성이 큽니다. 반대로 모든 주요 채널에서 D1이 동시에 낮아지면 릴리스·로그인·온보딩 오류를 먼저 점검하세요.
초기 행동별 차이를 발견해도 바로 원인이라고 말하면 안 됩니다. 리텐션이 좋은 사용자가 그 행동을 더 많이 했을 수도 있어요. 후보는 Aha Moment 찾는 법에서 Lift·도달률·표본으로 좁히고, A/B 테스트 방법이나 홀드아웃으로 검증하세요.
리텐션 코호트 분석 체크리스트
- 시작 이벤트와 재방문·가치 이벤트를 명시했다.
- 시간대, 일·주·월 기준, Classic·Rolling·Bracket 정의를 기록했다.
- 데이터 최대 날짜 기준으로 D1·D7·D30 완성 코호트만 비교했다.
- 미완성 코호트를 0으로 채우거나 평균에 넣지 않았다.
- 코호트 크기와 일간·주간 집계 단위를 함께 봤다.
- 채널·OS·국가·유입 비중 변화로 전체 평균을 분해했다.
- 관찰 결과와 인과 판단을 구분했다.
결론: 같은 관찰 기간끼리 비교해야 행동이 보입니다
D1·D7·D30 리텐션을 제대로 읽는 첫 단계는 더 많은 차트를 만드는 일이 아닙니다. 데이터 최대 날짜를 확인하고, 관찰 기간을 끝낸 코호트만 같은 정의로 비교하는 일이에요. 그다음에야 채널, 온보딩, 제품 경험 중 어디를 고칠지 판단할 수 있습니다.
먼저 코호트별 install_date, user_id, 활동 이벤트, 매체·캠페인·OS 컬럼을 정리하세요. 코호트 기반 리텐션 가이드로 LTV 해석까지 연결하고, 초기 행동과 장기 잔존의 관계는 핵심 가치 발굴 도구에서 확인해 보세요.
오늘 해볼 것
최근 행이 미완성인지 확인하기. 어제 설치한 코호트에는 D30이 아직 없어요. 그 칸이 빈칸이 아니라 0으로 그려지면 최근 코호트가 무너진 것처럼 보입니다. 리텐션 리포트에서 가장 흔한 거짓 경보예요.
평균을 어떻게 내고 있는지 확인하기. 며칠치 리텐션 비율을 가중 없이 평균하면 100명짜리 코호트와 10,000명짜리 코호트가 같은 무게로 들어갑니다. 코호트 크기로 가중하면 추세의 방향 자체가 바뀌는 경우가 자주 있어요. 분모는 각 코호트의 설치 인원이고, 분자는 입력이 비율이면
비율 × 인원, 인원수면 그대로 더합니다.