이 묶음은 같은 자료에 정의를 적용하고 직접 검산하기 위한 것이다. 실제 고객 데이터가 아니다. 제품 ‘주간회고’와 모든 사용자·관측값은 교육용으로 만들었다. 논문의 데이터나 기업 성과를 복제한 것이 아니다.
예제 A는 같은 여덟 명에게 세 가지 창을 적용한다. B는 미성숙한 두 명을 0으로 처리하는 오류를 보여준다. C는 서로 다른 시점의 집단 구성비를 다룬다. 이들은 독립적인 예제이며 한 제품의 실제 시계열처럼 합치지 않는다. 본문의 계약 유지 예제 D(100→80→72명)도 계산 코드에서 검산한다.
측정 기준
시각 문자열은 +09:00 또는 UTC의 Z로 시간대를 명시한다. 본문 표시는 한국 표준시다. 하루는 가입 시각부터 경과한 정확한 24시간이며, 달력 날짜로 자르거나 반올림하지 않는다. 시작 시각은 포함하고 종료 시각은 제외한다.
관찰 자격 = 관찰 종료 시각 ≥ 가입 시각 + 창의 종료 경과일
분모 = 관찰 자격을 충족한 고유 사용자 수
분자 = 분모에 속하면서 창 안에 review_completed가 한 번 이상 있는 사용자 수
비율 = 분자 / 분모
자료의 observedUntilExclusive는 그 시각 직전까지 기록을 관찰했다는 뜻이다. 창의 끝 자체는 포함하지 않으므로 관찰 종료와 창의 끝이 같으면 창 전체를 관찰한 것으로 처리한다. D7은 [7,8), 둘째 주는 [7,14), 21일 관찰에서 D7 이후는 [7,21)이다.
A·B에서는 최초 가입이 사용자별 하나이고 관련 이벤트가 완전하게 기록되었다고 가정한다. 앱 열기는 회고 완료가 아니다. u05의 D7 완료 두 건은 서로 다른 실제 행동 기록으로, 전송 중복을 흉내 낸 것이 아니다. 그래도 사용자 분자는 한 명이다. C에는 사용자별 로그가 없으므로 세그먼트 집계표에서 가중평균을 계산한다.
직접 확인할 지점
- u02의 8일째 완료는 D7에 들어가지 않는다.
- u04의 14일째 완료는 둘째 주에 들어가지 않는다.
- u05의 두 완료는 사용자 한 명으로 센다.
- b05·b06은 창이 끝나지 않아 D7의 성공·실패 어느 쪽에도 배정하지 않는다.
- C의 35%와 55%는 사용자 수로 가중한 전체 비율이다. 두 세그먼트 비율의 단순 평균이 아니다.
여기서 높은 값은 좋은 제품의 기준선이 아니다. 표본을 작게 잡은 이유는 개인별 사건과 분모를 눈으로 확인할 수 있게 하기 위해서다. 예제의 효과 크기나 비율을 실제 서비스의 목표치로 옮기지 않는다.
추가 계산
A의 셋째 주 [14,21)는 u04 한 명으로 1/8이다. B의 D2는 창이 끝난 여섯 명 중 b05·b06이 완료하여 2/6이다. 코호트 표의 다른 칸도 같은 이벤트에서 계산하며, 창이 끝나지 않은 칸은 0으로 채우지 않는다. 계산 코드와 그림 생성 코드에서 이 결과를 확인한다.
구성비 조절은 C의 변경 후 집단별 비율 70%·10%를 고정하고 습관이 있는 사람의 비중만 바꾸는 가정 계산이다. 원자료를 수정하거나 실제 실험을 수행하지 않는다. 25%·50%·75% 구성에서는 각각 25%·40%·55%가 나온다.