Промпты для ABC- и RFM-анализа полезны не потому, что чат способен проглотить любую выгрузку и мгновенно посчитать сегменты. Его сильная сторона другая: помочь выбрать методику, заметить неоднозначные поля, написать SQL, формулы или Python-код, а затем объяснить небольшую таблицу с итогами.

В чат-режиме Agent Roi нет подключения к CRM, базе данных и Excel, а код не запускается автоматически. Поэтому рабочий процесс выглядит так: вы описываете данные и правила, чат готовит расчёт, вы выполняете его в своей системе, проверяете контрольные суммы и возвращаете обезличенные агрегаты для интерпретации.

Ниже — готовые промпты, системный промпт и примеры ответов для такого сценария. Их можно адаптировать под продажи, ассортимент, клиентов или услуги.

Что реально может чат в ABC- и RFM-анализе

ABC-анализ ранжирует выбранные объекты по вкладу в показатель. Например, товары можно отсортировать по выручке или марже, рассчитать долю каждого товара и накопленную долю, а затем присвоить классы A, B и C. В актуальной документации Microsoft класс также определяется через накопленный процент продаж и настраиваемые границы — единственных обязательных порогов для всех компаний нет. Подробнее этот принцип описан в метриках ABC Classification.

RFM-анализ работает с клиентами и отвечает на три вопроса:

  • Recency: как давно клиент совершил последнюю покупку;
  • Frequency: сколько покупок он совершил за выбранный период;
  • Monetary: сколько денег принесли эти покупки.

Так RFM определяет и Oracle. Баллы 1–5 удобны, но это не закон природы. В Dynamics 365, например, можно выбрать число групп, равное распределение клиентов, веса показателей, валовую или чистую сумму и правило учёта возвратов. Значит, чат не должен выбирать эти настройки молча — он обязан сначала спросить о бизнес-правилах. Возможные параметры собраны в документации Microsoft по RFM.

В обычном чате можно:

  1. проверить схему и найти неоднозначности;
  2. сравнить варианты методики;
  3. получить SQL под конкретный диалект;
  4. получить формулы Excel или Python-код;
  5. разобрать ошибку после запуска;
  6. интерпретировать компактные агрегаты;
  7. сформулировать гипотезы для маркетинга и продаж.

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

ABC, RFM или оба метода: что выбрать

ЗадачаМетодОбъектРезультат
Понять, какие товары, клиенты или категории дают основную долю показателяABCТовар, клиент, категория, услугаКласс A, B или C по накопленному вкладу
Разделить покупателей по давности, частоте и сумме покупокRFMКлиентБаллы R, F, M и бизнес-сегмент
Отделить ценных активных клиентов от ценных, но давно не покупавшихABC + RFMКлиентВклад клиента плюс состояние отношений

ABC отвечает на вопрос «кто формирует результат», а RFM — «как клиент покупал в выбранном периоде». Например, два клиента могут попасть в класс A по выручке. Но у одного последняя покупка была вчера, а у другого — девять месяцев назад. RFM покажет эту разницу.

Сочетать методы лучше после отдельных расчётов. Сначала проверьте ABC-класс и три RFM-признака, затем соедините результаты по стабильному идентификатору клиента. Не просите модель сразу придумать двадцать сегментов: начните с тех, для которых есть понятное действие.

Какие данные и правила подготовить до первого запроса

