Чем бэктест отличается от теневого режима
В теневом режиме репрайсер получает текущие сигналы и не отправляет цену на площадку. Бэктест берёт прошлые срезы: цену покупателя, наличие сопоставимых конкурентов, остаток, акцию, себестоимость и факт заказа. Затем правила последовательно проигрываются так, будто решение принималось в тот день. Это позволяет сравнить несколько настроек на одном и том же ассортименте.
История не предсказывает будущее буквально, но хорошо выявляет хрупкие правила. Если стратегия в каждой третьей ситуации снижала цену ниже целевой маржи, слишком часто меняла её или ориентировалась на товар без наличия, проблему видно до запуска. Такой результат полезнее одного удачного примера из текущей витрины.
Соберите срезы, а не только финальный отчёт
Для честной проверки недостаточно выгрузить продажи по дням. Нужны моменты принятия решения: какая цена была у SKU и у конкурентов, какая акция действовала, какой остаток был доступен, когда обновилась себестоимость и какие ограничения уже были установлены. Важно хранить время каждого сигнала, иначе сегодняшнее знание случайно попадёт в прошлый расчёт.
Начните с групп, где цена менялась заметно: ходовые SKU, товары в акции, позиции с частыми изменениями конкурента и несколько товаров без ориентиров. Для каждого периода фиксируйте источник данных. Так будет понятно, является ли разница между сценариями следствием правила, а не задержки API или неполной выгрузки.
Восстановите контекст решения по SKU
Один и тот же ценник имеет разный смысл при остатке в две штуки и при запасе на месяц. В бэктесте к каждому срезу привязывают минимум, целевую цену, доступный остаток, статус акции, качество сопоставления конкурента и ручные запреты. Без этого стратегия выглядит сильнее, чем была бы в реальной работе: она как будто всегда знает все данные и ничем не ограничена.
Отдельно помечайте события, когда карточка менялась, шла модерация или витринная цена не успевала обновиться. В такие периоды корректнее считать решение «не менять и перепроверить», а не требовать от алгоритма агрессивного движения. Бэктест должен проверять дисциплину правила, а не только способность догонять дешёвого конкурента.
Проверьте границы цены и стоимость ошибки
Каждый сценарий обязан проходить через минимальную, целевую и максимальную цену. Для акции добавляют итоговую цену покупателя, а для Wildberries — параметры скидки, которые дают эту цену на витрине. Если историческая себестоимость неизвестна, лучше исключить период или использовать консервативную границу, а не подставлять сегодняшнюю закупочную цену.
Считайте не только потенциальные заказы. Отдельно покажите число решений ниже минимума, потерянную валовую прибыль, количество изменений за день и долю ситуаций без уверенного ориентира. Иногда сценарий даёт больше заказов, но делает это ценой десятков лишних движений и неприемлемой маржи.
Сравнивайте сценарии по одинаковым правилам
Полезно проверить как минимум три варианта: текущие настройки, более осторожное правило с паузой при плохих данных и вариант с другим шагом цены. Во всех вариантах должны быть одинаковые данные, срок проверки и критерии сопоставления. Иначе более мягкая стратегия просто получит преимущество из-за того, что её не проверяли на сложных SKU.
Результат оформляйте по группам товара, а не одной средней цифрой. Для ходовых товаров важны сохранение позиции и частота изменений; для дефицитных — защита остатка; для медленных — маржа и скорость распродажи. Это превращает бэктест в выбор конкретной политики, а не в соревнование красивых графиков.
Ищите редкие, но дорогие случаи
Средний результат может скрыть события, которые случаются редко, но стоят дорого: конкурент резко снизил цену, акция изменила итоговую стоимость, остаток почти закончился или API вернул старую цену. Выведите такие срезы отдельным списком и прочитайте журнал решений. Если правило не умеет безопасно остановиться, его нельзя включать на весь каталог.
Полезный признак готовности — понятная причина каждого пропуска. Робот должен уметь сказать: нет надёжного конкурента, данные устарели, активна акция, цена у границы или нужен ручной контроль. Необъяснимое действие нельзя улучшать системно, даже если итоговая цифра в отчёте выглядит хорошо.
Перенесите выводы в безопасный запуск
После бэктеста не включайте правило одновременно для всех SKU. Сначала выделите небольшую группу с понятной экономикой, сохраните исходные настройки и задайте срок наблюдения. Сопоставляйте реальные рекомендации с выводами истории: если данные стали приходить иначе, сценарий нужно пересмотреть, а не считать его универсальным.
ВитринаPro помогает фиксировать решения, минимальные цены, ориентиры конкурентов и сигналы для репрайсинга. Журнал и контроль витринной цены делают проверку воспроизводимой: продавец видит не только новую цену, но и условия, при которых она была рассчитана.
Частые вопросы
Можно ли заменить бэктест теневым режимом?
Нет. Теневой режим проверяет текущие сигналы без отправки цены, а бэктест сравнивает правила на прошедших периодах и помогает увидеть редкие сценарии до запуска. Лучше использовать оба этапа последовательно.
За какой период делать бэктест репрайсинга?
Берите период, в котором были обычные продажи, акции, изменения конкурентов и хотя бы несколько сложных случаев. Для сезонных SKU проверяйте сопоставимые периоды отдельно, а не смешивайте их в одну среднюю цифру.
Какая метрика в бэктесте главная?
Одной главной метрики нет. Одновременно оценивают валовую прибыль, число опасных решений, частоту изменений цены, долю пропусков по защите и результат по разным группам SKU.
Нужно ли включать в историю акции и остатки?
Да. Без акции, доступного остатка и границ цены модель будет принимать решения в искусственно простых условиях и не покажет реальные риски автоматизации.
Проверьте правила репрайсинга на небольшой группе SKU и включайте автоматизацию только после понятного сравнения сценариев.
Проверить на своих товарах