Forma — 124 vs 132 vs 134, WW

Amplitude chart · T2P source: Trial Started → Trial Converted, $productId=app.forma.1w.7.trial3d, conversion window 3 days · Period: 2026-03-13 → 2026-03-19 · Country: WW · App: iOS Forma
📖 Как читать этот отчёт? (раскрыто по умолчанию — кликни чтобы свернуть)

4 модели в иерархии «как аналитик → наша»:

Логика: 1, 2, 3 — это всё «как считает аналитик» (just с нашими данными или с одним фиксом). 4 — фундаментально другая методология. Если 1-3 говорят SHIP, а 4 говорит HOLD → старая methodology упускает важный signal.

Ключевые метрики:

🎯 Решение и Tier шкала (5 уровней — каждый свой цвет):

Что особенного у Bayesian decomposition (Method 4):

Per-arm summary

124CONTROL
Default — без тогла, выделение текста синим, без триального экрана
Impressions
3,964
Subs
964
CR
24.32%
T2P
20.81%
ARPU naive
$2.0387
ARPU T2P-corr
$1.8345
Sub mix:
Weekly (trial 3d)956 (99.2%) · LTV $8.16
Annual (no trial)7 (0.8%) · LTV $35.15
132TEST
Слайдер вместо свитчера, зелёное оформление триала
Impressions
4,049
Subs
1,088
CR
26.90%
+10.60% vs control
T2P
19.23%
ARPU naive
$2.3102
+13.32% vs control
ARPU T2P-corr
$1.9409
+5.80% vs control
Sub mix:
Weekly (trial 3d)1,074 (98.6%) · LTV $8.16
Weekly (no trial)11 (1.1%) · LTV $40.54
Annual (no trial)2 (0.3%) · LTV $35.15
134TEST
Подарочная плашка вместо свитчера, белое оформление
Impressions
4,016
Subs
1,067
CR
26.59%
+9.33% vs control
T2P
21.16%
ARPU naive
$2.2097
+8.39% vs control
ARPU T2P-corr
$2.0184
+10.03% vs control
Sub mix:
Weekly (trial 3d)1,062 (99.4%) · LTV $8.16
Annual (no trial)5 (0.6%) · LTV $35.15

Pairwise comparisons vs control

📋 Что делать по каждому варианту

Сводная таблица. Детали — ниже в pairwise карточках.

Сравнение CR Δ ARPU naive Δ (P(B>A)) ARPU после T2P (P(B>A)) Trajectory
P(B>A) day-by-day
Можно стопать?
P(B>A) ≥ 95% подряд 3+ дня
👉 Что делать
124 vs 132 +10.60% +13.32%
100%
+5.80%
70%
❌ Нет
не достиг 95%
🟡 Подержать ещё
124 vs 134 +9.33% +8.39%
98%
+10.03%
85%
❌ Нет
только 2 из 3 дней
🟡 Подержать ещё

ARPU после T2P — это финальная метрика, на которой основано решение. Если > 95% и стабильно 3 дня → катить.
Stable: ✅ = P(B>A) ≥ 95% подряд за последние 3 дня (можно стопать). ❌ = ещё нестабильно.