Не начинайте с фразы «сделай RFM-анализ моей базы». Передайте модели контракт данных:

  1. Бизнес-вопрос: какое решение вы хотите принять.
  2. Объект анализа: клиент, товар, категория или услуга.
  3. Тип одной строки: заказ или позиция заказа. Это критично: пять строк одной покупки нельзя считать пятью покупками.
  4. Схема: поле, смысл, тип данных и пример значения.
  5. Период: начало, конец и фиксированная дата анализа.
  6. Фильтры: оплаченные заказы, отмены, тестовые записи, корпоративные клиенты.
  7. Деньги: выручка или маржа, сумма до или после скидки, валовая или чистая, правило возвратов, валюта.
  8. Пороговые правила: границы ABC и способ получения баллов RFM.
  9. SQL-диалект или среда: PostgreSQL, ClickHouse, BigQuery, Excel, Google Таблицы, Python.
  10. Контрольные итоги: число заказов, число клиентов и сумма показателя после фильтров.
  11. Образец: 10–30 обезличенных строк, включая возврат, дубль и клиента с одной покупкой.

Для большой таблицы образец нужен не для финального подсчёта, а чтобы чат понял структуру. Дополнительно можно передать профиль данных: количество строк, долю пропусков, минимальную и максимальную дату, число уникальных клиентов и заказов. Идентификаторы замените на client_001, order_001; имена, телефоны и адреса для расчёта не нужны.

Рабочий процесс для таблицы на десятки тысяч строк

Четыре этапа ABC- и RFM-анализа через обычный чат: описание данных, получение кода, запуск вне чата и интерпретация агрегатов

Чат проектирует и объясняет расчёт, а большая таблица обрабатывается в вашей рабочей среде.

  1. Опишите схему, гранулярность, бизнес-правила и передайте небольшой образец.
  2. Попросите сначала спецификацию расчёта, затем SQL, формулы или Python.
  3. Запустите результат вне чата и сравните его с контрольными итогами.
  4. Верните компактную таблицу: сегмент, число клиентов, выручка, средний чек, медианная давность и изменение к прошлому периоду.

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

Готовые промпты для ABC- и RFM-анализа

1. Проверить схему до расчёта

Я готовлю ABC- и RFM-анализ. Пока не пиши SQL и не считай результат.

Цель: [решение].
Одна строка: [заказ / позиция заказа].
Схема: [поле / смысл / тип / пример].
Период: [даты].
Фильтры: [статусы и исключения].
Образец: [10–30 обезличенных строк].
Контрольные итоги после фильтров: [строки, заказы, клиенты, сумма].

Проверь, достаточно ли данных. Найди неоднозначности в идентификаторах, датах, суммах, дублях, отменах и возвратах. Верни:
1) критичные вопросы;
2) таблицу «Риск / Почему влияет / Как проверить»;
3) рекомендуемую гранулярность для ABC и RFM.
Не придумывай отсутствующие правила.

Пример фрагмента хорошего ответа:

Критичный вопрос 1: строка означает заказ или товарную позицию?
Влияние: если это позиция, COUNT(*) завысит Frequency. Нужен COUNT(DISTINCT order_id).

Критичный вопрос 2: amount уже уменьшен на возврат?
Влияние: иначе Monetary и вклад в ABC будут завышены.

Проверка: после фильтра status = 'paid' число уникальных order_id должно совпасть с контрольным значением 18 420.

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

2. Выбрать методику и зафиксировать определения

На основе согласованной схемы подготовь спецификацию ABC- и RFM-анализа без кода.

Для ABC укажи: объект, метрику, сортировку, формулу доли, формулу накопленной доли и границы классов. Пороги 80/95/100 используй только как стартовый вариант и явно пометь их как настраиваемые.

Для RFM укажи: фиксированную analysis_date, формулы Recency, Frequency и Monetary, период наблюдения, фильтры, способ присвоения баллов 1–5 и правило одинаковых значений на границах.

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

3. Получить SQL для ABC-анализа

Напиши SQL для ABC-анализа в PostgreSQL 18.

Таблица: order_items.
Одна строка: позиция заказа.
Поля: order_id, paid_at, product_id, status, net_revenue, margin.
Период: 2026-01-01 включительно — 2026-07-01 не включительно.
Включать только status = 'paid'.
Объект: product_id.
Метрика: SUM(margin).
Границы: A — накопленная доля до 80% включительно, B — свыше 80% до 95% включительно, C — свыше 95%.

