Перейти к содержанию
КейсыМодельДанные

Риск клиента виден до потери маржи

Активность, отгрузки, маржа и структурные изменения собраны в один сигнал с причиной, владельцем и сроком действия.

Сделал: Аналитическая модель, пороги, витрина решения

Ранний сигнал по клиенту получил владельца и срокAdvanced Health Score и витрина клиентской маржи

ВопросПочему клиент попал в зону риска?

Клиент C-03 — высокий риск: 52 из 67 потерянных баллов дают деньги клиента и ритм отгрузок

3,2 млн ₽/мес маржи под риском. Остановить стандартный сценарий скидки и назначить разбор клиента с владельцем маржи и отгрузок.

набранные баллыпотерянные баллыдлина дорожки — вес компонента · сумма весов 100

Клиент приносит меньше денег?

Транзакционный вклад почти исчерпан.

Что измеряет: маржа, число отгрузок и прибыль на одну отгрузку. Компонент 10 из 100 → 3 из 30 баллов индекса.

Кто решает и к какому сроку

Владелец
Комдир + финконтроль · менеджер готовит план удержания
Срок
эскалация сегодня
Ограничение
финконтроль блокирует стандартные скидки до разбора
Успех
зафиксирован план удержания, а следующий индекс перестаёт падать

3 флага: клиент приносит намного меньше денег, пропущен ритм отгрузок, ухудшение ускоряется. Экспозиция, а не прогноз потери; требуется подтверждение фактом следующего цикла.

В заявку попадёт тема Клиентская маржа: ранний сигнал риска (C-03: деньги клиента, ритм отгрузок).

Ситуация

С чего всё начиналось

Проект связывает клиентскую маржу, ритм отгрузок, динамику, стабильность, вовлечённость и структурные изменения с конкретным решением коммерческой команды.

Риск клиента становился заметен уже после просадки маржи: факторы здоровья жили в ручных сверках, чатах и отдельных выгрузках, а ранний сигнал не имел владельца.

Что изменено

Что я сделал

Собрал витрину Advanced Health Score поверх ClickHouse: зафиксировал формулу из семи компонентов, риск-пороги, причины отклонения, владельца и очередь действий.

  • Фильтры должны одинаково влиять на матрицу, план и переходы.
  • Плановые значения хранятся отдельно от факта и сравниваются в единой периодной структуре.
  • Базовый транзакционный слой сравнивает маржу, число отгрузок и среднюю прибыль на отгрузку за два трёхмесячных окна.
  • Advanced Health Score складывается из семи компонентов с весами 30/25/15/10/10/7/3 и порогами риска 80/65/45/30.

Что получилось

Результат

Клиентский риск стал виден до потери маржи — с причиной, владельцем и сроком

  • Коммерческая и финансовая команды получили общий клиентский пульс вместо отдельных таблиц и чатов.
  • Риск виден до потери маржи: score раскладывается до ритма, динамики, вовлечённости и структурных сдвигов.
  • Каждый сигнал получает владельца, срок и проверяемый критерий закрытия.

Как это проверено

Проверка и границы

  • Сумма взвешенных вкладов семи компонентов совпадает с итоговым score.
  • Порог риска однозначно определяется диапазонами 80/65/45/30.
  • Риск-флаг трассируется до входной метрики и владельца действия.

демо-данные; логика критериев перенесена из расширенной модели health score. score объясняет сигнал, но не заменяет решение руководителя и контекст клиента.

Техническое приложение

Как устроено внутри

Для тех, кто проверяет решение по существу: источники, слои данных, правила расчёта и артефакты передачи.

Архитектура, данные и методология

Архитектура

ИсточникиClickHouse client health marts · операционные события отгрузок · спецификации и менеджеры
ЗагрузкаExpress API · cached queries
ХранениеClickHouse · browser draft state
ПредставлениеReact экран решения · Excel export

Модель данных

ОбъектСлойНазначение
vw_client_health_advanced_periodmartscore, компоненты и риск-флаги по периоду
vw_client_health_advanced_dailymartсвежий клиентский пульс и очередь сигналов
client_shipments_specsfactотгрузки, спецификации, ритм и вовлечённость

Методология и правила

  • Построил клиентский контур маржинальности: клиент, менеджер, период, маржа, отгрузки, средняя прибыль и ритм заказа.
  • Разделил итоговый score и его причины: транзакционный слой, ритм, ускорение, стабильность, вовлечённость, структура и контекст риска.
  • Добавил риск-флаги для срыва ритма, негативного ускорения, падения вовлечённости, смены структуры портфеля и ротации менеджера.
  • Итоговый score 0–100 считается как 30% транзакционного здоровья, 25% ритма, 15% ускорения, 10% стабильности, 10% вовлечённости, 7% структуры и 3% контекста риска.
  • Риск-пороги: от 80 — стабильный, от 65 — низкий риск, от 45 — средний, от 30 — высокий, ниже 30 — критический.
  • Score не заменяет решение: экран показывает вклад каждого компонента, риск-флаги и следующее действие до ожидаемой отгрузки или продления.

Артефакты и стек

ReactViteExpressClickHouseExcel Export

Dashboard · Data Model · План-факт · Финансовые правила

Что бы сделал иначе

  • Операционный экран должен быть быстрым и узко заточенным под рабочий сценарий.
  • Local draft полезен для планирования, но требует явной политики сохранения.
  • Кеширование запросов важно для больших ClickHouse витрин.

Похожая задача?

Расскажите, где у вас расходятся цифры или не хватает картины. Отвечу, чем это лечится и с чего начать.

Обсудить похожую задачу