ИИ-цены: почему нижнего предела мало для прибыли группы
Нижняя цена ограничивает потери на единице, но для заменителей нужна ещё проверка группы: скидка может перетянуть покупки с соседнего товара. Связь спроса на заменители описывают OpenStax, а расчёт цен всей группы — Imprice. В нашем учебном сценарии допустимая скидка оставляет товар выше нижней цены, но вклад группы падает на 712,50 ₽ при прежних двадцати продажах.

Что подтверждают источники
Imprice пишет о настройке ограничений по критическому уровню наценки и о подборе цен для группы заменителей. Это описание поставщика, а не наша проверка работы алгоритма. OpenStax отдельно объясняет, как снижение цены одного заменителя может сократить спрос на другой: это экономическая связь, а не обещание переноса конкретного числа покупок.
Кейс Imprice относится к пилоту, начавшемуся 1 мая 2020 года: дата прямо названа в описании кейса. Поэтому он здесь не свежая новость; проценты эффекта поставщика не используются для оценки результата нашего магазина.
Какую цену нельзя опускать ниже
Возьмём два вымышленных товара собственного интернет-магазина. Вкладом назовём сумму, которая остаётся от цены после закупки, исполнения заказа и комиссии. Она ещё не равна чистой прибыли: принцип разницы между ценой и переменными затратами разобран в учебнике OpenStax.
Комиссия в примере составляет 15 % от конечной цены покупателя. Минимальный вклад зададим в рублях на проданную единицу. Тогда:
вклад = цена × (1 − доля комиссии) − закупка − исполнение
нижняя цена = округление вверх до рубля
((закупка + исполнение + минимальный вклад)
/ (1 − доля комиссии))| Вход или результат | Товар A | Товар B |
|---|---|---|
| Закупка, ₽ | 600 | 500 |
| Исполнение одного заказа, ₽ | 80 | 80 |
| Комиссия от конечной цены | 15 % | 15 % |
| Минимальный вклад на единицу, ₽ | 100 | 100 |
| Текущая цена, ₽ | 1 000 | 900 |
| Нижняя цена до округления, ₽ | 917,647… | 800 |
| Нижняя цена после округления, ₽ | 918 | 800 |
Вся таблица — заданные редакцией входы и их арифметические следствия;
расчёт раскрыт ниже. Для A получаем
(600 + 80 + 100) / 0,85. При цене 918 ₽ вклад равен 100,30 ₽, а при 917 ₽ — уже 99,45 ₽. Округление вниз нарушило бы заданные 100 ₽.
Модель исключает налоги, возвраты, рекламу, хранение, отдельный эквайринг и постоянные расходы. У читателя эти статьи могут менять предел: переменные расходы нужно добавить без двойного счёта, а долю постоянных и требуемую прибыль — обоснованно заложить в целевой вклад. Если комиссия считается с другой базы или имеет ступени, формулу нужно вывести заново.
Почему цена выше предела всё равно может быть заблокирована
Для обоих товаров зададим отдельное ограничение: снижение не больше 5 % от согласованной исходной цены за одно окно изменения. Нижняя граница такого шага — 95 % исходной цены, с округлением вверх до рубля. В этом окне исходная цена не меняется после каждой новой рекомендации.
| Проверка рекомендации | Товар A | Товар B |
|---|---|---|
| Исходная цена, ₽ | 1 000 | 900 |
| Предложенная цена, ₽ | 890 | 820 |
| Нижняя цена по вкладу, ₽ | 918 | 800 |
| Нижняя цена по лимиту шага, ₽ | 950 | 855 |
| Проверка вклада | Не проходит | Проходит |
| Проверка шага | Не проходит | Не проходит |
| Решение в учебном журнале | Заблокировать | Заблокировать |
| Оставленная цена, ₽ | 1 000 | 900 |
Таблица — продолжение учебного расчёта. У B предложение 820 ₽ выше нижних 800 ₽, но ниже разрешённых для этого шага 855 ₽. Проверять только вклад недостаточно. Минимум, проходящий оба ограничения: A — 950 ₽, B — 855 ₽; это ещё не рекомендация применить такую цену.
Такой журнал стоит дополнить временем, версией входных затрат, причиной блокировки и ответственным за решение. Хранить нужно три цены: исходную, предложенную и фактически применённую. Если предложение заблокировано, не записывайте его как применённое. Новое окно и пересмотр исходной цены требуют отдельного правила, иначе серия мелких скидок обойдёт ограничение.
Что меняется, если покупатель выбирает заменитель
Предположим, A и B решают одну задачу покупателя. В базовом сценарии продаётся по десять единиц каждого. Затем зададим перенос пяти покупок с B на A: получится пятнадцать A и пять B. Общее число покупок остаётся двадцать.
| Сценарий | Цена A, ₽ | Продажи A / B, шт. | Вклад единицы A / B, ₽ | Вклад группы, ₽ | Изменение к базе, ₽ |
|---|---|---|---|---|---|
| База | 1 000 | 10 / 10 | 170 / 185 | 3 550 | 0 |
| Запрещённая цена, только расчёт последствий | 890 | 15 / 5 | 76,50 / 185 | 2 072,50 | −1 477,50 |
| Цена проходит оба ограничения | 950 | 15 / 5 | 127,50 / 185 | 2 837,50 | −712,50 |
| Та же скидка, без переноса покупок | 950 | 10 / 10 | 127,50 / 185 | 3 125 | −425 |
Цены B во всех строках — 900 ₽. Все строки — заданные сценарии, а не наблюдения за магазином. Строка с 890 ₽ показывает последствия обхода блокировки; применять её наш журнал запрещает.
В допустимом сценарии вклад группы —
15 × 127,50 + 5 × 185 = 2 837,50 ₽. Потеря 712,50 ₽ состоит
из двух частей: скидка на десять прежних покупок A уменьшает вклад на
425 ₽; перенос пяти покупок B на A — ещё на 287,50 ₽. Поэтому рост
продаж A сам по себе не показывает результат для магазина.
Но перенос покупок нельзя установить по одному падению вклада. Последняя строка показывает снижение даже без переноса. В реальном магазине отдельно придётся проверить новые покупки, отсутствие B на складе, рекламу и сезонный сдвиг: наш расчёт этих данных не содержит и причины изменений не измеряет.
Что задать перед автоматическим изменением цены
Собственнику магазина с известными расходами на единицу полезно сначала заполнить такую таблицу для своей группы. Менеджеру, у которого есть только закупочная цена, рано давать алгоритму право менять цены: не хватает базы для ограничения по вкладу.
| Поле для своей модели | A | B |
|---|---|---|
| Закупка и переменные расходы на единицу, ₽ | ___ | ___ |
| Комиссия: доля и база начисления | ___ | ___ |
| Минимальный вклад на единицу, ₽ | ___ | ___ |
| Согласованная исходная цена, ₽ | ___ | ___ |
| Лимит снижения и окно его действия | ___ | ___ |
| Шаг цены и правило округления | ___ | ___ |
| Продажи до изменения / в сценарии, шт. | ___ | ___ |
| Предложенная / применённая цена, ₽ | ___ | ___ |
| Причина блокировки и ответственное лицо | ___ | ___ |
Пустые поля — редакционный шаблон. Перед запуском владелец цены должен определить также срок годности затрат и действие при пропусках. Наш консервативный вариант: при неизвестной комиссии или просроченной себестоимости автоматическое снижение блокируется до уточнения, а не заменяет пропуск нулём.
По группе сравнивайте суммарный вклад, количество покупок и состав корзин. Число покупок одного товара не отвечает, пришли ли новые клиенты или они выбрали более дешёвый заменитель. Подготовку финансовых входов для рекламы разбираем отдельно.
Как мы проверяли
Редакция Кометы пересчитала два синтетических товара десятичной арифметикой. Отдельно проверены округление вверх, соседняя цена на рубль ниже, ограничение одного снижения и четыре сценария при двадцати продажах. Период реальных продаж и выборка магазинов отсутствуют: входы придуманы для анализа ограничений. Публичные страницы Imprice и два раздела OpenStax повторно открыты в день проверки. Источники имеют разный интерес: Imprice продаёт решение, OpenStax объясняет экономические понятия.
Оба учебника OpenStax имеют одного издателя и не считаются двумя независимыми подтверждениями. Формула с комиссией, ограничение шага и сценарии — редакционная модель, не реализация Imprice и не прогноз спроса. Версия и тариф продукта к этой арифметике неприменимы; закрытый продукт и качество его рекомендаций не проверялись. Запись расчёта содержит проверяемые постусловия; входы и выходы позволяют повторить арифметику.
Расчёт: вклад A при 1 000 ₽ —
1 000 × 0,85 − 600 − 80 = 170 ₽; вклад B при 900 ₽ —
900 × 0,85 − 500 − 80 = 185 ₽. База группы —
10 × 170 + 10 × 185 = 3 550 ₽. Для остальных строк меняются
только цена A и явно заданное число покупок. Это позволяет повторить
каждую строку без сервиса ценообразования.
Источники
- Imprice: машинное обучение — заявления о заменителях и ограничениях; проверено 20.10.2026.
- Imprice: кейс GS — историческая дата пилота, без переноса заявленного эффекта; проверено 20.10.2026. В JSON-LD datePublished — 26.05.2020, dateModified — 01.07.2025; это метаданные страницы, а не даты запуска алгоритма.
- OpenStax: вклад на единицу — определение вклада и покрытия постоянных расходов; проверено 20.10.2026.
- OpenStax: спрос на заменители — направление связи цен и спроса; проверено 20.10.2026.
- Учебные входы и результаты и пустая таблица — материалы редакции. Все рублёвые входы вымышлены.
Редакция Кометы · Как работает редакция