구간 리텐션 (Bracketed Retention)
Bracketed Retention
구간 리텐션(Bracketed Retention)은 매일 쓰지 않는 서비스의 이탈률을 정확히 측정하기 위해 특정 일자 대신 7일, 14일, 30일 같은 시간 구간 단위로 재방문을 집계하는 방식입니다. DAU가 아닌 서비스에 필수적인 지표 측정 공식입니다.
📖 개념 정의 및 실무 적용
전통적인 N-Day 리텐션은 이커머스나 부동산, 여행 앱처럼 매일 쓰지 않는 서비스에 적용하면 리텐션이 0%에 수렴하는 통계적 착시를 유발합니다. 사용자의 자연스러운 이용 주기를 반영하지 못해 프로덕트의 가치를 오판하게 만드는 것입니다.
구간 리텐션은 사용자의 실제 서비스 이용 주기(예: 주 1회 쇼핑, 월 1회 숙박 예약)에 맞춰 타임 브래킷을 설정함으로써 허위 과소평가(False Negative)를 방지하고 진정한 프로덕트-마켓 피트(PMF)를 측정할 수 있게 돕습니다.
WITH user_intervals AS ( SELECT user_id, DATE_DIFF(event_date, first_seen_date, DAY) AS days_since_first FROM user_activity),bracketed AS ( SELECT user_id, CASE WHEN days_since_first BETWEEN 1 AND 7 THEN 'Week 1' WHEN days_since_first BETWEEN 8 AND 14 THEN 'Week 2' WHEN days_since_first BETWEEN 15 AND 30 THEN 'Month 1' ELSE 'Outside' END AS retention_bracket FROM user_intervals)SELECT retention_bracket, COUNT(DISTINCT user_id) AS active_usersFROM bracketedGROUP BY 1
⚡ 5분 만에 적용하는 실행 스텝
코호트 정의: 사용자의 최초 유입일(First Seen Date)을 기준으로 정의합니다.
주기 설정: 서비스 특성에 맞는 구간(Bracket)을 정의합니다 (예: 1~7일, 8~14일, 15~30일).
쿼리 실행: 각 유저의 이벤트 발생일과 최초 유입일의 차이를 계산하여 해당 구간에 매핑합니다.
대시보드 시각화: 구간별 활성 유저 수를 집계하여 트렌드 변화를 모니터링합니다.
🚀 실무자만 아는 한 끗 차이 Pro Tip
⚠️ 흔히 하는 실수 & 주의사항 (삽질 방지)
❓ 자주 묻는 질문 (FAQ)
구간 리텐션과 N-Day 리텐션은 언제 각각 사용해야 하나요?
메신저나 소셜 미디어처럼 매일 사용하는 서비스는 N-Day 리텐션을 쓰고, 커머스, 부동산, 금융 등 주기적으로 사용하는 서비스는 구간 리텐션을 사용해야 합니다.
구간 브래킷(Bracket)의 간격은 어떻게 정하는 것이 좋나요?
GA4나 리텐션 데이터를 통해 유저의 평균 재방문 주기 분포를 먼저 확인하고, 그 분포의 최빈값(Mode)과 주요 주기(예: 7일, 30일)를 기준으로 구간을 나누는 것이 가장 객관적입니다.