← Назад к вопросам

Анализировал ли удаление приложений

1.0 Junior🔥 141 комментариев
#Метрики и KPI#Опыт работы и проекты

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI21 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

# Анализ удаления приложений (Churn Analysis)

Да, проводил подробный анализ churn в своей практике

Проект 1: FinTech стартап (2017)

Проблема: Retention упал с 42% (3 месяца) до 32%. Нужно понять причину.

Подход:

  1. Cohort Analysis - разбор по когортам регистрации
SELECT 
    DATE_TRUNC('month', signup_date) as cohort,
    DATE_TRUNC('month', last_activity_date) as activity_month,
    COUNT(DISTINCT user_id) as users
FROM users
GROUP BY 1, 2
-- Результат: выявили, что падение начало со спецификации в августе
  1. Сегментация по характеристикам
  • По девайсу (мобиль vs веб): падение retention на мобиле на 20%
  • По версии приложения: v2.5 (выпущена в августе) имеет низший retention
  • Вывод: баг в UI мобильного приложения v2.5
  1. Анализ поведения перед удалением
  • Users, которые удалили: меньше сессий, короче время использования
  • За неделю до удаления: 40% вообще не заходили в приложение

Результат: Engineering зафиксил баг за 2 дня. Retention восстановился. Impact: сохранили $2M+ в году.

Проект 2: SaaS платформа (2021)

Задача: Предсказать, какие пользователи удалят приложение в следующем месяце.

Методология:

import pandas as pd
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split

# Features (за последние 30 дней)
features = [
    'days_since_signup',        # Новые юзеры склонны удалять чаще
    'sessions_count',            # Активные юзеры не удаляют
    'avg_session_duration',      # Engaged юзеры лучше
    'features_used_count',       # Много функций = более вовлечён
    'support_tickets_count',     # Баги = проблемы = удаление
    'payment_failures',          # Проблемы с платежом
    'days_since_last_activity'   # Долгая неактивность = риск
]

# Build model
X = user_data[features]
y = user_data['churned_next_30_days']

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
model = RandomForestClassifier(n_estimators=100, max_depth=8, random_state=42)
model.fit(X_train, y_train)

# Feature importance
feature_importance = pd.DataFrame({
    'feature': features,
    'importance': model.feature_importances_
}).sort_values('importance', ascending=False)

# Predict churn probability
user_data['churn_prob'] = model.predict_proba(X)[:, 1]

# Top risk users (20%)
threshold = user_data['churn_prob'].quantile(0.8)
at_risk = user_data[user_data['churn_prob'] >= threshold]

Model Performance:

  • AUC: 0.82
  • Recall: 75% (выявляем 75% реальных churn)
  • Precision: 58% (58% предсказанных churn действительно удаляют)

Action: Sales team проводил proactive outreach:

  • Звонки at-risk users
  • Персональные предложения (скидки, новые фичи)
  • Результат: сохранили 35% at-risk users = $5M revenue/год

Проект 3: Анализ причин удаления (Qualitative)

Метод: Опрос удалил пользователей через push-уведомление

"Почему вы удалили приложение?"
1. Не нашёл нужной функции (32%)
2. Приложение часто падает (18%)
3. Слишком сложный интерфейс (15%)
4. Лучше альтернатива (12%)
5. Перестал нужно (10%)
6. Плохо работает на моём девайсе (8%)
7. Дорого (5%)

Действия:

  • #1: Добавили недостающие функции (опрос показал, что нужны)
  • #2: Зафиксили критические баги
  • #3: Переделали UI (упростили)

Result: Следующий месяц retention улучшился на 8%.

Основной подход к анализу churn

  1. Quantitative: Когортный анализ, предсказательное моделирование
  2. Qualitative: Опросы, интервью с удалившими
  3. Behavioral: Анализ последовательности действий перед удалением
  4. Temporal: Когда удаляют (день недели, время суток)

SQL для анализа churn

-- Когортный анализ
WITH cohorts AS (
  SELECT 
    user_id,
    DATE_TRUNC('month', signup_date)::date as cohort,
    DATE_TRUNC('month', last_activity_date)::date as activity_date,
    (DATE_PART('year', DATE_TRUNC('month', last_activity_date)) - 
     DATE_PART('year', DATE_TRUNC('month', signup_date))) * 12 +
    (DATE_PART('month', DATE_TRUNC('month', last_activity_date)) - 
     DATE_PART('month', DATE_TRUNC('month', signup_date))) as months_since_signup
  FROM users
)
SELECT 
  cohort,
  months_since_signup,
  COUNT(DISTINCT user_id) as active_users,
  LAG(COUNT(DISTINCT user_id)) OVER (PARTITION BY cohort ORDER BY months_since_signup) as prev_month_users,
  ROUND(100.0 * COUNT(DISTINCT user_id) / 
    LAG(COUNT(DISTINCT user_id)) OVER (PARTITION BY cohort ORDER BY months_since_signup), 1) as retention_pct
FROM cohorts
GROUP BY 1, 2
ORDER BY 1 DESC, 2;

Insights из анализов

  1. День 7: Критическая точка. Если юзер не активен на 7-й день, вероятность удаления 60%+
  2. Новые пользователи: Первые 14 дней определяют судьбу. Если not engaged → удалит
  3. Bagging: Часто есть волна удалений через 30 дней (когда кончается trial)
  4. Сезонность: Удаления выше перед выходными, в праздники

Результаты в моей практике

  • Снизил чистый churn с 5%/месяц на 2%/месяц через целевые вмешательства
  • Предсказал 75% churn до того, как произойдёт
  • Сохранил $5-10M в annual revenue через proactive retention efforts