Сначала словами опиши этапы. Затем верни один запрос на CTE, который показывает product_id, metric_value, value_share, cumulative_share и abc_class. Не используй NTILE для ABC. Добавь стабильную сортировку product_id при одинаковой марже, комментарии и три контрольных запроса: итоговая маржа, число товаров и сумма долей. Не утверждай, что запускал SQL.

Почему запрет на NTILE указан прямо? В PostgreSQL эта функция делит строки на приблизительно равные по числу группы. ABC же обычно опирается на накопленную долю показателя. cume_dist тоже описывает положение строк в распределении, а не долю денежного вклада. Различия функций зафиксированы в актуальной документации PostgreSQL.

Ожидаемая форма ответа:

Этап 1. Суммировать margin по product_id.
Этап 2. Рассчитать общую margin и долю каждого товара.
Этап 3. Отсортировать по metric_value DESC, product_id.
Этап 4. Рассчитать SUM(metric_value) OVER (...) / total_value.
Этап 5. Присвоить A/B/C по заданным границам.

Контроль:
- SUM(metric_value) в результате = SUM(margin) исходных строк после фильтра;
- SUM(value_share) близка к 1 с учётом округления;
- каждый product_id встречается один раз.

4. Получить SQL для RFM-анализа

Напиши SQL для RFM-анализа в PostgreSQL 18.

Таблица: orders.
Одна строка: один заказ.
Поля: order_id, customer_id, paid_at, status, net_amount.
Период покупок: 2025-07-01 включительно — 2026-07-01 не включительно.
analysis_date: DATE '2026-07-01'.
Включать status = 'paid'; net_amount уже учитывает возвраты.

Формулы:
- recency_days = analysis_date - MAX(paid_at::date);
- frequency_orders = COUNT(DISTINCT order_id);
- monetary_value = SUM(net_amount).

Присвой каждой метрике балл 1–5 по квинтилям: меньшая recency получает больший балл, большие frequency и monetary — больший балл. Явно обработай одинаковые значения и объясни выбранное правило. Верни один SQL на CTE с полями customer_id, три исходных показателя, r_score, f_score, m_score и код rfm_code. Добавь контрольные запросы и предупреждение для малой выборки. Не придумывай названия бизнес-сегментов без отдельной таблицы правил.

Пример части ответа на условных тестовых данных после запуска запроса пользователем:

customer_idrecency_daysfrequency_ordersmonetary_valuerfm_code
client_014512184500555
client_02718342600433
client_0912109167000155

Здесь 155 не означает «плохой клиент». Это описание: покупал давно, но раньше покупал часто и на большую сумму. Действие для такого клиента — гипотеза, а не математический вывод.

5. Получить формулы Excel или Python вместо SQL

Расчёт нужно выполнить в [Excel 365 / Python pandas], а не в SQL. Используй уже согласованные определения ABC и RFM. Сначала перечисли структуру промежуточных таблиц и порядок расчёта. Затем дай [формулы для структурированных ссылок / полный Python-скрипт].

Ограничения: исходник большой, поэтому не предлагай вставлять его в чат. Не меняй названия колонок. Добавь проверки числа уникальных заказов, суммы net_amount и одной вручную выбранной карточки клиента. Я выполню расчёт сам и верну ошибку или агрегаты.

Если вы выбираете Excel, заранее укажите язык интерфейса и разделитель аргументов. Для Python — версию, формат файла, кодировку и ожидаемый путь вывода.

6. Исправить ошибку после запуска

Я выполнил твой SQL в PostgreSQL 18 и получил ошибку:
[полный текст ошибки].

Ниже актуальная схема и полный запрос:
[схема]
[SQL]

Сначала объясни причину простыми словами. Затем верни полный исправленный запрос, а не отдельный фрагмент. Не меняй бизнес-правила, период и фильтры. В конце добавь проверку, которая воспроизводит именно эту проблему на пяти тестовых строках.

