Автоматизация цен в магазине — это не алгоритм, который «сам знает, сколько просить». Это коридор с жёсткими упорами и правила, которые двигают цену внутри него. Всё содержательное решение принимается один раз, когда вы определяете нижнюю границу коридора; дальше автоматика только избавляет категорийного менеджера от еженедельного прохода по каталогу и убирает лаг между изменением закупки и изменением розницы.

Типовой провал выглядит так. Правила включили, ограничители не поставили, потому что «сначала посмотрим, как работает». Дальше поставщик прислал прайс с ошибкой, конкурент выставил ликвидационную цену, площадка добавила товар в акцию — и через месяц выясняется, что выручка выросла, а валовая маржа упала. Именно поэтому переоценку измеряют в рублях маржи, а не в выручке: снижение цены почти всегда даёт рост выручки и почти всегда это ничего не доказывает.

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

Три уровня автоматизации цен

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

УровеньЧто делаетЧто нужно на входеВнедрениеЕжемесячноС какого размера окупается
1. Правила от себестоимости и наценкиДержит цену в коридоре маржи, переоценивает позицию в день изменения закупкиДостоверная себестоимость с логистикой, комиссией и упаковкой90 000–180 000 ₽6 000–12 000 ₽от 150–200 активных позиций
2. Реакция на цены конкурентовДвигает цену внутри коридора, оглядываясь на рынокСопоставление ваших позиций с чужими карточками и регулярный сбор цен120 000–300 000 ₽12 000–35 000 ₽ вместе с даннымипримерно от 1 200 активных позиций
3. Рекомендации моделиПредлагает цену по спросу, остатку и сезонности; решение остаётся за человеком12+ месяцев истории продаж по позиции и чистые данные о себестоимости250 000–450 000 ₽25 000–50 000 ₽от 3 000–5 000 позиций и 3 000 заказов в месяц

Третий уровень стоит обсуждать отдельно и осторожно. Модель ищет закономерность в истории продаж, а у магазина на 600 позиций по большинству карточек история — это две-три продажи в месяц. Учиться там не на чем, и результат будет выглядеть как уверенные рекомендации без основания. Реалистичная область применения начинается с каталогов в несколько тысяч активных позиций; состав такой работы и требования к данным описаны на странице решения по оптимизации цен.

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

сравнениеavtomatizatsiya-tsen-v-magazine--01
Три уровня автоматизации цен со стоимостью внедрения и порогом окупаемости каждого

Три ступени лестницы слева направо, каждая подписана. Ступень 1 «Правила от себестоимости»: «90 000–180 000 ₽», «6 000–12 000 ₽/мес», «от 150–200 позиций». Ступень 2 «Реакция на конкурентов»: «120 000–300 000 ₽», «12 000–35 000 ₽/мес», «от 1 200 позиций». Ступень 3 «Рекомендации модели»: «250 000–450 000 ₽», «25 000–50 000 ₽/мес», «от 3 000–5 000 позиций». Под каждой ступенью подпись, что нужно на входе: «себестоимость», «сопоставление с конкурентами», «12 месяцев истории». Сбоку от ступени 2 пунктирная стрелка вниз с перечёркнутой подписью «без ступени 1 — падение за конкурентом». Чертёжная манера, надписи по-русски.

Пропускать уровни нельзя: второй без первого — это следование за конкурентом вниз

Четыре ограничителя, без которых включать нельзя

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

  1. 1
    1. Минимальная цена — от полной себестоимости, а не от закупки

    Считается как закупка плюс логистика до склада, плюс комиссия площадки или эквайринг, плюс упаковка и сборка, плюс целевая минимальная маржа. Именно эта цифра, а не закупочная цена, кладётся в правило как нижняя граница. Типичная ошибка — взять закупку и добавить 15 %: на маркетплейсе с комиссией 20 % такая цена уже убыточна. Минимальную цену пересчитывают при каждом изменении входящего прайса, поэтому она обязана считаться формулой в учётной системе, а не жить в таблице у категорийного менеджера.

  2. 2
    2. Максимальный шаг изменения за сутки

    Разумный коридор — не больше 5–7 % вниз и 10 % вверх за сутки на позицию. Ограничитель нужен не для маркетинга, а как детектор мусора: цена, которая по правилу должна упасть на 40 %, почти всегда означает ошибку во входных данных, а не рыночную ситуацию. Правило при срабатывании не молчит: позиция уходит в список на ручной разбор, и там же видно, какое именно правило запросило такой шаг.

  3. 3
    3. Стоп-лист позиций

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

  4. 4
    4. Потолок доли каталога за один прогон

    Самый недооценённый ограничитель. Если один прогон готов изменить цену более чем у 10–15 % позиций, он останавливается целиком и пишет в журнал причину. Такой массовый пересчёт почти никогда не бывает законным: обычно это неправильно загруженный прайс, сбой в справочнике комиссий или ошибка в самом правиле. Без этого упора одна кривая выгрузка себестоимости переоценивает весь каталог за ночь, и утром магазин торгует по ценам, которых никто не назначал.

