Одна из самых частых проблем Customer Success — вовремя заметить, что ключевой клиент собирается уйти. Традиционные дашборды и ручные обходы CSM дают картину с опозданием на 1-2 квартала. Мы предлагаем построить ML-систему Customer Health Scoring (CHS), которая детектирует сигналы оттока за 90 дней до фактического ухода. На одном из проектов B2B SaaS точность прогноза достигла AUC 0.89, что позволило спасти 15% оттока. По данным исследования Gartner, компании, использующие AI для прогнозирования оттока, сокращают churn в среднем на 25%.
Какие проблемы решает ML-модель CHS?
Customer Health Score (CHS) — интегральный показатель того, насколько клиент вовлечён в продукт и насколько вероятно продление или отток. Для B2B SaaS и подписочных сервисов это ведущий индикатор NRR (Net Revenue Retention). ML-подход позволяет перейти от интуиции CSM к объективной, воспроизводимой оценке. Основные проблемы, которые решает система:
- Неоднозначность сигналов: снижение usage может быть сезонным, а не признаком оттока. ML-модель учитывает контекст.
- Запаздывание реакции: ручные обходы дают картину с задержкой в 1-2 месяца, а модель работает в реальном времени.
- Разрозненность данных: данные из CRM, support, product analytics объединяются в единый pipeline.
Типичные ошибки rule-based систем: они часто пропускают сложные комбинации сигналов. Например, снижение usage само по себе может быть неопасным, но в сочетании с upcoming renewal и отсутствием champion становится критическим. ML-модель выявляет такие нелинейные взаимодействия.
Как ML-модель улучшает Customer Health Scoring?
Сигналы для модели
Product Usage:
- DAU/WAU/MAU: активность основных юзеров аккаунта
- Feature adoption: процент ключевых фич, задействованных в последние 30 дней
- Глубина использования: advanced features vs. базовые
- Стагнация: снижение использования за последние 4 недели
Support & Success сигналы:
- Открытые тикеты без ответа > 3 дней — отрицательный сигнал
- NPS, CSAT оценки за последние 6 месяцев
- EBR (Executive Business Review) состоялся — положительный сигнал
- Escalations: жалобы уровня руководства
Коммерческие индикаторы:
- Renewal date proximity: < 90 дней → повышенное внимание
- Expansion или сокращение в последние 12 месяцев
- Invoice payment delays: просрочки платежей
- Contract modifications: попытки пересмотреть условия
Relationship сигналы:
- Sponsor changes: ушёл champion из аккаунта — высокий риск
- Multi-threading: скольких контактов знает CSM (< 2 = single-threaded)
- Last meaningful interaction: когда последний раз был реальный разговор
Feature Engineering
def compute_customer_health_features(account_id, lookback_days=90): usage = get_product_usage(account_id, lookback_days) support = get_support_tickets(account_id, lookback_days) commercial = get_crm_data(account_id) return { # Usage trends 'usage_trend_slope': np.polyfit(range(lookback_days), usage['daily_active_users'], 1)[0], 'feature_adoption_score': len(usage['active_features']) / total_key_features, 'power_user_ratio': usage['high_frequency_users'] / usage['total_seats'], # Support health 'open_critical_tickets': support[support['priority'] == 'critical']['count'], 'avg_resolution_time_days': support['avg_resolution_time'], 'recent_nps': support['last_nps_score'], # Commercial 'days_to_renewal': (commercial['renewal_date'] - today).days, 'logo_expansion_12m': commercial['arr_change_12m'], 'payment_delay_days': commercial['avg_payment_delay'], # Relationship 'sponsor_change_6m': commercial['sponsor_changed_flag'], 'contacts_known': commercial['known_contacts_count'], 'days_since_last_call': (today - commercial['last_substantive_contact']).days } Модели и архитектура
Composite Score (правиловой baseline):
def rule_based_health_score(features): score = 100 # начинаем со 100 # Usage penalties if features['usage_trend_slope'] < -0.1: score -= 20 if features['feature_adoption_score'] < 0.3: score -= 15 # Support penalties if features['open_critical_tickets'] > 0: score -= 25 if features['recent_nps'] and features['recent_nps'] < 7: score -= 15 # Commercial risk if features['days_to_renewal'] < 60 and features['logo_expansion_12m'] < 0: score -= 20 return max(0, min(100, score)) ML-модель поверх: LightGBM или Logistic Regression обученная на исторических данных "продлил/ушёл" через 12 месяцев. Преимущество vs. правила: выявляет нелинейные взаимодействия (например, снижение usage само по себе — не риск, но в сочетании с upcoming renewal — критично).
Temporal validation:
# Walk-forward: обучаем на когортах < 12 месяцев назад, предсказываем на более поздних # Метрика: AUC на 90-day churn prediction # Baseline: просто renewal date + последний NPS Почему стоит автоматизировать CHS с помощью AI?
Сравнение rule-based и ML-подходов на реальных данных:
| Характеристика | Rule-based | ML-модель |
|---|---|---|
| Точность (AUC) | 0.70-0.75 | 0.85-0.90 |
| Выявление скрытых рисков | 20% | 55% |
| Время на адаптацию | 1-2 дня | 1-2 недели |
| Масштабируемость | Ограничена | Высокая |
ML-модель выявляет на 35% больше рисков, чем правила, особенно в сценариях с комбинацией сигналов. В одном из проектов точность прогноза оттока за 90 дней оказалась в 1.3 раза выше, чем у лучшего rule-based подхода.
Сегментация риска и действия
Risk Tiers:
| Уровень | Score | Действие |
|---|---|---|
| Healthy | 70-100 | Quarterly check-in, expansion play |
| Attention | 50-69 | Monthly CSM review, fix pain points |
| At Risk | 30-49 | EBR scheduling, exec involvement |
| Critical | 0-29 | Save playbook, potential concessions |
Automated Playbooks:
def trigger_playbook(account, health_score, reason_codes): if health_score < 30: crm.create_task(owner='csm_manager', type='urgent_review', account=account) slack.notify('#csm-alerts', f"CRITICAL: {account.name} score={health_score}") elif health_score < 50 and 'usage_decline' in reason_codes: gainsight.enroll_in_playbook(account, 'activation_campaign') elif health_score > 80 and account.days_to_renewal < 90: crm.create_opportunity(account, type='expansion', amount=account.arr * 0.2) Что входит в работу
| Этап | Результат |
|---|---|
| Аудит данных | Отчёт по доступным источникам: CRM, product analytics, support |
| Feature pipeline | ETL-процесс для ежедневного расчёта признаков |
| Rule-based score | Базовый health score с настройкой правил под ваш продукт |
| ML-модель | Обучение LightGBM с walk-forward валидацией и выбором порогов |
| Интеграция | Подключение к Salesforce/HubSpot, Gainsight/ChurnZero через API |
| Playbooks | Автоматические триггеры в CRM и Slack |
| Документация | Описание модели, метрик, инструкция для CSM |
Процесс работы
- Аналитика: собираем все доступные сигналы, выявляем пропуски в данных.
- Проектирование: определяем окно предсказания (90 дней), выбираем метрики.
- Реализация: строим feature pipeline, rule-based и ML-модели.
- Тестирование: walk-forward валидация, сравнение с baseline.
- Деплой: интеграция с инструментами CS, настройка мониторинга.
Сроки ориентировочно
- Базовое решение (feature pipeline + rule-based + CRM интеграция): от 3 до 4 недель.
- Полное решение (ML-модель + playbooks + Gainsight интеграция): от 6 до 8 недель.
Стоимость рассчитывается индивидуально после аудита данных и объёма интеграций. Свяжитесь с нами для аудита ваших данных и оценки проекта. Получите консультацию по внедрению CHS.
Типичные ошибки при внедрении CHS
- Игнорирование relationship-сигналов: уход champion — один из сильнейших предикторов оттока, но его часто не учитывают.
- Слишком редкое обновление: health score должен пересчитываться ежедневно, а не раз в неделю.
- Отсутствие обратной связи: модель должна учиться на результатах действий CSM (сохранили клиента или нет).
Подробнее о критериях качества
Мы гарантируем прозрачный pipeline и сертифицированных специалистов с опытом более 5 лет в AI/ML.Для начала работы с CHS свяжитесь с нами — мы проведём аудит данных и предложим оптимальное решение.







