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

Каким проектом гордишься?

1.3 Junior🔥 241 комментариев
#Soft skills и мотивация#Опыт и проекты

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

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

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

Проект, которым я горжусь

Хочу рассказать о проекте, который был особенно интересен и принес реальную ценность компании.

Контекст проекта

Я работал в SaaS компании, которая предоставляла CRM решение для продаж команд. Компания развивалась, но была одна серьезная проблема: мы не понимали, почему некоторые клиенты быстро уходили (churn), а другие становились лояльными.

Проблема

Маркетинг и продажи сосредоточились на привлечении новых клиентов и увеличении MRR (Monthly Recurring Revenue). Но мы игнорировали то, что происходит после продажи:

  • Retention падал — 30% клиентов уходили в течение первых 3 месяцев
  • Нет прогнозирования — мы узнавали об уходе клиента только когда он отменял подписку
  • Непонимание причин — почему одни остаются, а другие нет?
  • Прибыль деградировала — LTV (Lifetime Value) был очень низким

Моя инициатива

Я предложил провести полный анализ жизненного цикла клиента и построить систему предсказания churn. Вот как я это сделал.

Этап 1: Исследование и гипотезы

Я начал с простых вопросов:

  1. Какие клиенты остаются, а какие уходят?
  2. Есть ли различия в поведении на ранних этапах?
  3. Какие события предшествуют уходу?

Я провел анализ когорт и выявил, что:

  • Клиенты, которые добавили >5 пользователей в первую неделю, имели 80% шанс остаться
  • Клиенты, которые сделали первую продажу в CRM на 2+ неделю, часто уходили
  • Клиенты, которые использовали продвинутые функции в первый месяц, редко уходили

Этап 2: Построение модели прогнозирования

Я собрал все доступные данные и построил простую модель логистической регрессии.

Переменные в модели:

1. Поведенческие:
   - Количество приглашенных пользователей
   - Количество созданных контактов
   - Количество совершенных звонков/встреч в первые 7 дней
   - Использование интеграций (календарь, email)
   
2. Контрактные:
   - Размер подписки (годовой vs месячный)
   - Размер команды на момент покупки
   - Отрасль клиента
   
3. Поддержка:
   - Время первого ответа на запросы в чате
   - Количество обращений в первый месяц

SQL для подготовки данных:

WITH user_engagement AS (
  SELECT 
    user_id,
    DATE(signup_date) as signup_date,
    COUNT(DISTINCT invited_user_id) as invited_users_week_1,
    COUNT(DISTINCT contact_id) as contacts_created_week_1,
    COUNT(*) FILTER (WHERE event = 'call_made' AND DATE(created_at) <= signup_date + 7) as calls_week_1,
    MAX(CASE WHEN subscription_type = 'annual' THEN 1 ELSE 0 END) as is_annual,
    COUNT(DISTINCT CASE WHEN used_integration THEN integration_name END) as integrations_used,
    CASE 
      WHEN churn_date IS NOT NULL THEN 1 
      ELSE 0 
    END as churned
  FROM users
  LEFT JOIN user_events ON users.id = user_events.user_id
  GROUP BY user_id, signup_date
)
SELECT * FROM user_engagement;

Этап 3: Результаты и внедрение

Модель показала:

  • Accuracy: 78% на тестовом наборе
  • Precision for churn: 85% — если модель говорит, что клиент уйдет, она права в 85% случаев

Это означало, что мы можем выявить рискованных клиентов за 2-3 недели до их ухода.

Действия, которые мы предприняли:

  1. Автоматизированная диагностика — система автоматически помечала клиентов с высоким риском churn

  2. Целевые интервенции:

    • Success команда связывалась с клиентом
    • Предлагали дополнительное обучение или демонстрацию функций
    • Давали скидку для годового контракта
    • Добавляли в приоритетную поддержку
  3. Дашборд для руководства:

SELECT 
  DATE_TRUNC('week', signup_date) as cohort_week,
  COUNT(*) as total_customers,
  COUNT(CASE WHEN churn_risk_score > 0.6 THEN 1 END) as high_risk,
  COUNT(CASE WHEN churned THEN 1 END) as actual_churned,
  ROUND(100.0 * COUNT(CASE WHEN churned THEN 1 END) / COUNT(*), 1) as churn_rate
FROM user_predictions
GROUP BY DATE_TRUNC('week', signup_date)
ORDER BY cohort_week DESC;

Этап 4: Результаты

До внедрения (месячные метрики):

  • Churn rate: 12% в месяц (~30% за 3 месяца)
  • Net Revenue Retention: 85%
  • Средний LTV: $3,000

После внедрения (через 6 месяцев):

  • Churn rate: 7% в месяц
  • Net Revenue Retention: 92%
  • Средний LTV: $4,500

Финансовое влияние:

  • За год: дополнительный $500k+ в выручке
  • ROI проекта: 5:1 (инвестировали 2 месяца моего времени)

Почему я горжусь этим проектом

  1. Данные привели к решению — не просто красивые дашборды, а реальное влияние на бизнес

  2. Кросс-функциональное сотрудничество — работал с Support, Product, Sales, Engineering

  3. Масштабируемость — модель работала автоматически, не требуя человеческого вмешательства

  4. Обучение — пришлось углубиться в ML, SQL, Python, статистику

  5. Долгосрочный эффект — система работала и через год, постоянно улучшая результаты

Что я выучил

  1. Простые модели часто лучше — не нужен сложный XGBoost, логистическая регрессия сработала отлично

  2. Качество данных критично — потратил 40% времени на очистку и валидацию данных

  3. Вовремя узнать о проблеме — важнее, чем идеально ее решить

  4. Нужна гипотеза — сначала I предположил что будет важно, потом проверил

  5. Автоматизация масштабируется — ручной процесс никогда не сработает для 100+ клиентов в неделю

Технические подробности

Stack:

  • Python (scikit-learn для модели)
  • PostgreSQL (хранилище всех данных)
  • Looker (дашборды для внутреннего использования)
  • Celery (автоматизация проверок и уведомлений)

Код модели (упрощенно):

from sklearn.linear_model import LogisticRegression
from sklearn.preprocessing import StandardScaler
import pandas as pd

# Загружаем данные
df = pd.read_sql("""
  SELECT invited_users_week_1, contacts_week_1, calls_week_1, 
         is_annual, integrations_used, churned
  FROM user_engagement
""", conn)

# Подготовка
X = df.drop('churned', axis=1)
y = df['churned']

scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

# Обучение
model = LogisticRegression(random_state=42)
model.fit(X_scaled, y)

# Сохраняем вероятность churn для каждого клиента
churn_predictions = model.predict_proba(X_scaled)[:, 1]

Наследие проекта

Даже после моего ухода из компании:

  • Система все еще используется
  • Была расширена новыми переменными
  • Стала основой для системы прогнозирования LTV
  • Обучила команду аналитиков использовать ML подход

Этот проект показал мне, что лучший Product Analyst — тот, кто не просто рисует графики, а решает реальные бизнес-проблемы с помощью данных.

Каким проектом гордишься? | PrepBro