cd ~/gh-pm-lab source pm-lab/env.sh
python3 -c "import pandas, scipy, statsmodels; print('ok')"
ok
1전후 비교의 네 가지 함정
개선 전 기간과 후 기간의 숫자를 나란히 놓는 비교는 “그 사이에 개선만 바뀌었다”는 가정을 숨기고 있다. 그 가정이 깨지는 대표적인 경우가 네 가지다.
| 함정 | 일어나는 일 | 예 |
|---|---|---|
| 평균으로의 회귀(regression to the mean) | 나쁜 값이 나온 직후에 개선을 시작하면, 개선이 없어도 다음 값은 평균 쪽으로 돌아온다. 골턴(F. Galton)이 1886년 부모와 자식의 키에서 처음 기술했다 | 대기가 가장 길었던 주의 다음 주에 리뷰 당번을 시작하면, 다음 주 값은 당번이 없어도 평균 쪽으로 내려왔을 수 있다 |
| 계절성 | 릴리스 준비, 휴가철, 분기 말처럼 해마다 같은 때 생기는 변화가 전후 차이에 섞인다 | 릴리스 준비 기간에 리뷰 요청이 몰렸다가 릴리스 뒤에 줄어든다 |
| 같은 시기의 다른 변경 | 같은 날이나 같은 시기에 시작한 다른 규칙, 도구 변경, 인원 변화가 효과를 나눠 가진다 | Orbit은 6월 1일에 두 규칙을 함께 시작했다(실습 27) |
| 업무 구성 변화(mix shift) | 업무 종류의 비율이 기간마다 다르면, 종류마다 값이 같아도 전체 값이 달라진다 | Orbit의 engineering 업무가 3~5월 65건, 6~9월 72건이었다(실습 27) |
2단계의 실습 27은 영역별로 나누고(업무 구성), 개선과 무관한 QA 업무를 대조군으로 보고, 같은 날 시작한 규칙은 구분할 수 없다고 적었다. 이 모듈은 그 다음 단계로, 함정을 비교 설계로 막고 효과의 크기를 신뢰구간과 함께 말한다.
2단계적 도입 시나리오의 데이터
키트의 samples/a-experiment-weekly.csv는 다른 시나리오를 가정한 합성 데이터다. Orbit 팀이 웹 저장소(orbit-web)와 앱 저장소(orbit-app)를 따로 운영하고, 리뷰 당번을 한 번에 시작하지 않고 웹에 2026-05-04(월), 앱에 2026-07-06(월) 차례로 도입했다. 이렇게 도입 시점을 묶음마다 엇갈리게 정하는 설계를 단계적 도입(stepped rollout)이라고 한다. 늦게 도입하는 묶음이 그동안 대조군이 된다. 열은 주 시작일, 저장소, 그 주에 만든 PR 수, 첫 리뷰 대기 평균(업무 시간), 당번 적용 여부다.
head -5 github-pm-starter-kit/samples/a-experiment-weekly.csv
week,repo,prs,review_wait_h,rule 2026-03-02,orbit-web,14,8.4,0 2026-03-02,orbit-app,7,7.2,0 2026-03-09,orbit-web,18,6.5,0 2026-03-09,orbit-app,10,7.9,0
a-experiment-weekly.csv). 세로선은 각 저장소의 도입 주다.그림에서 세 가지가 보인다. 4월 13일부터 세 주 동안 두 저장소 모두 대기가 높았다. 웹의 도입은 그 직후였다. 웹이 도입한 5월 4일 주에 당번이 없는 앱도 대기가 줄었다. 그 두 주의 값을 확인한다.
grep -E '^2026-0(4-27|5-04),' github-pm-starter-kit/samples/a-experiment-weekly.csv
2026-04-27,orbit-web,11,9.0,0 2026-04-27,orbit-app,9,11.0,0 2026-05-04,orbit-web,14,2.2,1 2026-05-04,orbit-app,6,7.9,0
웹은 9.0h에서 2.2h로, 앱은 11.0h에서 7.9h로 줄었다. 앱의 3.1h 감소는 리뷰 당번과 관계가 없다.
3이중차분과 단계적 도입
개선을 받을 묶음을 무작위로 정하면 두 묶음의 차이는 개선 하나로 좁혀진다. 웹 서비스의 기능 실험에서 쓰는 무작위 대조 실험(randomized controlled experiment)의 운영 방법은 코하비(R. Kohavi), 탕(D. Tang), 쉬(Y. Xu)의 『Trustworthy Online Controlled Experiments』(2020)가 정리했다. 팀의 일하는 방식은 업무나 사람을 무작위로 나눠 바꾸기 어려우므로, 이 모듈은 무작위 배정 없이 비교하는 설계(이중차분, 단계적 도입, 중단 시계열)를 다룬다.
이중차분(difference-in-differences, DiD)은 처리군의 전후 차이에서 대조군의 전후 차이를 뺀다. 두 묶음에 함께 작용한 변화(계절, 같은 시기의 다른 변경)는 두 차이에 모두 들어 있으므로 빼면 사라진다. 카드(D. Card)와 크루거(A. Krueger)가 1994년에 최저임금을 올린 뉴저지와 올리지 않은 펜실베이니아의 패스트푸드점 고용을 비교한 연구가 널리 알려진 예다. 필요한 가정은 하나다. 개선이 없었다면 두 묶음의 값이 같은 방향, 같은 크기로 움직였을 것(평행 추세, parallel trends)이다.
effect.py did는 주별 차이(처리군 − 대조군)를 도입 전후로 비교한다. 앱이 도입하기 전 주(2026-06-29)까지만 쓴다.
세 비교 방법의 추정이 다르다.
- 처리군 전후: 웹만 보면 7.9h에서 2.7h로 5.2h 줄었다. 같은 기간에 당번이 없는 앱도 1.4h 줄었으므로, 이 5.2h에는 두 저장소에 함께 작용한 변화가 섞여 있다.
- 직전 3주 대 직후 3주: 7.4h 줄었다. 직전 3주는 두 저장소가 함께 높았던 4월 중순이다. 나쁜 주 직후에 시작해 직후 주와 비교하면 평균으로의 회귀가 효과로 보인다.
- 이중차분: −3.8h, 95% 신뢰구간 −5.1h ~ −2.4h. 주를 다시 뽑은 부트스트랩 구간(−5.4h ~ −2.2h)도 비슷하다.
평행 추세는 도입 전 기간으로 점검한다. 도입 전 9주에서 주별 차이의 기울기는 주당 −0.25h이고 95% 신뢰구간이 0을 포함한다. 도입 전 기간의 가운데(3월 30일)에 가짜 도입일을 두고 계산한 이중차분도 −1.3h이고 구간(−6.0h ~ 3.3h)이 0을 포함한다. 두 점검 모두 평행 추세를 반박하지 않는다. 다만 9주는 짧아서, 반박하지 못했다는 것이 평행 추세가 맞다는 증거는 아니다.
단계적 도입의 장점은 효과를 한 번 더 잴 수 있다는 것이다. 앱이 도입한 7월 6일을 기준으로, 이미 도입을 마치고 안정된 웹을 대조군으로 쓴다. 웹의 도입 직후 기간과 겹치지 않도록 5월 4일부터 쓴다.
앱의 이중차분은 −3.8h, 95% 신뢰구간 −5.4h ~ −2.2h로 웹과 같은 크기다. 다른 저장소, 다른 시기에 같은 크기의 효과가 다시 나왔으므로, 리뷰 당번의 효과를 첫 리뷰 대기 3~4h 감소로 말할 근거가 두 번 생겼다. 이 설계는 도입 날짜를 미리 정하고 한 번에 한 묶음씩 도입했기 때문에 가능했다.
4효과 크기, 신뢰구간, 검정력
효과는 세 숫자로 말한다. 단위가 있는 크기(−3.8h), 그 불확실성(95% 신뢰구간 −5.1h ~ −2.4h), 상대 크기(도입 전 평균 대비 −48%)다. 효과 크기(effect size)를 표준편차 단위로 적으면(이중차분 ÷ 주별 차이의 표준편차 = −2.06) 다른 지표의 효과와 비교할 수 있다.
신뢰구간은 두 방법으로 구했다. 뉴이-웨스트(Newey-West) 표준오차는 이웃한 주의 값이 서로 닮는 자기상관을 고려한다. 부트스트랩(bootstrap)은 에프론(B. Efron)이 1979년에 제안한 방법으로, 가진 자료에서 주를 복원 추출로 다시 뽑아 이중차분을 2,000번 계산하고 그 가운데 95%가 놓인 범위를 구간으로 쓴다. 분포를 가정하지 않는 대신 주를 서로 독립으로 다룬다. 두 구간이 비슷하면 결론이 계산 방법에 기대지 않는다는 뜻이다.
출력의 마지막 줄은 검정력(power) 계산이다. 주별 차이의 표준편차가 1.8h일 때, 유의수준 5%에서 실제 효과를 80% 확률로 찾아내려면 도입 전후 기간이 각각 효과 3h면 7주, 2h면 15주, 1h면 54주 필요하다. 개선 실험을 설계할 때 이 계산을 먼저 해서 판단일을 정한다. 효과가 작을 것으로 예상되는 개선을 4주 만에 판정하면, 효과가 있어도 “차이가 없다”는 결과가 나오기 쉽다. 실습 27에서 결정 기록의 다시 열림 비율을 피셔의 정확 검정으로 본 것은 두 비율이 우연으로 설명되는지를 본 것이고, 여기서는 효과가 얼마인지와 그 범위를 말한다.
5대조군이 없을 때: 중단 시계열
모든 묶음에 한 번에 도입했으면 대조군이 없다. 중단 시계열(interrupted time series, ITS)은 도입 전의 추세를 도입 뒤로 늘인 값을 “도입하지 않았다면”의 값으로 보고, 도입 직후의 수준 변화와 기울기 변화를 추정한다. 베르날(J. L. Bernal), 커민스(S. Cummins), 가스파리니(A. Gasparrini)가 2017년 International Journal of Epidemiology에 실은 튜토리얼이 이 분절 회귀(segmented regression)를 정리했다. 대조군이 있는 웹 데이터에 일부러 대조군 없이 적용해 본다.
분절 회귀는 도입 직후 수준 변화를 −6.51h로 추정했다. 도입 전 9주 끝에 높은 세 주가 있어 도입 전 기울기가 주당 +0.27h로 잡혔고, 이 기울기를 늘인 “도입하지 않았다면”의 값이 마지막 주에 13.6h가 된다. 추세 없이 수준 차이만 보는 모형도 −5.22h다. 대조군과 비교한 이중차분(−3.8h)보다 둘 다 크다. 대조군이 없으면 두 저장소에 함께 작용한 변화와 직전의 높은 주들이 효과에 섞인다.
Orbit 로그의 첫 리뷰 대기에도 적용한다. A2에서 xmr.sh --tsv로 주별 값을 저장한다. 6월 1일 주는 A2에서 확인한 전환 주라 뺀다(--exclude).
분절 회귀의 수준 변화는 −1.30h이고 95% 신뢰구간(−3.63h ~ 1.04h)이 0을 포함한다. 도입 전 기울기가 주당 −0.54h로 가파르게 잡혔고, 그 기울기를 늘이면 마지막 주의 “도입하지 않았다면”의 값이 −3.7h가 된다. 대기 시간이 0보다 작을 수는 없으므로 이 모형의 반사실은 틀렸다. A2의 관리도에서 3월 16일 주가 특수 원인이었고, 기록 초기의 높은 두 주가 기울기를 끌어내렸다. 추세 없이 수준만 보는 모형은 −4.85h(−6.92h ~ −2.78h)이지만, 잔차의 1주 시차 자기상관이 0.36으로 남아 모형이 자료를 다 설명하지 못한다.
중단 시계열의 결론은 모형 선택에 따라 −1.3h에서 −4.85h까지 움직였다. 도입 전 기간이 짧거나 그 안에 특수 원인이 있으면, 늘인 추세를 믿을 수 없다. 중단 시계열을 쓸 때는 도입 전 기간을 길게 잡고, 그 기간의 관리도에 신호가 없는지 먼저 확인하고, 모형을 바꿔도 결론이 유지되는지 보고서에 함께 적는다.
6같은 날 시작한 두 규칙
실습 27은 “처리 시간 감소 9.1h 중 4.1h는 첫 리뷰 대기 감소로 설명되고, 나머지는 같은 날 시작한 완료 조건 갱신 규칙의 효과와 구분할 수 없다”고 답했다. 두 규칙을 같은 날 시작한 기록으로 할 수 있는 일은 규칙마다 작용하는 경로를 따라 지표와 묶음을 고르는 것이다.
| 규칙 | 작용하는 업무 | 직접 바꾸는 지표 |
|---|---|---|
| 리뷰 당번 | PR이 있는 모든 업무 | 첫 리뷰 대기 |
| 완료 조건 갱신 | 결정 기록이 있는 업무 | 변경 요청 비율, 다시 열린 비율 |
완료 조건 갱신 규칙은 결정 기록이 없는 업무에는 작용하지 않는다. 그러면 결정 기록이 없는 업무를 대조군으로 두고, 결정 기록이 있는 업무의 변경 요청 비율이 더 줄었는지 이중차분으로 볼 수 있다. 실습 26에서 만든 기간별 파일로 건수를 센다.
결정 기록이 있는 업무는 78%에서 32%로 46%p, 없는 업무는 23%에서 19%로 4%p 줄었다. 이중차분은 −42%p, 95% 신뢰구간 −71%p ~ −13%p다. 결정 기록이 있는 업무가 18건과 25건뿐이라 구간이 넓고, 출력의 안내대로 정규 근사도 정확하지 않다.
이 숫자를 완료 조건 갱신 규칙의 효과로 읽으려면 “리뷰 당번이 결정 기록이 있는 업무와 없는 업무의 변경 요청 비율을 같은 만큼 바꿨다”는 가정이 필요하다. 이 가정은 기록으로 확인할 수 없다. 두 규칙이 6월 1일 전에 따로 작용한 기간이 없기 때문이다. 같은 날 두 규칙을 시작하면 포기하는 것이 이것이다. 규칙마다의 효과는 확인할 수 없는 가정 위에서만 말할 수 있고, 두 규칙이 함께 바꾸는 처리 시간에 대해서는 각 규칙의 몫을 나눌 수 없다. 실습 28에서 개선안 A와 B를 같은 날 시작하지 않기로 한 것은 이 문제를 피하려는 것이다.
7끝나지 않은 사례: 카플란·마이어 추정
실습 22는 끝나지 않은 사례 3건을 빼고 분석하면서, 기록을 뽑기 직전에 시작한 업무 중에는 빨리 끝난 업무만 남는다고 적었다. 끝나지 않은 사례에도 정보가 있다. 관측 끝까지 최소 이만큼 걸렸다는 정보다. 이런 자료를 중도 절단(censoring)되었다고 한다. 생존 분석(survival analysis)의 카플란·마이어(Kaplan-Meier) 추정은 카플란(E. L. Kaplan)과 마이어(P. Meier)가 1958년 Journal of the American Statistical Association에 발표한 방법으로, 사건이 일어난 시각마다 “그때까지 남아 있던 사례 중 끝난 비율”을 곱해 아직 끝나지 않은 비율을 추정한다. 중도 절단된 사례는 절단 시각까지 분모에 들어가고, 그 뒤로는 빠진다.
키트의 km.py는 정리하지 않은 원본 로그(끝나지 않은 사례가 있는 로그)를 읽어 세 방법을 나란히 계산한다. 먼저 전체 260건이다.
전체에서는 끝나지 않은 사례가 3건뿐이라 세 방법의 중앙값이 33.0h, 33.0h, 33.1h로 거의 같다. 작업 시작이 8월 24일 이후인 15건만 보면 달라진다. 끝난 12건만 쓰면 중앙값 22.4h(실습 22의 숫자), 85% 40.9h이고, 카플란·마이어는 22.9h, 46.8h다. 끝나지 않은 3건 중 OB-256은 관측 끝까지 46.1h가 지났는데, 버리는 방법은 이 사례가 끝난 다른 사례보다 오래 걸린다는 정보를 잃는다.
카플란·마이어가 실제 분포에 더 가까운지는 답을 알 때만 확인할 수 있다. 관측을 매달 말 18시에 끝냈다고 가정하고(--cutoff), 그달에 시작한 업무의 분포를 세 방법으로 계산한 뒤, 9월 4일까지 본 원본 로그(--truth)의 값과 비교한다.
| 관측 끝 | 끝나지 않은 사례 | 중앙값 버림 | 중앙값 카플란·마이어 | 중앙값 실제 | 85% 버림 | 85% 카플란·마이어 | 85% 실제 |
|---|---|---|---|---|---|---|---|
| 03-31 | 10/40 | 37.9h | 38.9h | 42.6h | 55.9h | 58.7h | 59.1h |
| 04-30 | 9/41 | 36.2h | 36.9h | 35.5h | 50.6h | 50.6h | 50.6h |
| 05-29 | 11/45 | 33.2h | 34.6h | 35.0h | 53.9h | 55.5h | 55.7h |
| 06-30 | 6/40 | 30.4h | 32.4h | 30.4h | 53.2h | 54.5h | 53.9h |
| 07-31 | 5/49 | 24.2h | 25.3h | 27.7h | 45.0h | 45.0h | 45.4h |
| 08-31 | 6/43 | 26.0h | 26.4h | 26.4h | 43.7h | 49.3h | 46.8h |
km.py --svg). 세로축은 아직 끝나지 않은 비율이다.여섯 달 중 다섯 달에서 버리는 방법의 중앙값이 실제보다 작거나 같았고, 85%는 여섯 달 모두 실제보다 작거나 같았다. 카플란·마이어의 중앙값은 실제보다 작은 달과 큰 달이 섞여 있고, 85%는 여섯 달 중 다섯 달이 실제와 0.6h 안이다. 한 달 40건 안팎의 자료에서는 어느 방법이든 빗나간다. 중앙값의 차이는 버리는 방법이 최대 4.7h(3월), 카플란·마이어가 최대 3.7h(3월)였고, 7월의 카플란·마이어 중앙값 95% 신뢰구간은 19.7h ~ 32.3h였다. 카플란·마이어가 고치는 것은 한쪽으로 쏠린 오차(끝나지 않은 사례를 버려 짧게 나오는 것)이고, 사례 수가 적어서 생기는 흔들림은 고치지 못한다.
PR의 첫 리뷰 대기에도 같은 방법을 쓸 수 있다. 관측 끝에 리뷰를 기다리는 열린 PR이 중도 절단 사례다. Orbit 원본 로그에는 관측 끝에 첫 리뷰를 기다리던 PR이 없어, 이 모듈은 업무 처리 시간으로 실습했다. 학습자 저장소에서는 gh pr list --state open --json createdAt,reviews로 리뷰가 없는 열린 PR과 그 대기 시간을 구해 같은 계산에 넣는다.
8실험 설계서와 효과 판정 보고서
실습 28에서 고른 개선안 A(막힘 결정 기한)를 실험으로 설계한다. 효과를 판정하는 방법은 적용 전에 정한다(실습 29). 키트의 양식을 복사해 채운다.
cp github-pm-starter-kit/templates/experiment-design.md pm-lab/experiment-design.md
**개선 실험 설계서** - 개선안: 막힘 결정 기한 (개선안 이슈, 실습 28) - 가설: blocked 라벨이 붙은 업무의 막힘 대기가 업무 시간 중앙값 11.5h에서 4h 이하로 준다 - 겨냥한 지표: 막힘 대기 (pm-lab/metrics/blocked-wait.md, bottleneck.sh의 “막힘 → 막힘 해소”) - 결과 지표와 부작용 지표: 처리 시간 85% / 막힘이 있었던 사례 비율(라벨을 덜 붙이는지), 다시 열린 비율(결정을 서둘렀는지) - 비교 방법: 단계적 도입. engineering 영역에 2026-09-14, design·product 영역에 2026-10-12 적용한다. 그동안 design·product가 대조군이다 - 대조군의 조건: 같은 PM이 맡는 영역이다. 대조 기간에 막힘을 처리하는 방식을 바꾸지 않는다 - 기간과 판단일: 막힘은 6~9월에 18건(주당 1~2건)이라 주별 값으로는 검정력이 낮다. 막힘 한 건을 단위로 비교하고, 1차 판단일을 2026-11-23으로 두되 막힘이 영역마다 10건 이상 쌓이지 않았으면 판단을 미룬다 - 판단 기준: 막힘 대기의 이중차분 95% 신뢰구간 상한이 0보다 작으면 유지, 0을 포함하면 기간을 늘린다. 부작용 지표가 실습 27의 범위를 벗어나면 중단을 검토한다 - 같은 기간에 하지 않을 변경: 개선안 B(착수 전 결정 확인), 리뷰 방식 변경 - 끝나지 않은 사례: 판단일에 풀리지 않은 막힘은 km.py와 같은 방식으로 중도 절단 사례로 넣는다 - 계산 명령: bottleneck.sh --from/--to로 영역·기간별 막힘 대기를 뽑고 effect.py did로 계산한다 - 담당과 승인: pm-oh, 결정 기록 댓글
판단일에는 효과 판정 보고서를 쓴다. 숫자 하나로 “효과 있음”을 적지 않고, 무엇과 비교했고 어떤 다른 설명을 지웠는지 함께 적는다. 이 모듈의 리뷰 당번 시나리오로 쓴 예다.
**효과 판정 보고서: 리뷰 당번 (단계적 도입 시나리오)** - 판정: 유지. 첫 리뷰 대기를 주별 평균 3.8h 줄였다 - 숫자: 이중차분 −3.8h, 95% 신뢰구간 −5.1h ~ −2.4h (orbit-web, 대조군 orbit-app, 전후 각 9주). orbit-app 도입에서 다시 잰 값 −3.8h, −5.4h ~ −2.2h - 비교 방법과 가정: 주별 차이의 전후 비교. 평행 추세를 가정했고, 도입 전 기울기(주당 −0.25h)와 가짜 도입일 점검(−1.3h)이 0과 구분되지 않았다 - 지운 다른 설명: 4월 중순의 높은 주 직후에 시작한 효과(평균으로의 회귀)는 대조군으로 지웠다. 같은 시기 두 저장소에 함께 생긴 변화(대조군 −1.4h)는 이중차분으로 지웠다 - 남은 불확실성: 도입 전 기간이 9주로 짧다. 효과가 시간이 지나며 줄어드는지는 A2의 관리도로 계속 본다 - 결정과 다음 일: 리뷰 당번을 유지한다. 새 공정의 관리도 한계를 다시 계산한다
막히면
| 증상 | 확인과 해결 |
|---|---|
ModuleNotFoundError: No module named 'statsmodels' | python3 -m pip install pandas scipy statsmodels. 그림을 저장하려면 matplotlib도 설치한다 |
오류: 도입 전과 후에 두 묶음의 값이 있는 주가 3개 이상씩 필요하다 | --at, --since, --until로 고른 기간을 확인한다. 날짜는 주 시작(월요일)이다 |
오류: value 열이 없다 | its는 기본으로 value 열을 읽는다. 실험 CSV에서는 --outcome review_wait_h와 --only를 준다 |
km.py의 분위수가 “추정 불가”다 | 끝나지 않은 사례가 많아 아직 그 비율만큼 끝나지 않았다. 관측 기간을 늘리거나 더 이른 기간의 사례로 계산한다 |
km.py의 끝나지 않은 사례가 0건이다 | 정리한 로그(-clean.csv)를 넣었다. 정리한 로그는 끝나지 않은 사례를 이미 뺐다. 원본 로그를 넣는다 |
- 전후 비교의 함정 네 가지를 Orbit의 예로 설명할 수 있다.
- 이중차분으로 리뷰 당번의 효과와 신뢰구간을 계산하고, 단순 전후 비교와 직전 3주 비교가 왜 크게 나오는지 설명했다.
- 단계적 도입의 두 번째 도입으로 효과를 다시 확인했다.
- 검정력 계산으로 효과 크기마다 필요한 주 수를 읽었다.
- 중단 시계열의 결론이 모형과 도입 전 기간에 따라 달라지는 것을 확인했다.
- 같은 날 시작한 두 규칙에 대해 말할 수 있는 것과 포기해야 하는 것을 구분했다.
- 카플란·마이어로 끝나지 않은 사례를 포함한 분포를 계산하고, 버리는 방법과 비교했다.
- 개선 실험 설계서와 효과 판정 보고서를
pm-lab/에 썼다.
마치며...
개선의 효과는 개선을 받지 않은 묶음과 비교할 때 다른 변화와 나뉜다. 단계적 도입 시나리오에서 단순 전후 비교는 5.2h, 직전 3주 비교는 7.4h를 효과로 보였고, 대조군과 비교한 이중차분은 3.8h였으며 두 번째 도입에서 같은 크기가 다시 나왔다. 대조군이 없는 중단 시계열은 모형에 따라 결론이 움직였고, 같은 날 시작한 두 규칙의 효과는 확인할 수 없는 가정 위에서만 나눌 수 있었다. 끝나지 않은 사례는 카플란·마이어로 분포에 넣었고, 관측을 일찍 끝낸 여섯 달 모두에서 버리는 방법의 85%가 실제보다 작거나 같았다. 트랙 A의 결과물은 지표 정의서와 측정 계획(A1), 관리도와 신호 판정 규칙(A2), 예측 보정 기록과 추정 규칙(A3), 실험 설계서와 효과 판정 보고서(A4)다.