7. Интерпретировать агрегаты без выдуманных причин

Ниже обезличенные агрегаты RFM по двум периодам: segment, customers, revenue, avg_check, median_recency_days, repeat_rate и изменение показателей.

[таблица до 30 строк]

Проанализируй только переданные значения. Отделяй наблюдения от гипотез. Для каждого важного сегмента верни:
1) наблюдение с цифрами;
2) возможные объяснения, помеченные как гипотезы;
3) одно действие;
4) метрику проверки;
5) риск неверной интерпретации.

Не называй причин, которых нет в данных, и не обещай рост продаж.

Пример ответа:

Наблюдение: в сегменте «ценные, давно не покупали» 412 клиентов, 14% клиентской базы и 28% выручки предыдущего периода. Медианная давность выросла с 74 до 103 дней.

Гипотеза: часть клиентов могла исчерпать обычный цикл повторной покупки. Данные не показывают, ушли ли они к конкуренту.

Действие: проверить реактивационную коммуникацию на случайной контрольной группе.
Метрика: дополнительная доля повторных покупок за 30 дней относительно контроля.

8. Сравнить стабильность сегментов по периодам

У меня есть две агрегированные таблицы ABC/RFM за соседние периоды и матрица переходов клиентов между сегментами. Проверь, какие переходы самые массовые, где меняется вклад в выручку и какие выводы могут быть артефактом новых порогов. Сначала сравни правила расчёта и состав базы; если они различаются, не переходи к бизнес-выводам. Верни наблюдения, вопросы и план ручной проверки.

Обычный промпт и системный промпт: в чём разница

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

Обычный промптСистемный промпт
Меняется от расчёта к расчётуСохраняет роль и правила диалога
Содержит конкретную схему и периодСодержит порядок работы и ограничения
Просит SQL, формулы или разборОпределяет, как чат должен отвечать
Сам по себе подходит для разовой задачиПолезен для серии итераций в одном чате

Системный промпт не подключает инструменты и не превращает чат в агента. Если в интерфейсе нет отдельного поля для системной инструкции, отправьте его первым сообщением, а затем — конкретную задачу. Чёткая цель, контекст, формат и примеры соответствуют рекомендациям OpenAI и Anthropic по построению управляемых промптов.

Системный промпт аналитика ABC/RFM

Ты — помощник аналитика по ABC- и RFM-сегментации в обычном чате. У тебя нет прямого доступа к базе, CRM, Excel, файлам пользователя и среде выполнения. Ты не запускаешь SQL, формулы или Python и не утверждаешь, что проверил результат.

Перед расчётом выясняй:
- бизнес-вопрос и объект анализа;
- что означает одна строка;
- схему и SQL-диалект или рабочую среду;
- период и фиксированную дату анализа;
- статусы, отмены, возвраты, валюту и правило суммы;
- уникальные идентификаторы клиента и заказа;
- метрику и границы ABC;
- определения Recency, Frequency и Monetary;
- способ скоринга, веса и правило одинаковых значений;
- контрольные итоги и обезличенный образец.

Для большой таблицы проси не все строки, а схему, профиль, 10–30 обезличенных строк и контрольные суммы. Сначала возвращай спецификацию расчёта. Код пиши только после подтверждения правил и только под указанную среду.

Не подменяй накопленную долю ABC функцией NTILE. Не считай строки позиций заказами. Не придумывай сегменты, причины поведения и финансовые результаты. Отделяй наблюдения от гипотез.

Каждый технический ответ должен содержать:
1) принятые определения;
2) полный код или формулы без пропусков;
3) допущения;
4) контрольные проверки;
5) инструкцию, что пользователь выполняет вне чата и что вернуть для следующего шага.

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

Пример первого сообщения после системного промпта