Проверка перед включением

Прогоните правила в режиме «только показать» на две недели вперёд по историческим данным и посмотрите список изменений, не применяя их. Если в этом списке есть хотя бы одна позиция, где вы не понимаете, почему цена поменялась именно так, включать рано. Такой холостой прогон стоит 8–12 часов работы и снимает большую часть неприятных сюрпризов первого месяца.

Журнал изменений: единица отката — прогон, а не позиция

Журнал переоценки — это не лог для разработчика, а рабочий инструмент категорийного менеджера. Минимальный состав записи: позиция, прежняя цена, новая цена, время, идентификатор прогона, инициатор — конкретное правило или конкретный человек, — и источник данных, на которых правило приняло решение. Последнее поле кажется избыточным ровно до первого разбора: без него нельзя отличить «правило сработало верно на неверных данных» от «правило сработало неверно».

Ключевое проектное решение — единица отката. Откатывать по одной позиции бесполезно: аварии приходят пачками. Каждый прогон получает идентификатор, все изменения этого прогона помечаются им, и откат делается одной командой по идентификатору, с проверкой, что цена с тех пор не менялась вручную. Такой откат стоит 10–16 часов на этапе разработки и один раз спасает выходные всему отделу.

  • Хранение записей — не меньше 12 месяцев: спор с поставщиком о рекомендованной цене или разбор просадки маржи приходит с задержкой в квартал.
  • Доступ к журналу — у категорийного менеджера и владельца, а не только у подрядчика. Журнал, который видит один подрядчик, доказывает правоту подрядчика.
  • Отдельная отметка о ручных правках: цена, изменённая человеком, не должна выглядеть в журнале так же, как цена, изменённая правилом.
  • Ежедневная сводка из трёх чисел: сколько позиций переоценено, сколько заблокировано ограничителями, сколько ушло на ручной разбор.

У сводки должен быть адресат и правило эскалации. Ежедневное письмо на три числа читает категорийный менеджер; владелец подключается только тогда, когда сработал потолок доли каталога или число позиций на ручном разборе выросло вдвое к среднему за неделю. Без такого правила происходит одно из двух: либо сводку не читает никто, либо её читают все и никто не отвечает. Один ответственный за правила переоценки — такое же обязательное условие проекта, как достоверная себестоимость.

разбор экранаavtomatizatsiya-tsen-v-magazine--02
Нарисованная строка журнала переоценки с прежней и новой ценой, правилом и кнопкой отката прогона

Абстрактный нарисованный экран журнала переоценки. Заголовок «Прогон № 4187, 03.09.2026, 04:15». Строка сводки: «переоценено 74 позиции», «заблокировано ограничителями 9», «на ручном разборе 3». Ниже таблица из четырёх строк с колонками «Позиция», «Было», «Стало», «Правило», «Источник данных», «Кто». Пример строки: «Кружка 300 мл / 690 ₽ / 740 ₽ / наценка от себестоимости / прайс поставщика от 02.09 / правило». Одна строка выделена и подписана «заблокировано: шаг больше 7 %». Справа вверху кнопка «Откатить прогон целиком». Чертёжная манера, не скриншот реального продукта, все надписи по-русски.

Шесть полей в записи — и одна кнопка, которая возвращает весь прогон целиком

Сторож базовой цены: почему снятия с акции недостаточно

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

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

Быстрая самостоятельная диагностика занимает пять минут. Если ваши правила ставят цены кратно десяти рублям, то любая некруглая цена в каталоге — след чужого вмешательства. Выгрузите текущие цены из кабинета площадки и посчитайте долю позиций, не кратных десяти. Ноль означает, что сторож не нужен; заметная доля означает, что цены у вас двигает не только магазин. Механика связки с площадками и лимиты их API разобраны в отдельной статье про интеграцию магазина с маркетплейсами.

Сторож без эталона превращается в качели

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

схема процессаavtomatizatsiya-tsen-v-magazine--03
Схема сторожа базовой цены: сравнение с эталоном и две ветки решения

Схема из пяти блоков со стрелками. Блок «Эталонная цена» и блок «Текущая цена на площадке» сходятся в ромб «Расхождение есть?». От ромба стрелка «нет» уходит в «ничего не делаем», стрелка «да» — во второй ромб «Позиция была в акции?». От него ветка «да» ведёт в блок «Вернуть эталон — цену уронила площадка», ветка «нет» — в блок «Принять новую цену как эталон — её поставил человек». Сбоку подпись «прогон не чаще раза в час», внизу — «снятие с акции и возврат цены идут одним прогоном». Чертёжная манера, надписи по-русски.

Одна развилка: цену изменила площадка — вернуть эталон, изменил человек — принять новый

Модельный расчёт на каталоге 600 позиций

Вводные: 600 активных позиций, 900 заказов в месяц, средний чек 3 800 ₽, валовая маржа 22 % — то есть 836 ₽ с заказа. Сейчас цены сверяет категорийный менеджер раз в неделю проходом по всему каталогу, примерно минута на позицию. Ставка сотрудника 700 ₽/час. Считаем первый уровень: правила от себестоимости и наценки с четырьмя ограничителями и журналом.