124 vs 132
🟡 ПОДЕРЖАТЬ (Tier C)
Default — без тогла, выделение текста синим, без триального экрана → Слайдер вместо свитчера, зелёное оформление триала
🟠 НЕ катить пока — подержать тест 3-5 дней. На первый взгляд 132 выигрывает (ARPU naive 100%), но T2P падает → реальный uplift падает до 70%. Это fake-win risk. Либо продлить, либо закрыть как neutral.
⚠️ Fake-win pattern: CR растёт (+10.60%), T2P падает (-7.58%). Variant 132 привлекает больше triallers, но они хуже платят.
Что говорит каждая модель отдельно — 3 «как аналитик» + 1 наша:
1️⃣ аналитик
Копия из xlsx
🟢 КАТИТЬ
2️⃣ аналитик
Повтор аналитика
🟡 ПОДЕРЖАТЬ
3️⃣ аналитик +
Улучш. аналитик
🟡 НЕТ РАЗНИЦЫ
4️⃣ наша ⭐
Наша модель
🟡 ПОДЕРЖАТЬ
📐 1, 2, 3 = «как аналитик» (1 — копия xlsx, 2 — повтор расчёта, 3 — улучшение через T2P-correction). 4 = наша модель (Bayesian с per-component breakdown). ⭐ Финальная рекомендация = модель 4. Если 1-3 расходятся с 4 → есть proблема которую старая методология не ловит.
1️⃣ Копия данных аналитика (xlsx) baseline 1: данные из файла без перерасчёта
Источник: Аналитик ручную (xlsx file) · Период: 2026-03-13 → 2026-03-19 · Страна: WW · App: iOS Forma · 124 CONTROL vs 132 TEST
Что это: точь-в-точь числа из xlsx-файла аналитика. Используется как ground-truth референс для проверки наших расчётов.
Методология: CRpooled = Σ subs / Σ impressions, ARPU = Σ(subs × LTVhistorical) / impressions. Significance: CI overlap (ARPU min/max не пересекаются → sig).
Слабости: ⚠ LTV historical (одинаковый для обоих вариантов) → не ловит fake-win если T2P падает. ⚠ Daily SE из 7 точек → завышенный CI, false negatives.
Metric124132Δ%
Impressions3,9464,027
Subs (purchase success)9631089
CR (show → purchase)24.40%27.04%+10.81%
ARPU$2.0461$2.3233+13.54%
ARPU CI 95% (min – max)$1.813 – $2.279$2.284 – $2.357sig 95%
Решение модели 1️⃣
🟢 КАТИТЬ
2️⃣ Повтор расчёта аналитика baseline 2: наш pull + та же формула
Источник: Наш pull (Amplitude funnel chart + Tableau LTV) · Период: 2026-03-13 → 2026-03-19 · Страна: WW · App: iOS Forma · 124 CONTROL vs 132 TEST
Что это: я pull'аю данные сам через Amplitude MCP + Tableau MCP и считаю по той же методологии аналитика (Method 1 NAIVE).
Зачем: sanity check — должны получить почти идентичные числа с xlsx. Если расходимся > 1% → надо понять почему (другой filter в их source, etc).
Diff vs xlsx: подсвечен под каждой ячейкой. ≈ xlsx = совпадает (<0.5%). ±X% = расхождение.
Metric124132Δ%
Impressions 3,964
≈ xlsx
4,049
+0.5% vs xlsx
Subs 964
≈ xlsx
1088
≈ xlsx
CR 24.32%
≈ xlsx
26.90%
-0.5% vs xlsx
+10.60%
ARPU $2.0387
≈ xlsx
$2.3102
-0.6% vs xlsx
+13.32%
ARPU CI 95% (min – max)$1.860 – $2.218$2.171 – $2.450sig 90%
Решение модели 2️⃣
🟡 ПОДЕРЖАТЬ
Тот же verdict что и у аналитика — формула и данные близкие.
3️⃣ Улучшенный аналитик (+ T2P correction) та же методология аналитика, но с поправкой на T2P
Источник: Наш pull + LTV скорректирован per-variant по T2P · Период: 2026-03-13 → 2026-03-19 · Страна: WW · App: iOS Forma · 124 CONTROL vs 132 TEST
Что добавили: LTV теперь корректируется per-variant: LTVtest = LTVper_paid × T2Ptest. Если variant имеет низкий T2P → его LTV меньше → ARPU честнее.
Зачем: ловит fake-win. Если CR растёт (+10%), но T2P падает (-7%) — больше triallers, но платят меньше. Naive ARPU выглядит хорошо, T2P-corrected показывает реальную картину.
Stat-методология: та же что в M1 (CI overlap), но на скорректированных LTV. CI 95% (min/max) — на T2P-corrected ARPU. Если CIs не пересекаются → significant. Слабость: по-прежнему CI overlap (peeking-trap), 7-day daily SE.
Metric124132Δ%
Impressions3,9644,049
Subs9641088
CR (как было)24.32%26.90%+10.60%
T2P (trial → paid в тесте)20.81%19.23%-7.58%
ARPU naive (M1)$2.0387$2.3102+13.32%
ARPU T2P-corrected$1.8345$1.9409+5.80%
ARPU T2P-corr CI 95% (min – max) $1.672 – $1.997 $1.825 – $2.057
⚠ T2P-correction сильно снизил uplift на 7.52pp — это сигнал fake-win. Variant привлекает больше triallers, но они хуже конвертятся в paid.
Решение модели 3️⃣
🟡 НЕТ РАЗНИЦЫ
После T2P-correction
T2P: A=20.81%, B=19.23% (-7.58%)
4️⃣ Наша модель (Bayesian super-stack) ⭐ собственная методология — индустрия-стандарт (Adapty/RevenueCat/Statsig)
Источник: Наш pull + Bayesian decomposition + per-product Beta posteriors · Период: 2026-03-13 → 2026-03-19 · Страна: WW · App: iOS Forma · 124 CONTROL vs 132 TEST
Что это: топовая методология subscription analytics. Считает уверенность по-другому (Bayesian, не CI overlap), смотрит на каждый компонент отдельно (CR, T2P, ARPPU), ловит outliers и peeking-trap.
4 секции ниже: 📊 Уверенность по компонентам (где источник uplift) — 🛡 Проверки на надёжность (per-product + outliers + guardrails) — 📈 График день-за-днём (когда стопать) — 🎯 Решение (Tier + что делать).

📊 Уверенность по метрикам — где источник uplift

ARPU = CR × T2P × ARPPU. Считаем уверенность для каждого компонента отдельно. Если ARPU растёт — видно почему: больше юзеров (CR), лучше платят (T2P), или больше тратят (ARPPU).

Метрика 124 132 Δ % P(B>A)
уверенность что B лучше
Что значит
Impressions 3,964 4,049 размер выборки per arm
Subs (purchase success) 964 1088 total покупки
CR (% покупающих) 24.32% 26.90% +10.60%
100%
больше юзеров покупают
T2P (trial → paid) 20.81% 19.23% -7.58%
18%
% triallers → paid ⚠ падает
ARPPU ($/paying user) $8.3831 $8.5896 +2.46%
93%
средний $ с одного платящего
ARPU naive $2.0387 $2.3102 +13.32%
100%
если БЫ T2P не учитывали
ARPU после T2P $1.8345 $1.9409 +5.80%
70%
T2P (R0) correction только
ARPU после T2P + retention 🎯 $1.8345 $1.9057 +3.89% avg paid weeks:
3.96 → 3.89
финальная метрика — T2P + cumulative retention (R1...R7). Точнее BI predicted d_14
↳ R1 marginal contribution T2P-only uplift: +5.80%  →  +retention: +3.89%   |   Δ от R1 correction: -1.91pp   weak (-1.91pp) — retention noise, mostly T2P-driven

🛡 Проверки на надёжность

Verdict не должен зависеть от случайности. Проверяем способами: outliers (Winsor), per-product breakdown, per-country (heterogeneous effects), guardrail metrics (refund/cancel/crash).

Sensitivity (Winsor 1%): ARPU uplift +16.44% (✅ stable)
Per-product breakdown ▾
Productn_An_BCR_ACR_BΔ%P(B>A)Rev share A/B
Weekly (trial 3d)956107424.12%26.53%+9.99%99.5%96.5% / 93.7%
Weekly (no trial) ⚠ small n0110.00%0.30%+100.00%100.0%0.0% / 5.2%
Annual (no trial) ⚠ small n720.20%0.07%-63.27%5.9%3.5% / 1.1%

🌍 Per-country breakdown — heterogeneous effects

Variant может работать по-разному в разных странах. Если effect расходится — катить selectively, не глобально.

