# Churn Flow Report — 27 апр – 04 мая 2026 (v2)

Сгенерировано: 2026-05-04 15:00 MSK

## Источники данных

- **user_logs (primary, push)** — real-time Salebot webhooks → n8n → DB. События:
  - `sub_churn_start` — вход в flow (блок 60877758)
  - `sub_churn_reason_txt` — причина + freetext на шаге 3 recovery (включая saved)
  - `sub_churn_stayed` — явный клик "Продолжить" (блок 60878055) — webhook активен с 01.05
  - `paused` — активация заморозки
  - `sub_removed` — подтверждённая отмена через CP
- **churn_events VIEW (supplementary, pull)** — daily cache fetch. Для пошаговой воронки.
- **churn_offer_clicks VIEW (pull)** — клики по rescue-кнопкам.
- **Исключены тест-аккаунты:** 592336590, 629898053, 586012337, 586015092, 597905196, 911366186

## Сводка

- **Flow entries (sub_churn_start):** 15 (13 уник. пользователей)
- **Save rate (уник.):** 46.2% (6 из 13 уник. пользователей сохранены в 24h окне)
- **Отмены через flow:** 10
- **Paused (заморозка):** 3
- **Explicit stay:** 0 (webhook активен с 01.05, никто не нажал "Продолжить" на шагах 04/05)
- **Покрытие flow:** 22.7% (10 из 44 sub_removed)
- **Клики по офферам:** 6 (3 уник.)
- **Активная база:** 971 подписчиков на начало периода (~5.5 sub_removed/день). Расчёт: `COUNT(*) FROM users WHERE expiry_date >= '2026-04-27'`, исключены 6 тест-аккаунтов. Скорость оттока = total sub_removed / дней в периоде.
- **Broader churn:** 168 un-subscribed + 45 sub_declined за период

## Save rate по дням

*Методология: source = `sub_churn_start` из user_logs (push, real-time). Группировка по уник. sb_id (first entry per user). Save = нет `sub_removed` в окне [first_entry, first_entry+24h]. Тест-аккаунты исключены.*

- **2026-04-29:** 1 entry, 1 уник., saved 1, rate 100.0%
- **2026-04-30:** 4 entries, 3 уник., saved 2, rate 50.0%
- **2026-05-01:** 3 entries, 3 уник., saved 1, rate 33.3%
- **2026-05-02:** 4 entries, 4 уник., saved 2, rate 50.0%
- **2026-05-03:** 3 entries, 2 уник., saved 1, rate 33.3%
- **Итого:** 15 entries, 13 уник., saved 6, rate **46.2%**

*Примечание: sub_churn_start webhook активен с ~29 апреля. Данные за 27-28 апреля недоступны (webhook ещё не стрелял).*

## Воронка (churn_events, excl. test)

*Методология: churn_events VIEW (pull/cache). Агрегация по step prefix. Тест-аккаунты исключены.*

- **01_entry:** 20 hits, 16 уник.
- **02_tell-more:** 15 hits (drop-off 25%)
- **03_recovery:** 12 hits (drop-off 20%)
- **04_value-stats:** 9 hits, 9 уник. (drop-off 25%)
- **05_risk-warning:** 9 hits, 9 уник. (drop-off 0%)
- **06_cancel-confirm:** 9 hits, 9 уник. (drop-off 0%)
- **07_stay:** 0 (webhook на блоке, data = 0 real users)

*Ключевое наблюдение: все 9 пользователей, дошедших до шага 04, проходят насквозь до 06. Save rate на persuasion-стадиях = 0%. Ретеншн работает ТОЛЬКО на шаге 3 (recovery card).*

## Причины отмены (sub_churn_reason_txt)

*Методология: source = `sub_churn_reason_txt` (push). Фиксирует причину в момент показа recovery-карточки — ДО решения пользователя остаться/уйти. Поэтому включает и saved, и cancelled.*

- **2_price:** 2 (0 saved, 2 cancelled)
- **5_pause:** 2 (1 saved, 1 cancelled)
- **1_mismatch:** 1 (0 saved, 1 cancelled)
- **6_tech:** 1 (1 saved, 0 cancelled)
- **7_tg_block:** 1 (0 saved, 1 cancelled)
- **4_spam:** 1 (0 saved, 1 cancelled)
- **3_coverage:** 1 (1 saved, 0 cancelled)
- **Итого:** 9 captured, 3 saved (33%), 6 cancelled (67%)

## Save rate по ветке причины

*Методология: source = `sub_churn_reason_txt`. Save = нет sub_removed в 24h после записи причины.*

- **3_coverage:** 1 attempt, 1 saved, **100%**
- **6_tech:** 1 attempt, 1 saved, **100%**
- **5_pause:** 2 attempts, 1 saved, **50%**
- **2_price:** 2 attempts, 0 saved, **0%**
- **1_mismatch:** 1 attempt, 0 saved, **0%**
- **4_spam:** 1 attempt, 0 saved, **0%**
- **7_tg_block:** 1 attempt, 0 saved, **0%**

## Клики по офферам