Первый уровень на каталоге 600 позиций
Ручная сверка цен сейчас: 600 позиций × 1 мин × 4,3 недели = 43 ч × 700 ₽30 100 ₽/мес
Останется ручной работы: исключения, новинки, стоп-лист — 10 ч × 700 ₽−7 000 ₽/мес
Экономия рабочего времени категорийного менеджера23 100 ₽/мес
Прекращены продажи ниже минимальной цены: 34 заказа × 310 ₽ недобора маржи10 540 ₽/мес
Позиции с выросшей закупкой переоцениваются в тот же день, а не через неделю: 58 заказов × 180 ₽10 440 ₽/мес
Поддержка правил и справочника себестоимости−8 000 ₽/мес
ИтогоЧистый эффект 36 080 ₽/мес при внедрении 140 000 ₽ — окупаемость 3,9 месяца

Теперь второй уровень, приростом к первому. Внедрение — 120 000 ₽: сопоставление ваших позиций с чужими карточками, регулярный сбор цен, правила реакции. Данные и поддержка — 20 000 ₽/мес. Эффект в модели: 12 % каталога, то есть 72 позиции, стоят ниже рынка более чем на 5 %; на них приходится 130 заказов в месяц, и повышение цены на 3 % даёт 114 ₽ дополнительной маржи с заказа.

Второй уровень: прирост к первому
Внедрение: сопоставление позиций, сбор цен, правила реакции120 000 ₽ разово
Данные и поддержка правил20 000 ₽/мес
Амортизация внедрения за первый год10 000 ₽/мес
Эффект: 130 заказов × 114 ₽ дополнительной маржи14 820 ₽/мес
ИтогоПриростной результат первого года −15 180 ₽/мес. Порог окупаемости — около 1 200 активных позиций

Арифметика порога простая: эффект второго уровня в модели — 14 820 ₽ на 600 позиций, то есть около 25 ₽ на активную позицию в месяц. Чтобы покрыть 30 000 ₽ расходов первого года, нужно примерно 1 200 позиций; со второго года, когда внедрение уже оплачено, порог опускается до 800. Поэтому на каталоге в 600 позиций честный ответ — «пока не надо», а не «давайте попробуем». Это тот случай, когда отказ от второго уровня экономит больше, чем даст его внедрение.

графикavtomatizatsiya-tsen-v-magazine--04
График окупаемости: первый уровень выходит в плюс на четвёртом месяце, второй остаётся ниже нуля

Двухосевой график накопленного результата за 12 месяцев. Ось X — месяцы, ось Y — рубли. Сплошная линия «Уровень 1»: старт с −140 000 ₽, прирост 36 080 ₽ в месяц, пересечение нуля между третьим и четвёртым месяцем, точка подписана «окупаемость 3,9 месяца» и выделена. Штриховая линия «Уровень 2, прирост»: старт с −120 000 ₽, снижение на 15 180 ₽ в месяц, к концу года около −302 000 ₽. Справа мелкая подпись «порог окупаемости уровня 2 — около 1 200 активных позиций». Чертёжная манера, надписи по-русски.

На 600 позициях первый уровень окупается за 3,9 месяца, второй не окупается вовсе

Как измерять эффект: маржа, а не выручка

Снижение цены почти всегда увеличивает выручку, поэтому отчёт «после внедрения выручка выросла на 8 %» не говорит ни о чём. Измерять надо валовую маржу в рублях и обязательно на сопоставимых периодах — месяц к тому же месяцу прошлого года либо к месяцу до включения правил, если сезонность в категории слабая.

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

Горизонт измерения — не меньше 6–8 недель после включения правил. Раньше в данных виден только эффект первых массовых изменений, а не установившийся режим: часть позиций поднялась в цене разово, спрос на них ещё не отреагировал, и любой вывод будет преждевременным. Единственное, что видно сразу и не требует ожидания, — снятые часы категорийного менеджера: в модельном расчёте это 33 часа в месяц, то есть 23 100 ₽, и они составляют почти две трети всего эффекта первого уровня.

Когда автоматизировать цены нельзя

Главный блокер — недостоверная себестоимость. Если закупочные цены в учёте не обновляются вовремя, а логистика и комиссии площадок вообще не разнесены по позициям, то минимальная цена будет вычислена неверно, и автоматика начнёт уверенно продавать в убыток. В такой ситуации первые 90 000–180 000 ₽ правильнее потратить не на правила переоценки, а на приведение справочника себестоимости в порядок — иначе вы автоматизируете ошибку и ускорите её.

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

Наконец, каталог до 150 позиций автоматизировать нет смысла: полный проход по нему занимает у менеджера два-три часа в месяц, а внедрение с поддержкой стоит дороже этих часов. Разумная граница входа — 150–200 активных позиций и еженедельная переоценка; ниже неё выигрывает регламент и таблица. Если вы не уверены, где находитесь, пришлите свои цифры через форму диагностики — посчитаем на них, а не на средних по рынку.