역사적 맥락은 freemium 모델의 발전이 정적 제한(클라우드의 고정 5GB)에서 ML 기반의 동적 적응 제한으로 변화하면서 시작됩니다. 이러한 개입의 효과를 평가하는 고전적인 접근 방식은 근본적인 내생성 문제에 직면하게 됩니다: 시스템은 의도적으로 높은 전환 가능성으로 예측되는 사용자에게 제한을 부과하여 강한 선택적 편향을 만듭니다. 초기 상관 분석 방법은 confounding by indication을 무시하여 200-300% 과대 평가된 효과를 초래했습니다.
문제의 제기는 제한 부여가 사용자 동기 부여와 상관관계가 있는 조건에서 **Local Average Treatment Effect (LATE)**를 측정할 필요가 있습니다. 모델은 전환 가능성 $P(conv|X)$를 예측하고, $P > \tau$일 때 제한을 부여합니다. 이로 인해 관찰 가능한 특성 및 관찰 불가능한 특성면에서 그룹 간 비교가 불가능하게 됩니다. 제한이 부여된 사용자와 그렇지 않은 사용자를 직접 비교하면 overestimation을 초래합니다. 왜냐하면 처리 그룹은 본래 "열렬히 유인된" 사용자들로 이루어져 있기 때문입니다.
상세한 해결책은 스코어링 모델의 경계 $\tau$에서 **Regression Discontinuity Design (RDD)**에 기반합니다. 경계 주변(bandwidth $h$)에서 제한 부여는 준무작위적이며, $P = \tau - \epsilon$과 $P = \tau + \epsilon$의 사용자들은 통계적으로 차별화되지 않습니다. 결과를 스코어링 점수에 대한 연속 회귀로 구축하며, $\tau$에서 점프의 단절성을 평가합니다. 정확도를 높이기 위해 효과의 이질성을 평가하기 위해 Causal Forest를 사용하며, 단계적 도입 시에는 시간적 추세를 통제하기 위해 Difference-in-Discontinuities를 사용합니다. 대안적으로는 **Inverse Propensity Weighting (IPW)**를 사용하여 Random Forest를 통해 propensity score를 평가할 수 있지만, 이는 드물게 완전하게 충족되는 unconfoundedness 조건을 필요로 합니다.
문제
B2B SaaS 제품에서 무료 계정에 대한 활성 프로젝트 수에 동적 제한을 도입했습니다. ML 모델은 50개 이상의 행동 특징을 분석하고, 전환 가능성이 0.75 이상인 경우 신규 프로젝트 생성을 차단했습니다. 제품 팀은 "제한된" 사용자들 사이에서 전환율이 40% 증가한 것을 관찰했지만, 제한의 효과를 동기 부여된 사용자의 자기 선택에서 구분할 수 없었습니다. 또한 테스트를 위한 제한 전체 금지는 불가능했으며, 이는 실험 기간 동안 $200K MRR의 손실을 의미했습니다.
옵션 1: 역사적 데이터와의 단순 비교
현재 제한이 있는 사용자와 기능 도입 이전 2개월 전의 사용자 코호트를 비교합니다. 장점: 인프라 비용이 최소화되고, 기술적 변화 없이 빠른 평가가 가능합니다. 단점: 시즌성(연말 활동 감소), 전환율의 전체적인 증가 추세(제품이 성숙해짐), 신규성 효과를 완전히 무시하며, 선택 편향으로 인해 35-40% 과대 평가된 추정치를 줍니다.
옵션 2: ML 모델을 비활성화한 전통적인 A/B 테스트
15% 사용자에 대해 무작위로 제한을 해제하여 스코어와 관계없이 제한 없이 제품을 사용할 수 있도록 합니다. 장점: 인과관계의 황금 표준이며, **Average Treatment Effect (ATE)**를 직접 측정할 수 있습니다. 단점: C 레벨에서 "열렬한" 사용자의 손실 위험으로 인해 단호히 거부되며, 이는 상당한 기회 비용과 윤리적 갈등을 초래합니다(왜 어떤 사용자에게는 모든 것을 허용하지만 다른 사용자에게는 그렇지 않은지에 대한 물음).
옵션 3: 혼합 접근 방식을 사용하는 Regression Discontinuity Design
자연스러운 스코어 레벨(0.75)을 단절점으로 활용하여, 전환 가능성이 0.74 및 0.76인 사용자들을 로컬 무작위화된 그룹으로 비교합니다(약 5000명의 사용자가 ±0.05 구간 내에 있음). 한 달 동안 도입이 지연된 지역에 대해 Synthetic Control Method를 추가합니다. 장점: 95% 사용자에 대한 비즈니스 로직을 유지하며, "경계" 사용자에 대한 국소적 효과의 비편향 추정(LATE)을 제공하고, 수익에 해를 주지 않고 자연스러운 변동성을 활용할 수 있습니다. 단점: 경계 근처에서 약 2000회의 관측이 필요하며, 평가는 $P(conv) \approx 0.75$인 하위 그룹에만 적용될 수 있으며, 경계의 조작에 민감합니다(밀도 분포에 대한 McCrary test가 필요합니다).
선택된 해결책과 결과
RDD를 선택하였고, Calonico-Cattaneo-Titiunik (CCT bandwidth) 방법에 따른 최적의 폭으로, 부정적 효과를 가진 하위 집단을 찾기 위해 Causal Forest를 추가했습니다. 분석 결과, 엄격한 제한이 "중간" 사용자들에 대해 +12%의 전환율을 제공하는 반면, 파워 사용자들에 대해 -8%의 유지율 감소를 초래한다는 것을 발견했습니다(높은 참여도, 하지만 스코어가 경계보다 약간 낮음). 이를 바탕으로 혼합 모드가 도입되었습니다: 파워 사용자에 대해선 부드러운 제한(경고만), 중간 사용자에겐 엄격한 제한(하드 캡). 최종 결과: 전환율이 8% 증가했고, 30일 유지율은 기본의 96% 수준을 유지하여 주요 사용자 이탈 없이 분기마다 추가 $450K ARR를 얻었습니다.
제한 자체의 효과와 유료 버전의 "리마인더 효과"(reminder effect)를 어떻게 구별하나요?
후보자들은 전환율의 증가를 단지 재정적 제한의 결과로 해석하곤 하며, 제한에 대한 통지가 마케팅 접점으로 작용한다는 것을 무시합니다. 이를 격리하기 위해서는 제한 없는 프리미엄 정보만 제공하는 "부드러운" 통지의 추가 대조군이 필요하거나, 제한 표시와 전환 간의 시간 분석을 할 필요가 있습니다. 전환이 즉시(한 시간 이내) 일어난다면—이는 아마도 리마인더 효과일 것이고, 3-7일 후 몇 차례 제한을 초과 시도가 일어난 경우—진짜 제한 효과일 것입니다. 추가적으로 기술적 알림 표시의 지연을 우연한 변동으로 고려한 instrumental variable을 사용할 수 있으며, 2SLS 회귀를 적용하여야 합니다.
팀 제품(Notion, Figma)에서 한 사용자의 제한이 동료들 간의 협업에 영향을 줄 때 네트워크 효과를 어떻게 고려하나요?
B2B SaaS에서 팀의 한 구성원에 대한 제한은 spillover effects를 생성합니다: 동료들은 하나의 계정으로 자원을 집계하거나 경쟁사로 이주할 수 있습니다. 전통적인 RDD는 이러한 외부 효과를 무시하여 **SUTVA (Stable Unit Treatment Value Assumption)**를 위반합니다. 해결책은 팀/워크스페이스 수준의 cluster-RDD를 사용하여 처리 그룹을 제한된 사용자 비율로 정의하거나, 네트워크 그래프에서 제한된 이웃 수를 도구로 활용한 **two-stage least squares (2SLS)**를 사용하는 것입니다. 제한 조건이 다른 사용자 간의 네트워크 활동 분석(network adjacency matrix)을 통해 위반을 측정하는 것이 중요하며, 팀 내에서 homophily 가설을 검증해야 합니다.
특정 기능의 제한의 진정한 효과를 덜 가치 있는 기능 사용의 이동(대체 편향)에서 어떻게 구별할 수 있나요?
A 기능에 제한이 있는 사용자는 B 기능(예: 스프레드시트에서 텍스트 문서로)으로 이동할 수 있어, 높은 유지율을 나타내는 비현실적인 모습을 만들어낼 수 있습니다. 그러나 이는 사실상 product stickiness 및 feature adoption depth를 저하시킵니다. 측정을 위해 기능 사용의 Shannon entropy 분석(사용 다양성 측정)이나 **compositional data analysis (CODA)**가 필요합니다. 제한이 있을 경우 엔트로피가 감소하면, 이는 제품 내에서의 서로 칸니발리제이션이 발생했음을 의미합니다. 최적의 정책은 단지 전환이 아니라, 사용 패턴 변화에 따라 expected LTV를 최대화해야 하며, 이는 Markov Decision Process (MDP) 또는 contextual bandit를 통해 모델링이 필요합니다. 보상 함수는 전환 사실뿐만 아니라 기능 수용의 깊이와 engagement velocity를 고려해야 합니다.