*Методология: churn_offer_clicks VIEW. Клик по кнопке после показа rescue-предложения на шаге 3.*

- **Активировать в MAX/VK:** 4 клика, 1 уник.
- **Заморозить на 30 дней:** 1 клик, 1 уник.
- **Пригласить друга:** 1 клик, 1 уник.

## Покрытие flow

*Методология: via_flow = sub_removed с паттерном `^\d_\w+` / total sub_removed.*

- **2026-04-27:** 3 / 12 (25.0%)
- **2026-04-28:** 0 / 2 (0%)
- **2026-04-29:** 0 / 3 (0%)
- **2026-04-30:** 2 / 4 (50.0%)
- **2026-05-01:** 2 / 9 (22.2%)
- **2026-05-02:** 2 / 4 (50.0%)
- **2026-05-03:** 2 / 9 (22.2%)
- **2026-05-04:** 0 / 1 (0%)
- **Итого:** 10 / 44 (22.7%)

## Фидбек пользователей

*Методология: UNION `sub_churn_reason_txt` + `sub_removed` (дедупликация по sb_id+reason). Outcome = наличие sub_removed. Тест исключены.*

**Saved users (новое! ранее невидимы):**
- **2026-05-03 16:31** | 5_pause | очень много сейчас снимаюсь, записываю проб. Ты все делаешь хорошо, когда будет чуть больше времени вернусь | @katosinka (Стефанова Екатерина) | **SAVED**
- **2026-05-02 20:03** | 6_tech | subscribe | @DariaDaliri (Дарья) | **SAVED**
- **2026-05-02 00:13** | 3_coverage | /support | @Karina9521 (Карина) | **SAVED**

**Cancelled users:**
- **2026-05-03 23:15** | 1_mismatch | Много неинтересного | @n_nout (Lil Юра)
- **2026-05-02 12:51** | 2_price | Все. Кастинги не те, и мне вообще ничего тут не понравилось. верните деньги | Olya Andilevko
- **2026-05-02 03:12** | 2_price | Каждый месяц списывается много денег. А кастинги в основном на некоммерческие | @Trwhu (Мария Балашова)
- **2026-05-01 15:46** | 4_spam | Переходя на ссылки о кастинге, оказываются не действительными | @vikazakovtseva (Виктория Казаковцева)
- **2026-05-01 12:22** | 7_tg_block | Я просто отменил автоплатеж, не грусти | @SergeyOstapov (Сергей)
- **2026-04-30 15:48** | 2_price | Отмени автоплатеж | @aalekseevna11 (Алексеева Алина)
- **2026-04-30 14:02** | 5_pause | N | @Daniel10007 (Даниил Богданов)
- **2026-04-27 21:31** | 5_pause | Отпуск | @Tangr11 (Салюк Михаил)
- **2026-04-27 17:45** | 1_mismatch | Из за слуха, вот что | @Dursson85 (Sergei Babkov)

## Наблюдения

- **Save rate 46.2% per unique user** (не 29.4% как в v1). Разница — исключение QA-инфляции, переход на push-source (`sub_churn_start`), подсчёт по уник. пользователям (6 из 13).
- **Ретеншн работает ТОЛЬКО на шаге 3** (recovery card). Все 9 пользователей, дошедших до шага 04 (value-stats), проходят насквозь до cancel-confirm. Кнопка "Продолжить поиск кастингов" на шагах 04/05 — мёртвая.
- **3 из 9 пользователей с причиной — saved** (33%). Паттерны: 5_pause → freeze, 6_tech → support, 3_coverage → support. Ветки price/mismatch/spam/tg_block → 0% save.
- **Rescue-офферы дают engagement:** 6 кликов, 3 пользователя. Но "Заморозить" и "MAX/VK" не имеют обработчиков в Salebot (TODO в схеме).
- **sub_churn_stayed webhook не генерирует данных:** настроен с 01.05, 0 real events. Не баг — просто никто не нажимает "Продолжить" на шагах 04-06.

## Ограничения

- **sub_churn_start доступен с ~29 апреля** — данные за 27-28 апреля недоступны (webhook ещё не стрелял).
- **Малая выборка:** 13 уников. Тренды станут значимы при 30+ за период.
- **TMA web_app невидим:** кнопки "Проверить фильтр" / "Расширить фильтр" не попадают в cache. Клики по ним неизмеримы.
- **Coverage 22.7%:** три четверти отмен без причины. un-subscribed (168) показывает масштаб CP-level churn вне flow.
- **24h окно save rate:** отмена через 25h = "saved". Но данные показывают, что saved users действительно не отменяют позже.

## Изменения относительно v1

- **Источник entries:** `sub_churn_start` (push) вместо `churn_events` (pull). Убрана QA-инфляция.
- **Фидбек saved users:** добавлен `sub_churn_reason_txt` — 3 фидбека от сохранённых пользователей.
- **Outcome tracking:** каждый entry классифицирован (cancelled / paused / silent_save).
- **Test exclusion:** 6 тест-аккаунтов исключены из всех метрик.
- **Broader context:** un-subscribed (168) и sub_declined (45) показаны как контекст.