⚠️ Heterogeneous effects: в 11 стран variant выигрывает, в 4 — проигрывает. Spread CR uplift = 83pp. Решение «катить везде» рискованно — лучше катить только там где работает.
Country Sample CR T2P LTV ARPU after T2P 🎯
n_An_B CR_ACR_BΔ%P(B>A) T2P_AT2P_BΔ% $_A$_BΔ%
United States 910 949 42.31% 47.09% +11.30% 98% 29.14%26.05%-10.60% $13.84 $7.4167$7.3798-0.50%
France 399 412 18.20% 17.40% -4.35% 38% 13.86%11.46%-17.34% $5.91 $0.6483$0.5126-20.93%
Brazil 364 403 19.65% 18.28% -6.95% 31% 8.64%18.31%+111.87% $4.97 $0.3665$0.7226+97.14%
Turkey 237 240 16.78% 22.81% +35.95% 95% 22.73%10.91%-52.00% $3.78 $0.6274$0.4094-34.74%
Italy 230 223 20.74% 19.18% -7.56% 34% 1.92%17.07%+787.80% $5.07 $0.0880$0.7221+720.72%
Germany 162 175 18.42% 23.78% +29.11% 89% 6.06%16.28%+168.60% $8.52 $0.4135$1.4340+246.79%
Thailand 134 133 28.13% 32.85% +16.78% 79% 4.08%9.26%+126.85% $8.16 $0.3854$1.0209+164.91%
Mexico 93 105 18.02% 20.72% +15.02% 68% 14.29%13.04%-8.70% $6.60 $0.7390$0.7761+5.02%
Spain 91 76 21.66% 18.33% -15.38% 30% 17.39%13.33%-23.33% $8.16 $1.2641$0.8201-35.12%
United Kingdom 82 72 29.11% 38.66% +32.80% 90% 32.14%13.79%-57.09% $12.22 $4.9734$2.8342-43.01%
Canada 63 72 33.03% 38.66% +17.05% 76% 39.13%23.08%-41.03% $8.22 $4.6194$3.1887-30.97%
Argentina 58 71 17.07% 21.01% +23.06% 71% 10.00%7.14%-28.57% $8.16 $0.5729$0.5036-12.10%
Nigeria 50 62 27.64% 24.00% -13.14% 33% 0.00%11.76% $8.16 $0.0000$0.9478+0.00%
Vietnam 50 53 17.76% 29.86% +68.10% 93% 0.00%18.75% $8.16 $0.0000$1.8792+0.00%
Australia 46 47 25.71% 29.40% +14.35% 66% 20.00%17.65%-11.76% $10.53 $2.3538$2.3749+0.90%
Chile 38 54 25.82% 31.16% +20.65% 71% 18.18%23.53%+29.41% $8.16 $1.5758$2.4605+56.14%
Belgium 45 40 24.07% 24.57% +2.09% 53% 40.00%7.69%-80.77% $8.16 $3.2316$0.6345-80.37%
Страны с total sample < 50 не показаны. ⚠ = total < 200 (низкая надёжность).
LTV: зелёным = country-specific (из Tableau per-country breakdown), серым = global fallback. US LTV ≈ 2× Brazil LTV — country-specific критично для honest country-level ARPU.
ARPU after T2P = CR × T2P × LTVper_paid_country — финальная метрика для country-level decision.

🛡 Guardrail metrics (refund/cancel/crash)

Защитные метрики которые НЕ должны ухудшаться. Если variant breached → BLOCK ship.

MetricControlTestΔ %Status
Refund rate (lower_is_better)1.80%1.90%+5.6%🟢 ok
Cancel rate (W1) (lower_is_better)4.10%4.50%+9.8%🟢 ok
Crash rate (lower_is_better)0.23%0.21%-8.7%🟢 ok

📈 День-за-днём — когда стопать тест

График уверенности (P(B>A)) по дням. Колебания — норма. Стопать можно только когда P(B>A) ≥ 95% подряд 3 дня (не на первом пересечении — иначе peek-trap → ошибка).

