1 정의
OEC 는 실험 결과를 단일 지표로 요약하는 합성 metric. 복수의 goal·driver metric 의 가중 조합으로 정의되며, 장기 전략 목표와의 인과 alignment 가 검증되어야 한다 (Kohavi, Tang, Xu, 2020, Ch.7).
목적. 1. 출시 결정 자동화 — 출시·중단 결정을 단일 숫자로 환원 2. 트레이드오프 명시화 — 여러 metric 간 가중치를 사전 정의 3. 조직 alignment — 모든 팀이 같은 success 정의 공유
핵심 통찰: 단일 metric 의 한계 + 다중 metric 의 해석 모호성 사이의 균형. OEC 는 다중 metric 을 유지하면서도 결정의 명료성을 확보하는 도구.
저자들의 표현 (Goldratt 1990 인용): “Tell me how you measure me, and I will tell you how I will behave.” — OEC 가 행동을 결정한다.
2 개념 및 원리
2.1 Business Metric vs Experimentation Metric
Ch.6 의 G/D/G metric 이 그대로 실험에 사용되지 못한다. 실험용 metric 은 4 가지 추가 특성 필요.
| 특성 | 의미 | 위반 시 결과 |
|---|---|---|
| Measurable | 실험 기간 내 측정 가능 | 효과 알 수 없음 |
| Attributable | variant 에 귀속 가능 | 인과 식별 불가 |
| Sensitive | 효과 detect 가능 | False negative ↑ |
| Timely | 실험 기간 내 반영 | 결정 지연 |
Insensitive 극단: stock price 를 metric 으로 → 어떤 product 변경도 detect 불가. 회사 stock 은 macro 요인이 dominate.
Over-sensitive 극단: “이 기능 노출되었는가?” → 100% 항상 detect, but 가치 정보 없음.
적정 sensitivity: whole-page CTR (penalized for quick-back), success rate (purchase), time-to-success. localized 하지만 가치 측정 가능.
수학적 sensitivity: \(\text{SNR} = \text{effect size} / \text{noise}\). 분자 (효과) 가 너무 작거나 분모 (noise) 가 너무 크면 detect 불가.
2.2 4 특성 위반의 사례
2.2.1 Renewal Rate (Subscription)
연 단위 갱신 → 실험 기간 (보통 1~4 주) 동안 measure 불가. Surrogate metric (사용 빈도) 로 대체 (Ch.6 의 less-scalable hypothesis 기법).
2.2.2 Ads Revenue (Variance 큼)
매출 분포 long-tail. 일부 고가 클릭이 분산 폭증 → sensitivity ↓.
해결: truncated revenue (capping) — outlier 제거로 variance ↓ → sensitivity ↑ (Ch.22).
2.3 실험 Scorecard 의 구조
저자들의 권고 (Kohavi, Tang, Xu, 2020, Ch.7).
실험 Scorecard:
├─ Key Metrics (5 ~ 10 개)
│ ├─ Goal metric (1~2)
│ ├─ Driver metric (3~5)
│ └─ Guardrail (2~3)
├─ Diagnostic Metrics (수십 ~ 수백)
└─ Debug Metrics (드릴다운용)
매 실험에 수백~수천 metric 가 자동 계산되지만 결정에 사용되는 key metric 은 5~10. 다중 검정 문제 + 인지 부담 모두 고려.
2.4 다중 Metric → 단일 OEC
2.4.1 다중 Metric 유지의 함정 — Otis Redding Problem
Pfeffer & Sutton (1999): “Sitting by the Dock of the Bay” 가사 — “Can’t do what ten people tell me to do, so I guess I’ll remain the same.” 너무 많은 metric → 인지 부담 → 결정 마비.
저자들의 권고: key metric 5 개 한도. 더 많으면 single OEC 로 합성.
다중 검정 함정. 독립 metric \(k\) 개 동시 평가 시 false positive 비율.
\[P(\text{at least one false positive}) = 1 - (1 - \alpha)^k\]
| \(k\) | \(\alpha = 0.05\) |
|---|---|
| 1 | 5.0% |
| 5 | 23% |
| 10 | 40% |
| 20 | 64% |
5 개 metric 이면 독립 가정 하 23% 우연 false positive. 10 개면 40%. 인지 부담 외에 통계 적으로도 5 개 한도 합리.
물론 이는 Bonferroni 보정 등으로 통제 가능 (\(\alpha / k\) 사용). 그러나 보정 시 power 손실 ↑. 5 개 한도 + 보정 없음 이 실무 sweet spot.
2.5 OEC 합성 — 가중 합
가장 단순한 합성 (Roy 2001).
\[\text{OEC} = \sum_{i=1}^{k} w_i \cdot \tilde{m}_i\]
여기서 \(\tilde{m}_i\) 는 0~1 로 정규화된 metric, \(w_i\) 는 가중치 (\(\sum w_i = 1\)).
가중치 결정의 어려움. 처음에는 직관적 가중치 → 결정 누적 후 가중치 조정.
2.5.1 의사결정 4 시나리오
저자들이 제시한 분류 (가중치 없이도 사용 가능).
| 시나리오 | 모든 key metric | 결정 |
|---|---|---|
| 1 | 모두 flat 또는 +, 적어도 1 개 + | Ship |
| 2 | 모두 flat 또는 -, 적어도 1 개 - | Don’t ship |
| 3 | 모두 flat | Don’t ship + power 검토 또는 pivot |
| 4 | + 와 - 혼재 | trade-off 판단 |
시나리오 4 의 결정이 누적되면 가중치 도출 가능. 인간 판단의 패턴이 가중치로 codified.
2.6 비유 — 비행기 조종석 vs 점수판
저자들이 제시한 유명한 비유 (Kaplan & Norton 1996 + Kohavi 2020).
2.6.1 비행기 조종석 (다중 metric)
- 속도, 고도, 연료, 엔진 온도, 자세, GPS 위치, …
- 단일 metric 으로 환원 불가
- 조종사가 모든 metric 을 monitoring
2.6.2 농구 점수판 (단일 OEC)
- 득점만 표시 (2 점·3 점 구분 없음)
- 경기 종료 시 합산 score 가 승부 결정
- 단일 metric 이 success 명확 정의
A/B 테스트의 위치: 비행기에 가까움 (다중 metric 모니터). 그러나 출시 결정 자체는 점수판 스타일 (단일 OEC). 즉 다중 metric 으로 진단·디버깅, 단일 OEC 로 결정.
3 OEC 의 장점
저자들이 제시한 5 가지 (Kohavi, Tang, Xu, 2020, Ch.7).
- 명확한 success 정의 — 모호함 제거
- 조직 alignment — 모든 팀이 같은 OEC 추구
- Trade-off 의 명시화 — 사전 합의된 가중치 → cherry-picking 방지
- 결정 일관성 — 같은 결과는 같은 결정
- 자동 출시 — parameter sweep + 자동 selection
4 사례 1 — Amazon E-mail OEC
저자들이 보고한 Amazon 의 OEC 진화 (Kohavi & Longbotham 2010).
4.1 초기 OEC — 단순 Click-through Revenue
OEC₁ = Σ revenue from email click-throughs
문제: 이메일 양에 단조 증가. 더 많은 캠페인 = 더 많은 매출 (단기). 결과: 사용자 spam.
4.2 임시 해결 — Traffic Cop
“X 일에 1 통” 제약 추가. 그러나 새 문제: 어느 캠페인을 보낼지 결정 어려움 → optimization 문제.
4.3 진화된 OEC — LTV Loss 차감
OEC₂ = (Σᵢ Revᵢ - s × unsubscribe_lifetime_loss) / n
여기서 \(s\) 는 unsubscribe 수, \(unsubscribe\_lifetime\_loss\) 는 평생 매출 손실 (다시는 이메일 보낼 수 없음).
원래 OEC 는 short-term revenue 만 본다. unsubscribe 의 비용을 0 으로 가정.
새 OEC 는 opportunity cost 를 명시적으로 차감. unsubscribe 1 명 = 평생 이메일 매출 0 원이라는 lower bound.
결과: 50% 이상의 캠페인이 negative OEC. 즉 단기 매출 < unsubscribe 의 평생 손실.
이 발견의 추가 효과: unsubscribe page 재설계. 디폴트가 “all emails” 가 아니라 “this campaign” 으로 변경 → unsubscribe 비용 감소.
이 OEC 의 일반 패턴: 상응하는 비용 차감. metric 이 단순 income 만 보면 cost (sustainable 한가? long-term hurt 인가?) 를 무시. net value 가 진짜 OEC.
5 사례 2 — Bing Search OEC
Bing 의 사례 (Kohavi et al. 2012). 저자들이 강조하는 “puzzling outcome”.
5.1 두 핵심 metric
- Query share = Bing query / 모든 search engine query
- Revenue per user
5.2 Puzzling 사건
Bing ranker bug → 매우 나쁜 검색 결과. 그러나.
- Distinct queries per user: +10% ↑
- Revenue per user: +30% ↑
만약 OEC 가 두 metric 의 단순 합 → bug 출시가 유의한 winner.
5.3 왜 이 패턴인가
나쁜 결과 → 사용자가 더 많은 query 입력 (정보 못 찾아서) + 더 많은 ad click (관련 결과 없어서 ad 라도 클릭). 단기 metric 으로는 +. 장기 사용자 이탈 은 단기 실험에서 detect 불가.
5.4 Distinct Queries 분해
\[\text{Monthly query share} = \frac{\text{distinct queries (Bing)}}{\text{distinct queries (all)}}\]
단일 사용자의 distinct queries.
\[\frac{\text{Users}}{\text{Month}} \times \frac{\text{Sessions}}{\text{User}} \times \frac{\text{Distinct queries}}{\text{Session}}\]
Sessions per User 가 핵심. 만족한 사용자는 더 자주 방문. Queries per Session 은 minimize 대상 (목표 빨리 달성).
OEC 결론: Sessions per User 를 핵심 driver 로. Queries per Session 은 task completion 검증 하에 minimize.
5.5 Revenue 의 Constraint
Revenue 도 단순 사용 시 game 가능 (광고 폭증). Constraint: ad pixel 비율 제한. 같은 ad 공간 내에서 revenue ↑ 가 진정한 가치.
이는 constraint optimization 문제. 자유 OEC 가 아니라 제약 하 OEC.
6 Goodhart · Campbell · Lucas 법칙
OEC 설계의 깊은 함의. 세 법칙 모두 correlation ≠ causation + measurement → distortion 경고.
6.1 Goodhart 법칙
원본 (Goodhart 1975): “Any observed statistical regularity will tend to collapse once pressure is placed upon it for control purposes.”
현대 표현 (Strathern 1997): “When a measure becomes a target, it ceases to be a good measure.”
함의: metric 자체가 목표가 되면 game 시도가 metric 의 의미 변경.
6.2 Campbell 법칙
Donald Campbell (1979): “The more any quantitative social indicator is used for social decision-making, the more subject it will be to corruption pressures and the more apt it will be to distort and corrupt the social processes it is intended to monitor.”
함의: metric 이 결정에 강하게 영향 → 그 metric 을 distort 하는 압력 ↑.
6.3 Lucas Critique
Robert Lucas (1976): historical correlation 은 policy 변경 시 더 이상 hold 안 함.
예: Phillips Curve — 1861~1957 영국 데이터에서 inflation ↑ ↔︎ unemployment ↓. policy 로 inflation 조작하면 같은 관계 유지될까? 1973~1975 미국 recession: 두 변수 모두 ↑. 가정 깨짐.
함의: historical correlation 으로 OEC 설계 시 OEC 변경 후 같은 correlation 안 유지될 위험.
Lucas 의 메시지: 관찰된 correlation 은 현 policy 하의 사용자 행동을 반영. policy (OEC) 변경 시 사용자 행동 변경 → correlation 변화.
예: 클릭 → 만족 correlation 이 historical 로 강하다고 해서 CTR 을 OEC 로 두면, 사용자 (또는 알고리즘) 가 click 을 늘리는 방향으로 행동 → click 의 만족 신호 가치 ↓ → correlation 약화.
저자들의 권고 (Tim Harford 인용): “Fort Knox has never been robbed, so we can save money by sacking the guards.” — 측정 결과는 현재 incentive 의 함수. incentive 변경하면 결과도 변함.
해결: OEC 의 인과 관계 검증 (Ch.6.3). historical correlation 으로 시작하되, 인과 실험으로 검증, 정기 갱신.
7 왜 필요한가
OEC 없이 다중 metric 만 사용 시.
- Cherry-picking — 출시 옹호자가 +metric 만 highlight
- 트레이드오프 모호 — 어떤 +가 어떤 - 와 상쇄되는지 매번 협상
- 결정 비일관성 — 같은 결과도 다른 결정 (의사결정자 판단 차이)
- 자동화 불가 — 자동 ramping, parameter sweep 모두 OEC 필요
OEC 가 있으면.
- 결정 명료
- 트레이드오프 코드화
- 자동화 가능 (Fly 단계 핵심)
8 응용 사례 요약
| 회사 | 초기 OEC | 진화된 OEC | 핵심 학습 |
|---|---|---|---|
| Amazon | Click-through revenue | Revenue - LTV loss | 비용 차감 |
| Bing | Distinct queries | Sessions per user | Per-task minimize, per-user maximize |
| Netflix | Watchtime | Satisfied watchtime | Quality 가중 |
| Google Search | CTR | Successful CTR + Time-to-result | Multi-proxy ensemble |
9 예시 — 4 시나리오 분류 시뮬레이션
import pandas as pd
# 가상의 실험 결과: 4 시나리오 예시
scenarios = pd.DataFrame([
{"Scenario": "1 (모두 flat 또는 +)",
"RPV": "+1.5%*", "Engagement": "+0.5%*", "Latency": "0.0%", "Decision": "SHIP"},
{"Scenario": "2 (모두 flat 또는 -)",
"RPV": "-0.8%*", "Engagement": "0.0%", "Latency": "+50ms*", "Decision": "DON'T SHIP"},
{"Scenario": "3 (모두 flat)",
"RPV": "0.0%", "Engagement": "0.0%", "Latency": "0.0%", "Decision": "DON'T SHIP + power 검토"},
{"Scenario": "4 (혼재)",
"RPV": "+2.0%*", "Engagement": "-1.0%*", "Latency": "+30ms*", "Decision": "TRADE-OFF 판단"},
])
print(scenarios.to_string(index=False))
print("\n* = statistically significant") Scenario RPV Engagement Latency Decision
1 (모두 flat 또는 +) +1.5%* +0.5%* 0.0% SHIP
2 (모두 flat 또는 -) -0.8%* 0.0% +50ms* DON'T SHIP
3 (모두 flat) 0.0% 0.0% 0.0% DON'T SHIP + power 검토
4 (혼재) +2.0%* -1.0%* +30ms* TRADE-OFF 판단
시나리오 1, 2, 3 은 자동 결정 가능. 출시·중단·power 검토 모두 명확.
시나리오 4 만 인간 판단 필요. 이 판단이 누적되면 가중치 도출. 예: 사례 100 건 중 RPV +1% 의 가치가 Engagement -1% 와 Latency +30ms 의 합과 같으면 가중치 추출.
수학적으로: 인간 결정의 logistic regression 으로 weight estimate.
\[P(\text{ship}) = \sigma(w_1 \cdot \Delta RPV + w_2 \cdot \Delta Engagement + w_3 \cdot \Delta Latency)\]
이 weight 를 OEC 가중치로 사용 → 시나리오 4 도 자동 결정 가능.
이는 human-in-the-loop 학습 패턴. 초기에는 인간이 trade-off 결정, 누적되면 시스템이 학습, 결국 자동화. Run → Fly 단계 전환의 메커니즘.
10 관련 주제
선행 — Phase F
후속 — Ch.7 시리즈
관련 챕터
- F8-* — 제도적 기억 (Ch.8) — OEC 진화 추적
- F18-* — CUPED — Sensitivity ↑
- F22-* — Leakage — Ratio metric variance
다른 카테고리 연결
- Statistics — Multiple Testing — 5 개 한도의 통계 근거
- Strategy Frameworks — KPI — OEC 의 일반 KPI 적용