Нужно сегментировать клиентов интернет-магазина, чтобы выбрать группы для повторных коммуникаций. Одна строка таблицы orders — один заказ. PostgreSQL 18. Поля: order_id UUID, customer_id UUID, paid_at timestamptz, status text, net_amount numeric(14,2). Период: 2025-07-01 — 2026-07-01, дата анализа 2026-07-01. Берём только paid; net_amount уже уменьшен на возвраты. Контроль: 18 420 заказов, 6 380 клиентов, сумма 47 260 000 руб. Сначала проверь определения и предложи методику; SQL пока не пиши.

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

Какую модель выбрать на дату публикации

По практике редакции, русскоязычные аналитические задачи с неоднозначными бизнес-правилами лучше отдавать сильной актуальной модели OpenAI или Anthropic. Это наблюдение из работы, а не универсальный рейтинг всех провайдеров.

На дату публикации официальный каталог OpenAI называет GPT-6 Astra наиболее способной моделью для сложной сквозной работы, включая рассуждение, код, исследования и документы. Anthropic называет Claude Fable 5.1 своей наиболее способной общедоступной моделью для сложной работы с кодом и знаниями. Для более экономичных итераций у Anthropic актуален Claude Sonnet 5.

Название модели не исправит пустой контекст. Даже сильная модель напишет сомнительный запрос, если не знает, что означает строка, как учесть возвраты и какую дату считать точкой анализа.

Что проверить вручную после расчёта

Сравнение ABC, RFM и их сочетания по объекту, логике и ключевой проверке

ABC показывает вклад в показатель, RFM — историю покупательского поведения; совместный анализ требует проверить оба расчёта отдельно.

  1. Гранулярность: один заказ не размножился из-за соединения с позициями.
  2. Уникальность: каждый объект ABC и каждый клиент RFM встречается в финальной таблице один раз.
  3. Период: нижняя и верхняя границы трактуются одинаково во всех запросах.
  4. Recency: вручную пересчитайте три клиента от фиксированной analysis_date.
  5. Frequency: сравните COUNT(DISTINCT order_id) с карточками клиентов.
  6. Monetary: сверяйте общую сумму после статусов, отмен и возвратов.
  7. ABC: сумма долей близка к 100%, накопленная доля не уменьшается, классы соответствуют согласованным границам.
  8. Ties: одинаковые значения на границе получают объяснимое и воспроизводимое назначение.
  9. RFM-баллы: меньшая давность даёт больший R-score; большие частота и сумма — большие F- и M-score.
  10. Размер групп: при малом числе клиентов квинтили могут быть нестабильны или пусты.
  11. Сравнение периодов: правила, валюта и состав базы не менялись незаметно.
  12. Бизнес-смысл: название сегмента не выдаётся за доказанную мотивацию клиента.

Отдельно сохраните версию запроса и параметры расчёта. Иначе через месяц невозможно будет понять, сегмент изменился из-за поведения клиентов или из-за новой формулы.

Что Agent Roi сможет сделать — и чего не сможет

В одном диалоге Agent Roi поможет пройти интеллектуальную часть работы: сформулировать методику, подготовить SQL или формулы, разобрать ошибку, проверить логику и превратить компактные агрегаты в проверяемые гипотезы. Контекст предыдущих сообщений удобен: после согласования определений не нужно каждый раз заново объяснять, что считать заказом и как учитывать возвраты.

Но чат не подключается к хранилищу, не запускает запрос, не видит полную базу и не обновляет сегменты по расписанию. Для регулярного процесса понадобятся аналитик, защищённая среда исполнения и контроль качества. Чат остаётся проектировщиком и собеседником, а не скрытым вычислительным сервисом.

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

Связанные материалы

Откройте Agent Roi, вставьте системный промпт и начните с описания схемы — без полной клиентской базы и персональных данных. Первый полезный результат здесь не список «чемпионов», а согласованный расчёт, который можно воспроизвести и проверить.

Больше материалов по теме — в разделе «Промпты».