📈 Daily peek-safe trajectory (Bayesian):
50%70%90%95% 2026-03-13 (day 1): P(B>A) = 93.0%, ARPU A=$1.8048, B=$2.1946, n_a=460, n_b=3452026-03-14 (day 2): P(B>A) = 76.4%, ARPU A=$1.8432, B=$1.9740, n_a=810, n_b=7092026-03-15 (day 3): P(B>A) = 95.6%, ARPU A=$1.7242, B=$1.9709, n_a=1179, n_b=11102026-03-16 (day 4): P(B>A) = 98.6%, ARPU A=$1.7761, B=$2.0361, n_a=1918, n_b=18342026-03-17 (day 5): P(B>A) = 82.7%, ARPU A=$1.8941, B=$1.9909, n_a=2711, n_b=27012026-03-18 (day 6): P(B>A) = 82.0%, ARPU A=$1.8530, B=$1.9337, n_a=3442, n_b=34582026-03-19 (day 7): P(B>A) = 89.7%, ARPU A=$1.8446, B=$1.9502, n_a=3964, n_b=4049 Crossed 95% on day 3 (2026-03-15) 03-1303-1403-1503-1603-1703-1803-19 P(B>A) over time — T2P-adjusted (peek-safe Bayesian)
📊 Не пересекли 95% в конце — финальный день ниже threshold. Продолжай тест.
⚠️ Peek-trap warning: Впервые пересекли 95% на день 3, но потом upadalo. Если бы стопнул там — Type I error inflated. Жди стабильности 3 дней подряд.
Max day-to-day volatility: 19pp — high noise, нужна больше выборка.
Sequential α-spending (O'Brien-Fleming) ▾

Что это: формальный peek-safe тест с О'Brien-Fleming bounds. Ранние peek'и требуют **очень** высокий P(B>A); поздние — стандартный 95%. Защищает от Type I inflation при peeking.
Status: ❌ Not yet sig — need P(B>A) ≥ 99.7% (current 89.7%)

DateDayInfo fracP(B>A)Required thresholdCrossed?
2026-03-13 1 7% 93.0% 100.0%
2026-03-14 2 14% 76.4% 100.0%
2026-03-15 3 21% 95.6% 100.0%
2026-03-16 4 29% 98.6% 100.0%
2026-03-17 5 36% 82.7% 99.9%
2026-03-18 6 43% 82.0% 99.9%
2026-03-19 7 50% 89.7% 99.7%
⏱ Time-to-95%: ~+2,693 impressions per arm (≈ +67% от текущего, ≈4 дней).

📅 Day-of-week breakdown

Variant может работать по-разному в будни и выходные (другой trafic mix, поведение). Если spread > 5pp — flag.

Daysn_A impn_B impCR_ACR_BΔ% CRn days
Weekday (Mon-Fri)3,2443,28424.64%27.12%+10.03%5
Weekend (Sat-Sun)71976422.85%25.95%+13.54%2

📊 MDE — Минимальный detectable эффект

С текущим sample (n=3,964 / 4,049), baseline CR 24.32% — можно поймать reliable signal только если истинный эффект ≥ MDE. Если CR uplift < MDE → underpowered (даже sig 95% может быть noise).

MDE (absolute)
±2.68pp
MDE (relative %)
±11.04%
Power
80%
α
0.05
При sample 3,964 per arm, baseline CR 24.32% — статистически reliable detect возможен только при ≥ 11.0% relative CR uplift. Если наблюдаемый CR uplift меньше — sample inadequate (extend test).

💰 Финансовая оценка + retention

Confidence-adjusted Expected Value + LTV maturation + retention curve — финансовая картина и прогноз во времени.

✅ Retention data status: FRESH · Тест закончился 53 дней назад · R1..R7 в данных · max observable R7
Тест +7 нед. У нас R1..R7 — текущий максимум. Следующий R8 будет 2026-05-14.
Следующая точка R8 ожидается 2026-05-14

💰 Expected Value (confidence-adjusted)

Risk-adjusted gain: EV = uplift × P(B>A). Сколько $ uplift'а реально получим с учётом уверенности.

Raw uplift (ARPU T2P)
+5.80%
P(B>A)
70.5%
⭐ Expected Value
+4.09%
= +5.80% × 70%
$ pe impression (на baseline ARPU $1.83):
  • Gross naive uplift: $0.1064  |  Gross EV: $0.0749
  • Net naive (×0.7, после Apple 30% cut): $0.0745  |  Net EV: $0.0525 ← реальный cash
На 10k impressions:
  • Gross uplift: ~$1064  |  Gross EV: ~$749
  • Net EV (post-store-cut): ~$525 ← сколько реально дойдёт до AIBY
Gross vs Net: Amplitude и Tableau LTV содержат retail price ($6.99 weekly, $39.99 yearly). Apple/Google берёт ~30% cut → real cash = gross × 0.7. Для KILL/SHIP это не важно (relative comparison), но для финансовой оценки в долларах — да.

📉 Retention curve — % paid users renewing по неделям

Из actual Amplitude data: Subscription Renewed events per variant. R0 = T2P (paid week 1, baseline 100%). R1 = % продлились на week 2. R2 = % продлились на week 3. И т.д.

Retention rate — % paid users renewing at each week 0%25%50%75%100% 100% 59% 91% 95% 87% 100% 61% 89% 79% 92% R0 (T2P)R1R2R3R4R5R6R7 Variant 124 132
R1 retention 124
58.9%
R1 retention 132
61.1%
R1 Δ%
+3.72%
Retention rate per week = renewals(week N) / paid users(week N-1).
R1 — самый важный: переход с paid week 1 (триал-халявщики vs реальные платящие). Большой spread R1 между variants → разная quality of paying users → real fake-win indicator.

📊 Prediction evolution — как менялся прогноз во времени

Прогноз uplift'а пересчитывается каждый раз, когда приходит новая retention точка (R1, R2, ...). Если линия стабильна — прогноз надёжен. Если сильно дёргается — данных мало или эффект непостоянен.

Prediction evolution — как менялся прогноз 132 uplift по мере новых retention данных -7.8%+0.0%+7.0% Actual -5.81% +2.2% +3.6% +2.7% +2.0% +2.2% +0.4% +0.2% +0.4% T2P only+1w+2w+3w+4w+5w+6w+7w
Initial (T2P only)
+2.22%
Latest (T2P + R1..R7)
+0.37%
Δ vs initial
-1.85pp вниз ↓
Actual (observed)
-5.81%
Predict error
+6.18pp
Состояние данных124 ARPU132 ARPUUplift прогнозavg paid weeks (A/B)
Test end (T2P only)$1.6986$1.7362+2.22%1.00× / 1.00×
+1w (R1..R1)$1.6986$1.7602+3.62%1.59× / 1.61×
+2w (R1..R2)$1.6986$1.7453+2.75%2.09× / 2.10×
+3w (R1..R3)$1.6986$1.7324+1.99%2.55× / 2.54×
+4w (R1..R4)$1.6986$1.7355+2.17%2.94× / 2.94×
+5w (R1..R5)$1.6986$1.7052+0.39%3.32× / 3.26×
+6w (R1..R6)$1.6986$1.7012+0.15%3.66× / 3.59×
+7w (R1..R7)$1.6986$1.7048+0.37%3.96× / 3.89×
Each row = "if we had stopped the test и считали ARPU при доступных тогда R-точках".
Если последняя точка близка к actual reference line (зелёный пунктир) → наш forecast model unbiased.
Если прогноз сильно меняется week-by-week → данных мало, нужно ждать ещё.

📈 LTV maturation — predict vs fact

Прогноз vs факт. Если actual sharply diverges от predict → forecast model biased для этого variant. Predict error до ±10% = good, ±10-25% = acceptable, >25% = forecast unreliable.

$0.00$0.67$1.34$2.00$2.67 ARPU прогноз (solid) vs actual (dashed) по дням d3d7d14d30d60d90d180d365 Legend: 124 pred 132 pred 124 actual 132 actual
Variantd_3d_7d_14d_30d_60d_90d_180d_365d_420
124 predicted$2.1315$2.1440$2.1315$2.1315$2.1315$2.1315$2.1315$2.1315$2.1315
132 predicted$2.4146$2.4282$2.4146$2.4146$2.4146$2.4146$2.4146$2.4146$2.4146
Predicted uplift+13.28%+13.26%+13.28%+13.28%+13.28%+13.28%+13.28%+13.28%+13.28%
124 actual ✅$0.5907$0.5907$0.8648$1.3102$1.9694
132 actual ✅$0.5644$0.5644$0.8367$1.2511$1.8550
Actual uplift-4.45%-4.45%-3.25%-4.51%-5.81%
124 predict error-72.3%-72.5%-59.4%-38.5%-7.6%
132 predict error-76.6%-76.8%-65.3%-48.2%-23.2%
🟢 actual = observed revenue per impression (T2P paid + renewals × $7.99 + annuals × $39.99) до d_60.
🔵 predict error = (fact − predict) / predict. Цвет: green=±10%, yellow=±25%, red=>25%.
После d_60 только predict (cohort ещё не дозрел в actual data).

🎯 Решение — что делать

Финальный verdict с учётом всех проверок выше. Tier — система оценки риска (A=уверенно катить, E=данные кривые).

Решение модели 4️⃣ — наша финальная рекомендация ⭐
🟡 ПОДЕРЖАТЬ — Tier C
Причины:
  • 🟠 ARPU P(B>A) = 70.5% (inconclusive)
  • → Продлить тест 1-2 недели или закрыть как neutral
🎯 Recommended: extend test на ≈4 дней
Нужно ещё ≈ 2,693 impressions per arm чтобы P(B>A) достиг 95% и стабилизировался. При текущем pace это ≈4 дополнительных дней. На день N+≈4 пересчитать; если P(B>A) T2P-adj ≥ 95% подряд 3 дня → ship; иначе → kill как inconclusive.
124 vs 134
🟡 ПОДЕРЖАТЬ (Tier C)
Default — без тогла, выделение текста синим, без триального экрана → Подарочная плашка вместо свитчера, белое оформление
🟠 НЕ катить пока — подержать тест 3-5 дней (P(B>A) = 85%, не достиг 95%). Накопить ещё sample или закрыть как neutral.
Что говорит каждая модель отдельно — 3 «как аналитик» + 1 наша:
1️⃣ аналитик
Копия из xlsx
🟢 КАТИТЬ
2️⃣ аналитик
Повтор аналитика
🟡 НЕТ РАЗНИЦЫ
3️⃣ аналитик +
Улучш. аналитик
🟡 НЕТ РАЗНИЦЫ
4️⃣ наша ⭐
Наша модель
🟡 ПОДЕРЖАТЬ
📐 1, 2, 3 = «как аналитик» (1 — копия xlsx, 2 — повтор расчёта, 3 — улучшение через T2P-correction). 4 = наша модель (Bayesian с per-component breakdown). ⭐ Финальная рекомендация = модель 4. Если 1-3 расходятся с 4 → есть proблема которую старая методология не ловит.
1️⃣ Копия данных аналитика (xlsx) baseline 1: данные из файла без перерасчёта
Источник: Аналитик ручную (xlsx file) · Период: 2026-03-13 → 2026-03-19 · Страна: WW · App: iOS Forma · 124 CONTROL vs 134 TEST
Что это: точь-в-точь числа из xlsx-файла аналитика. Используется как ground-truth референс для проверки наших расчётов.
Методология: CRpooled = Σ subs / Σ impressions, ARPU = Σ(subs × LTVhistorical) / impressions. Significance: CI overlap (ARPU min/max не пересекаются → sig).
Слабости: ⚠ LTV historical (одинаковый для обоих вариантов) → не ловит fake-win если T2P падает. ⚠ Daily SE из 7 точек → завышенный CI, false negatives.
Metric124134Δ%
Impressions3,9463,993
Subs (purchase success)9631067
CR (show → purchase)24.40%26.72%+9.50%
ARPU$2.0461$2.2211+8.55%
ARPU CI 95% (min – max)$1.813 – $2.279$2.017 – $2.425sig 95%
Решение модели 1️⃣
🟢 КАТИТЬ
2️⃣ Повтор расчёта аналитика baseline 2: наш pull + та же формула
Источник: Наш pull (Amplitude funnel chart + Tableau LTV) · Период: 2026-03-13 → 2026-03-19 · Страна: WW · App: iOS Forma · 124 CONTROL vs 134 TEST
Что это: я pull'аю данные сам через Amplitude MCP + Tableau MCP и считаю по той же методологии аналитика (Method 1 NAIVE).
Зачем: sanity check — должны получить почти идентичные числа с xlsx. Если расходимся > 1% → надо понять почему (другой filter в их source, etc).
Diff vs xlsx: подсвечен под каждой ячейкой. ≈ xlsx = совпадает (<0.5%). ±X% = расхождение.
Metric124134Δ%
Impressions 3,964
≈ xlsx
4,016
+0.6% vs xlsx
Subs 964
≈ xlsx
1067
≈ xlsx
CR 24.32%
≈ xlsx
26.59%
-0.5% vs xlsx
+9.33%
ARPU $2.0387
≈ xlsx
$2.2097
-0.5% vs xlsx
+8.39%
ARPU CI 95% (min – max)$1.860 – $2.218$2.054 – $2.365sig 65%
Решение модели 2️⃣
🟡 НЕТ РАЗНИЦЫ
Тот же verdict что и у аналитика — формула и данные близкие.
3️⃣ Улучшенный аналитик (+ T2P correction) та же методология аналитика, но с поправкой на T2P
Источник: Наш pull + LTV скорректирован per-variant по T2P · Период: 2026-03-13 → 2026-03-19 · Страна: WW · App: iOS Forma · 124 CONTROL vs 134 TEST
Что добавили: LTV теперь корректируется per-variant: LTVtest = LTVper_paid × T2Ptest. Если variant имеет низкий T2P → его LTV меньше → ARPU честнее.
Зачем: ловит fake-win. Если CR растёт (+10%), но T2P падает (-7%) — больше triallers, но платят меньше. Naive ARPU выглядит хорошо, T2P-corrected показывает реальную картину.
Stat-методология: та же что в M1 (CI overlap), но на скорректированных LTV. CI 95% (min/max) — на T2P-corrected ARPU. Если CIs не пересекаются → significant. Слабость: по-прежнему CI overlap (peeking-trap), 7-day daily SE.
Metric124134Δ%
Impressions3,9644,016
Subs9641067
CR (как было)24.32%26.59%+9.33%
T2P (trial → paid в тесте)20.81%21.16%+1.66%
ARPU naive (M1)$2.0387$2.2097+8.39%
ARPU T2P-corrected$1.8345$2.0184+10.03%
ARPU T2P-corr CI 95% (min – max) $1.672 – $1.997 $1.878 – $2.159 sig 70%
Решение модели 3️⃣
🟡 НЕТ РАЗНИЦЫ
После T2P-correction
T2P: A=20.81%, B=21.16% (+1.66%)
4️⃣ Наша модель (Bayesian super-stack) ⭐ собственная методология — индустрия-стандарт (Adapty/RevenueCat/Statsig)
Источник: Наш pull + Bayesian decomposition + per-product Beta posteriors · Период: 2026-03-13 → 2026-03-19 · Страна: WW · App: iOS Forma · 124 CONTROL vs 134 TEST
Что это: топовая методология subscription analytics. Считает уверенность по-другому (Bayesian, не CI overlap), смотрит на каждый компонент отдельно (CR, T2P, ARPPU), ловит outliers и peeking-trap.
4 секции ниже: 📊 Уверенность по компонентам (где источник uplift) — 🛡 Проверки на надёжность (per-product + outliers + guardrails) — 📈 График день-за-днём (когда стопать) — 🎯 Решение (Tier + что делать).

📊 Уверенность по метрикам — где источник uplift

ARPU = CR × T2P × ARPPU. Считаем уверенность для каждого компонента отдельно. Если ARPU растёт — видно почему: больше юзеров (CR), лучше платят (T2P), или больше тратят (ARPPU).

Метрика 124 134 Δ % P(B>A)
уверенность что B лучше
Что значит
Impressions 3,964 4,016 размер выборки per arm
Subs (purchase success) 964 1067 total покупки
CR (% покупающих) 24.32% 26.59% +9.33%
99%
больше юзеров покупают
T2P (trial → paid) 20.81% 21.16% +1.66%
57%
% triallers → paid
ARPPU ($/paying user) $8.3831 $8.3113 -0.86%
24%
средний $ с одного платящего
ARPU naive $2.0387 $2.2097 +8.39%
98%
если БЫ T2P не учитывали
ARPU после T2P $1.8345 $2.0184 +10.03%
85%
T2P (R0) correction только
ARPU после T2P + retention 🎯 $1.8345 $1.9830 +8.10% avg paid weeks:
3.96 → 3.89
финальная метрика — T2P + cumulative retention (R1...R7). Точнее BI predicted d_14
↳ R1 marginal contribution T2P-only uplift: +10.03%  →  +retention: +8.10%   |   Δ от R1 correction: -1.93pp   weak (-1.93pp) — retention noise, mostly T2P-driven

🛡 Проверки на надёжность

Verdict не должен зависеть от случайности. Проверяем способами: outliers (Winsor), per-product breakdown, per-country (heterogeneous effects), guardrail metrics (refund/cancel/crash).

Sensitivity (Winsor 1%): ARPU uplift +9.53% (✅ stable)
Per-product breakdown ▾
Productn_An_BCR_ACR_BΔ%P(B>A)Rev share A/B
Weekly (trial 3d)956106224.12%26.44%+9.62%99.3%96.5% / 97.6%
Annual (no trial) ⚠ small n750.20%0.15%-25.82%29.0%3.5% / 2.4%

🌍 Per-country breakdown — heterogeneous effects

Variant может работать по-разному в разных странах. Если effect расходится — катить selectively, не глобально.

⚠️ Heterogeneous effects: в 10 стран variant выигрывает, в 6 — проигрывает. Spread CR uplift = 150pp. Решение «катить везде» рискованно — лучше катить только там где работает.
Country Sample CR T2P LTV ARPU after T2P 🎯
n_An_B CR_ACR_BΔ%P(B>A) T2P_AT2P_BΔ% $_A$_BΔ%
United States 910 949 42.31% 47.95% +13.32% 99% 29.14%32.19%+10.47% $13.84 $7.4167$9.2846+25.19%
Brazil 364 432 19.65% 19.38% -1.35% 46% 8.64%11.94%+38.17% $4.97 $0.3665$0.4996+36.30%
France 399 377 18.20% 21.44% +17.82% 87% 13.86%14.74%+6.32% $5.91 $0.6483$0.8120+25.26%
Turkey 237 246 16.78% 21.06% +25.48% 89% 22.73%12.73%-44.00% $3.78 $0.6274$0.4409-29.73%
Italy 230 238 20.74% 19.66% -5.21% 39% 1.92%4.69%+143.75% $5.07 $0.0880$0.2033+131.06%
Germany 162 161 18.42% 21.04% +14.19% 72% 6.06%17.50%+188.75% $8.52 $0.4135$1.3634+229.71%
Thailand 134 116 28.13% 39.30% +39.71% 97% 4.08%13.46%+229.81% $8.16 $0.3854$1.7758+360.78%
Mexico 93 105 18.02% 19.79% +9.82% 63% 14.29%24.00%+68.00% $6.60 $0.7390$1.3636+84.51%
Spain 91 81 21.66% 15.99% -26.16% 17% 17.39%13.33%-23.33% $8.16 $1.2641$0.7156-43.39%
United Kingdom 82 87 29.11% 27.51% -5.53% 42% 32.14%16.13%-49.82% $12.22 $4.9734$2.3577-52.59%
Canada 63 73 33.03% 29.98% -9.24% 35% 39.13%26.32%-32.75% $8.22 $4.6194$2.8194-38.97%
Nigeria 50 68 27.64% 30.69% +11.04% 63% 0.00%11.11% $8.16 $0.0000$1.1444+0.00%
Argentina 58 56 17.07% 19.46% +14.01% 63% 10.00%0.00% $8.16 $0.5729$0.0000-100.00%
Vietnam 50 52 17.76% 26.63% +49.91% 86% 0.00%14.29% $8.16 $0.0000$1.2768+0.00%
Belgium 45 54 24.07% 0.00% -100.00% 0% 40.00%12.50%-68.75% $8.16 $3.2316$0.0000-100.00%
Australia 46 45 25.71% 26.31% +2.32% 53% 20.00%23.08%+15.38% $10.53 $2.3538$2.7789+18.06%
Chile 38 47 25.82% 29.40% +13.84% 64% 18.18%35.29%+94.12% $8.16 $1.5758$3.4824+120.99%
Poland 31 39 0.00% 0.00% +0.00% 47% 14.29%0.00% $8.16 $0.0000$0.0000+0.00%
Malaysia 38 30 30.98% 0.00% -100.00% 0% 11.76%12.50%+6.25% $8.16 $1.2234$0.0000-100.00%
Страны с total sample < 50 не показаны. ⚠ = total < 200 (низкая надёжность).
LTV: зелёным = country-specific (из Tableau per-country breakdown), серым = global fallback. US LTV ≈ 2× Brazil LTV — country-specific критично для honest country-level ARPU.
ARPU after T2P = CR × T2P × LTVper_paid_country — финальная метрика для country-level decision.

🛡 Guardrail metrics (refund/cancel/crash)

Защитные метрики которые НЕ должны ухудшаться. Если variant breached → BLOCK ship.

MetricControlTestΔ %Status
Refund rate (lower_is_better)1.80%1.70%-5.6%🟢 ok
Cancel rate (W1) (lower_is_better)4.10%3.90%-4.9%🟢 ok
Crash rate (lower_is_better)0.23%0.24%+4.3%🟢 ok

📈 День-за-днём — когда стопать тест

График уверенности (P(B>A)) по дням. Колебания — норма. Стопать можно только когда P(B>A) ≥ 95% подряд 3 дня (не на первом пересечении — иначе peek-trap → ошибка).

📈 Daily peek-safe trajectory (Bayesian):
50%70%90%95% 2026-03-13 (day 1): P(B>A) = 94.1%, ARPU A=$1.8048, B=$2.2280, n_a=460, n_b=3672026-03-14 (day 2): P(B>A) = 66.6%, ARPU A=$1.8432, B=$1.9206, n_a=810, n_b=7302026-03-15 (day 3): P(B>A) = 90.8%, ARPU A=$1.7242, B=$1.9172, n_a=1179, n_b=11132026-03-16 (day 4): P(B>A) = 95.6%, ARPU A=$1.7761, B=$1.9634, n_a=1918, n_b=18402026-03-17 (day 5): P(B>A) = 85.6%, ARPU A=$1.8941, B=$1.9937, n_a=2711, n_b=26572026-03-18 (day 6): P(B>A) = 96.5%, ARPU A=$1.8530, B=$2.0026, n_a=3442, n_b=34392026-03-19 (day 7): P(B>A) = 99.0%, ARPU A=$1.8446, B=$2.0288, n_a=3964, n_b=4016 Crossed 95% on day 4 (2026-03-16) 03-1303-1403-1503-1603-1703-1803-19 P(B>A) over time — T2P-adjusted (peek-safe Bayesian)
⚠ Не стабильно — последние 2 дней ≥ 95%, но требуется 3 подряд. Подержи ещё.
⚠️ Peek-trap warning: Впервые пересекли 95% на день 4, но потом upadalo. Если бы стопнул там — Type I error inflated. Жди стабильности 3 дней подряд.
Max day-to-day volatility: 28pp — high noise, нужна больше выборка.
Sequential α-spending (O'Brien-Fleming) ▾

Что это: формальный peek-safe тест с О'Brien-Fleming bounds. Ранние peek'и требуют **очень** высокий P(B>A); поздние — стандартный 95%. Защищает от Type I inflation при peeking.
Status: ❌ Not yet sig — need P(B>A) ≥ 99.7% (current 99.0%)

DateDayInfo fracP(B>A)Required thresholdCrossed?
2026-03-13 1 7% 94.1% 100.0%
2026-03-14 2 14% 66.6% 100.0%
2026-03-15 3 21% 90.8% 100.0%
2026-03-16 4 29% 95.6% 100.0%
2026-03-17 5 36% 85.6% 99.9%
2026-03-18 6 43% 96.5% 99.9%
2026-03-19 7 50% 99.0% 99.7%
✅ Sufficient sample for 95%. Можно стопать.

📅 Day-of-week breakdown

Variant может работать по-разному в будни и выходные (другой trafic mix, поведение). Если spread > 5pp — flag.

Daysn_A impn_B impCR_ACR_BΔ% CRn days
Weekday (Mon-Fri)3,2443,27024.64%27.47%+11.45%5
Weekend (Sat-Sun)71974622.85%22.73%-0.52%2
⚠ Спред weekday vs weekend = 12.0pp — variant работает по-разному в будни/выходные

📊 MDE — Минимальный detectable эффект

С текущим sample (n=3,964 / 4,017), baseline CR 24.32% — можно поймать reliable signal только если истинный эффект ≥ MDE. Если CR uplift < MDE → underpowered (даже sig 95% может быть noise).

MDE (absolute)
±2.69pp
MDE (relative %)
±11.06%
Power
80%
α
0.05
При sample 3,964 per arm, baseline CR 24.32% — статистически reliable detect возможен только при ≥ 11.1% relative CR uplift. Если наблюдаемый CR uplift меньше — sample inadequate (extend test).

💰 Финансовая оценка + retention

Confidence-adjusted Expected Value + LTV maturation + retention curve — финансовая картина и прогноз во времени.

✅ Retention data status: FRESH · Тест закончился 53 дней назад · R1..R7 в данных · max observable R7
Тест +7 нед. У нас R1..R7 — текущий максимум. Следующий R8 будет 2026-05-14.
Следующая точка R8 ожидается 2026-05-14

💰 Expected Value (confidence-adjusted)

Risk-adjusted gain: EV = uplift × P(B>A). Сколько $ uplift'а реально получим с учётом уверенности.

Raw uplift (ARPU T2P)
+10.03%
P(B>A)
85.1%
⭐ Expected Value
+8.53%
= +10.03% × 85%
$ pe impression (на baseline ARPU $1.83):
  • Gross naive uplift: $0.1839  |  Gross EV: $0.1565
  • Net naive (×0.7, после Apple 30% cut): $0.1288  |  Net EV: $0.1096 ← реальный cash
На 10k impressions:
  • Gross uplift: ~$1839  |  Gross EV: ~$1565
  • Net EV (post-store-cut): ~$1096 ← сколько реально дойдёт до AIBY
Gross vs Net: Amplitude и Tableau LTV содержат retail price ($6.99 weekly, $39.99 yearly). Apple/Google берёт ~30% cut → real cash = gross × 0.7. Для KILL/SHIP это не важно (relative comparison), но для финансовой оценки в долларах — да.

📉 Retention curve — % paid users renewing по неделям

Из actual Amplitude data: Subscription Renewed events per variant. R0 = T2P (paid week 1, baseline 100%). R1 = % продлились на week 2. R2 = % продлились на week 3. И т.д.

Retention rate — % paid users renewing at each week 0%25%50%75%100% 100% 59% 91% 95% 87% 100% 69% 100% 75% 95% R0 (T2P)R1R2R3R4R5R6R7 Variant 124 134
R1 retention 124
58.9%
R1 retention 134
69.1%
R1 Δ%
+17.33%
✅ R1 (1-я renewal) — 134 retention +17.33% → real-winner signal
Retention rate per week = renewals(week N) / paid users(week N-1).
R1 — самый важный: переход с paid week 1 (триал-халявщики vs реальные платящие). Большой spread R1 между variants → разная quality of paying users → real fake-win indicator.

📊 Prediction evolution — как менялся прогноз во времени

Прогноз uplift'а пересчитывается каждый раз, когда приходит новая retention точка (R1, R2, ...). Если линия стабильна — прогноз надёжен. Если сильно дёргается — данных мало или эффект непостоянен.

Prediction evolution — как менялся прогноз 134 uplift по мере новых retention данных -7.0%+0.0%+20.3% Actual +7.97% +11.1% +18.3% +13.1% +12.0% +12.7% +10.4% +9.3% +9.2% T2P only+1w+2w+3w+4w+5w+6w+7w
Initial (T2P only)
+11.14%
Latest (T2P + R1..R7)
+9.19%
Δ vs initial
-1.95pp вниз ↓
Actual (observed)
+7.97%
Predict error
+1.22pp
Состояние данных124 ARPU134 ARPUUplift прогнозavg paid weeks (A/B)
Test end (T2P only)$1.6986$1.8878+11.14%1.00× / 1.00×
+1w (R1..R1)$1.6986$2.0090+18.27%1.59× / 1.69×
+2w (R1..R2)$1.6986$1.9217+13.14%2.09× / 2.13×
+3w (R1..R3)$1.6986$1.9032+12.05%2.55× / 2.57×
+4w (R1..R4)$1.6986$1.9136+12.66%2.94× / 2.98×
+5w (R1..R5)$1.6986$1.8746+10.36%3.32× / 3.30×
+6w (R1..R6)$1.6986$1.8569+9.32%3.66× / 3.60×
+7w (R1..R7)$1.6986$1.8547+9.19%3.96× / 3.89×
Each row = "if we had stopped the test и считали ARPU при доступных тогда R-точках".
Если последняя точка близка к actual reference line (зелёный пунктир) → наш forecast model unbiased.
Если прогноз сильно меняется week-by-week → данных мало, нужно ждать ещё.

📈 LTV maturation — predict vs fact

Прогноз vs факт. Если actual sharply diverges от predict → forecast model biased для этого variant. Predict error до ±10% = good, ±10-25% = acceptable, >25% = forecast unreliable.

$0.00$0.64$1.28$1.92$2.56 ARPU прогноз (solid) vs actual (dashed) по дням d3d7d14d30d60d90d180d365 Legend: 124 pred 134 pred 124 actual 134 actual
Variantd_3d_7d_14d_30d_60d_90d_180d_365d_420
124 predicted$2.1315$2.1440$2.1315$2.1315$2.1315$2.1315$2.1315$2.1315$2.1315
134 predicted$2.3119$2.3256$2.3119$2.3119$2.3119$2.3119$2.3119$2.3119$2.3119
Predicted uplift+8.47%+8.47%+8.47%+8.47%+8.47%+8.47%+8.47%+8.47%+8.47%
124 actual ✅$0.5907$0.5907$0.8648$1.3102$1.9694
134 actual ✅$0.6903$0.6903$1.0324$1.4660$2.1264
Actual uplift+16.86%+16.86%+19.38%+11.89%+7.97%
124 predict error-72.3%-72.5%-59.4%-38.5%-7.6%
134 predict error-70.1%-70.3%-55.3%-36.6%-8.0%
🟢 actual = observed revenue per impression (T2P paid + renewals × $7.99 + annuals × $39.99) до d_60.
🔵 predict error = (fact − predict) / predict. Цвет: green=±10%, yellow=±25%, red=>25%.
После d_60 только predict (cohort ещё не дозрел в actual data).

🎯 Решение — что делать

Финальный verdict с учётом всех проверок выше. Tier — система оценки риска (A=уверенно катить, E=данные кривые).

Решение модели 4️⃣ — наша финальная рекомендация ⭐
🟡 ПОДЕРЖАТЬ — Tier C
Причины:
  • 🟠 ARPU P(B>A) = 85.1% (inconclusive)
  • → Продлить тест 1-2 недели или закрыть как neutral
🎯 Recommended: kill как inconclusive
P(B>A) недостаточно высокий, и эффект слабый. Продление не даст значимого результата. Закрыть test как neutral, переходить к следующей гипотезе.

Methodology overview

Click to expand methodology details
Method 1 — Аналитик (NAIVE):
  LTV: историческая (одна цифра на продукт)
  ARPU = Σ(subs × LTV_historical) / impressions
  Значимость: CI overlap
  ⚠️  Не учитывает реальный T2P в тесте → может дать fake-win

Method 2 — Аналитик + T2P (T2P-CORRECTED):
  LTV: ПЕР-ВАРИАНТ скорректирован по T2P_test
    LTV_per_paid = LTV_historical / T2P_historical
    LTV_test[variant] = LTV_per_paid × T2P_test[variant]
  ARPU = Σ(subs × LTV_test) / impressions
  Значимость: CI overlap (та же что M1)
  ✅  Ловит fake-win через корректировку LTV

Method 3 — Adapty/RevenueCat Bayesian:
  LTV: тот же что в M2
  ARPU = CR × T2P × LTV_paid (3-component decomposition)
  Значимость: P(B>A) через Monte Carlo
    Beta-Binomial для CR и T2P
    Gamma-Poisson для ARPPU
  Reports per-component P(B>A) + ARPU (with/without T2P)
  ✅  Industry-standard для subscription A/B testing