Хотите посмотреть систему изнутри
и понять, насколько она
применима для ваших задач?
С удовольствием проведем демонстрацию:
 

Оптимизация ценообразования: какие подходы и модели мы взяли за основу алгоритмов машинного обучения в Imprice

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

Мы поняли, что эта информация необходима на сайте, и подготовили данную статью.
Какую ставили цель: чтобы читателю с минимальной математической подготовкой было понятно и интересно.

Если вы профессионал в машинном обучении и вас интересуют более глубокие вопросы,
пишите info@imprice.ai
или звоните +7 812 748-22-31
СОДЕРЖАНИЕ:
1
Почему байесовский подход — это круто? Немного занимательной математики
Как дополнительная информация делает магию
Правило Байеса и теорема Байеса — это закон, определяющий силу наблюдений; правило, указывающее, насколько следует пересмотреть интересующие нас вероятности какого-то события (изменить свою оценку ситуации), когда мы узнаём новый факт или получаем новые данные.

Для специалистов в прогнозировании важна даже не сама теорема Байеса, но основная идея Байеса о приближении к истине шаг за шагом, постоянно улучшая результат пропорционально весу полученных наблюдений.
Есть проверенный путь заставить человека влиться в ряды фанатов байесовского подхода — дать ему решить задачу о тестах на болезнь.
Мы не будем изобретать велосипед и пойдём тем же путём.
Числа в условиях задач выбраны произвольно, а не взяты из каких-то официальных источников о тестах.
Итак, задача:

Допустим, вы решили сдать тест на наличие антител к коронавирусу.
Пусть 1% людей, сдающих тесты на антитела к коронавирусу, обладают такими антителами (специальный показатель у них превышает пороговое значение).
90% людей с антителами получают положительный результат: антитела есть.
9% людей без антител также получают положительный результат теста: тест говорит "антитела есть", хотя их нет.

Вы сдали тест и получили положительный результат: антитела есть.
Какова вероятность того, что у вас действительно есть антитела?
Если вы решаете такую задачу впервые, попробуйте найти ответ или хотя бы сделать интуитивное предположение — и только потом читайте дальше!
Показалось сложно?
Это нормально; доказано, что большинству людей сложно оперировать долями и вероятностями. Зарубежом проводились научные исследования, которые показали: всего 15% врачей справлялись с такой постановкой задачи и приходили к правильному ответу (подробнее можно почитать здесь: yudkowsky.net/rational/bayes ).

Давайте возьмём более легкую формулировку тех же самых условий; при такой постановке уже целых 46% врачей давали правильный ответ!

Итак, те же условия в другой формулировке:
100 из 10 000 людей, сдающих тест на антитела, действительно ими обладают.
90 из 100 людей с антителами получают положительный результат: антитела есть.
891 из 9 900 людей без антител также получают положительный результат теста: тест говорит "антитела есть", хотя их нет.

Какая доля сдавших тест на антитела и получивших положительный результат, действительно обладает антителами?
Правильный ответ здесь!
нажмите, чтобы посмотреть
Правильный ответ — только у 9,2% людей с положительным результатом теста на антитела действительно есть антитела!


Дано:
Из 10 000 человек у 100 есть антитела.
У 90 из этих 100 результаты теста положительные.
Из тех же 10 000 человек у 9 900 нет антител, причем 891 из этих 9 900 "безантительных" человек получат результат теста "у вас есть антитела".
Следовательно, общее количество человек с положительным результатом теста составляет 891 + 90 = 981.
Из 981 человека с результатом "есть антитела" у 90 человек они действительно есть. В процентном соотношении это 90/981 = 0,0917 = 9,17%.

Если вернуться к первоначальной формулировке и вспомнить, что 100 — это 1% от 10 000, 90 — это 90% от 100, а 891 — это как раз 9% от 9900, то получим:
ваш тест на антитела положительный, но вероятность, что антитела у вас на самом деле есть, — меньше 9,2%!
Если человек решает подобную задачу впервые, интуиция пытается потащить его по ложному пути: около 90% людей с антителами получают положительный результат теста, значит, вероятность обладать антителами при положительном тесте также должна составлять около 90%.

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

Например, если антитела на самом деле есть у 10% человек, то человек с положительным тестом обладает антителами с вероятностью ~53%.
Если же антитела на самом деле есть у 50% человек, то человек с положительным тестом обладает антителами с вероятностью целых ~91%!

Если мы вернемся в исходные условия задачи, но вероятность ложноположительного теста возьмём не 9%, а только 1%, то человек с положительным тестом является счастливым владельцем антител с вероятностью ~47,6%.
Если снова поменять вероятность ложноположительного теста, но уже увеличить ее до 15%, то при положительном тесте вероятность действительно иметь антитела равна всего 5,7%!

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

При этом ответ задачи — вероятность действительно иметь антитела при положительном тесте — "гулял" от 5,7% до 91%!

Это немного переворачивает сознание, правда?
Частотные подходы VS байесовские подходы
Большинство из нас учили теорию вероятностей в ВУЗе, концентрируясь на частотном подходе.

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

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

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

Байесовский подход работает со случайностью иначе: как с мерой нашего незнания. Неопределенность в этом подходе является субъективной. Событие неслучайно и обусловлено конкретными факторами, но измерить и оценить их влияние изначально может быть сложно.
"Мера нашего незнания" подразумевает: последовательно производя эксперименты, на каждом шаге мы узнаем все больше и больше, уменьшая меру незнания.

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

Ну вот, теперь можно перейти к алгоритмам!
2
Байесовские подходы в задачах ценовой оптимизации
Договоримся о постулатах
Для математической формулировки задачи ценовой оптимизации необходимо договориться о некоторых важных вещах. А именно:
Спрос — это случайная величина.
Если бы спрос был постоянной величиной, определенной раз и навсегда, требовалось бы лишь однажды исследовать его и оцифровать параметры.
Увы, в реальности спрос всё время меняется.

Возьмём молоко, тривиальный и предсказуемый продукт. Люди регулярно покупают молоко и потребляют его в примерно одинаковом количестве.
Но однажды блогеры-миллионники начинают одна за другой рассказывать у себя в инстаграме и тик-токе:
— Девчонки! Я сделала анализ крови. У меня непереносимость лактозы! Представляете, эти непроходящие прыщи на щеках — от молока! Ужас! Теперь я пью кофе и ем кашу только с растительным молоком!
Подписчицы этих блогеров, обладающие проблемной кожей, переходят на растительное молоко безо всяких анализов. Кто-то отказывается от молока на неделю, кто-то на год, кто-то навсегда.

Хотите больше примеров c "предсказуемыми" товарами? Вспомните, как менялся спрос на туалетную бумагу и имбирь в начале эпидемии COVID-19.
Спрос динамически меняется. Чем сильнее и чаще эти изменения, тем сложнее оптимизация.
У товаров повседневного, возобновляемого и массового спроса, с длинным жизненным циклом — например, молока, сахара, яиц — динамических изменений спроса относительно мало.
Однако таких товаров меньшинство.

У большинства товаров жизненный цикл относительно короткий, и в процессе жизненного цикла возникает масса факторов, способных очень сильно изменить спрос.
Скажем, селебрити становится лицом новой коллекции, и продажи взлетают. Затем селебрити пишет неудачный пост, и покупатели объявляют бренду бойкот. Затем селебрити рыдает на камеру и объясняет, что его (её) неправильно поняли. Часть аудитории смягчается, но продажи остаются ниже первоначального уровня.
Товары конкурируют с аналогами и заменителями, выходят из моды, вновь обретают актуальность. На это влияет множество событий, коротких и протяженных. Информация о большинстве событий приходит с большим опозданием или не приходит вовсе.
Исследование спроса ограничено определенными ценовыми диапазонами.
При изучении спроса мы можем менять цену не от нуля до бесконечности, а только внутри заданного интервала. Границы интервала могут определяться объективными значениями или субъективными оценками.

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

Пример субъективной оценки: эксперт определяет максимальное значение, выше которого нельзя поднимать цену; при цене выше не будет продаж.
Оптимизация цены большинства товаров — это сложная задача, в которой важнейшую роль играет мера нашего незнания и присутствует очень много субъективной неопределенности.
Возьмём суперпростой случай: продажа единственного товара
Пусть мы продаём всего один товар. При изменении цены товара могут изменяться продажи в штуках. Мы хотим найти цену, при которой целевой показатель примет максимальное значение при текущем спросе.
Примеры целевых показателей:
максимально возможная выручка, валовая прибыль, продажи в штуках.
Было бы здорово знать значение спроса при каждой конкретной цене. Тогда мы бы просто:
— перемножили цены на значения спроса при этих ценах,
— посмотрели, при какой цене получается самая большая выручка,
— и выбрали бы эту цену.
Аналогично происходил бы выбор цены в случае с максимизацией прибыли или продаж в штуках.

Но - поскольку спрос динамично меняется - данные о зависимости спроса могут оказаться устаревшими, а могут быть неполными или просто отсутствовать.
Как же узнать значения спроса при конкретных значениях цены?
Первое. Если какие-то априорные* знания у нас есть - история продаж, история изменения цен, история изменений факторов, способных влиять на цену и спрос (себестоимость, цены конкурентов, товарные остатки, сезонность, …), - рационально попробовать их использовать: возможно, для ряда товаров они остались актуальными.

Второе. Могут иметься гипотезы, экспертные оценки и ожидания.

Третье. Можно собрать новую информацию: запустить ценовые эксперименты (в том числе, повторно протестировать "старые" цены, по которым есть исторические данные о спросе). В процессе наблюдений появится актуальная (!) информация о поведении спроса. Это апостериорные** знания: мы будем фиксировать, как изменился спрос в результате изменения цены.
* Априорный — от латинского a priori, имеющийся до начала наблюдений, экспериментов.
** Апостериорный — от латинского a posteriori, полученный в результате наблюдений, экспериментов.
Байесовский подход позволяет очень эффективно уточнять априорные знания с помощью наблюдений.
В случае ценообразования, байесовский подход позволяет эффективно восстанавливать кривую спроса с помощью относительного маленького количества экспериментов и быстро находить оптимальные значения цены, при которой наш целевой показатель будет максимальным или близким к максимальному.
Дискретная модель оптимизации цены в картинках. Thompson sampling
Некоторые идеи и материалы для данного раздела мы с благодарностью взяли отсюда:
blog.griddynamics.com/dynamic-pricing-algorithms/
Указанная статья также поможет глубже погрузиться в математические основы метода
Дальше все рассуждения будут для случая, когда мы максимизируем выручку.
Максимизация валовой прибыли или продаж в штуках идёт аналогичным путем.
Введем обозначения:
p — цена (от английского price)
d — спрос (от английского demand).

У нас есть k цен: p1, p2, …, pk
При цене p1 могут купить d1 единиц товара,
по цене p2 купят d2 единиц товара,
...
по цене pk купят dk единиц.

Мы хотим максимально большую выручку. Значит, из цен pi нужно выбрать цену p*, для которой произведение pi*di окажется самым большим.
Математики записывают это так:
В реальности у нас или нет значений di, или нет уверенности, что они соответствуют актуальному спросу. Так что просто сравнить пары цена-спрос и выбрать лучшую цену мы не можем.

К тому же спрос d — это случайная величина.
Даже при стабильном спросе и фиксированной цене объём продаж меняется день ото дня.
Например, цена товара 10 рублей, и при этой цене стабильно покупают примерно 60 штук в месяц. Однако объёмы продаж товара в день НЕстабильны — и это нормально. Сегодня покупают одну штуку, завтра ещё две штуки, послезавтра три штуки, послепослезавтра снова две штуки.
Совокупность вероятностей, с которой спрос в день будет равен конкретному значению, называют распределением вероятностей.

Примеру выше может соответствовать такое распределение:



При цене 10 рублей:

0,25 — вероятность продать 1 штуку за день,
0,5 — вероятность продать 2 штуки,
0,25 — вероятность продать 3 штуки
θ — этой буквой (тета) будем обозначать параметры такого распределения, упрощенно — вероятности, что при конкретной цене p спрос d примет то или иное конкретное значение

Соответственно, мы хотим как можно точнее оценить спросы di, соответствующие ценам pi, но при этом экспериментировать с ценами как можно меньше.
Тут нам и начинает мощно помогать байесовский подход, с которым релевантная дополнительная информация значительно уменьшает меру нашего незнания.

Что можно взять в качестве дополнительной информации? Мы будем использовать наблюдения за θ - параметрами распределения спроса при конкретной цене.
В разделе о постулатах мы убедились: спрос динамически меняется во времени. Поэтому и параметры распределения θ со временем могут меняться.
θ в нашей модели — не набор констант, это также случайная величина, наблюдения за которой помогут гораздо быстрее найти оптимальную цену
Итак, спрос d — это неизвестная нам функция от цены p и от случайного параметра θ (тета):
d(p;θ).

Перепишем формулу оптимальной цены p* для максимизации выручки:
E — это знак математического ожидания. Оно нужно, чтобы "усреднить" выборочные значения спроса: в разные дни купят разное количество товара, как мы помним, даже если спрос не претерпевает скачков и цена не меняется.
t — это номер временного шага алгоритма (от английского time). θt — это значения параметра θ на шаге t алгоритма.

Покажем наглядно, как работает один из наиболее эффективных алгоритмов ценовой оптимизации — реализация сэмплирования Томпсона (Thompson sampling).
Алгоритм и его модификации были успешно протестированы многими компаниями, показывая очень впечатляющие результаты. Мы возьмем иллюстрацию из исследования Walmart и дополним её собственными скриншотами.

Итак, что примерно происходит на каждом шаге t алгоритма?
Есть k цен, которые мы "пробуем": p1, p2, …, pk.
"Пробуем" — значит, устанавливаем цену на какое-то время и замеряем продажи.

Для каждой цены получается оценка распределения спроса: с какой частотой "выскакивали" разные значения продаж. Примерно как мы описывали выше:
И вот мы исследовали все цены, и для каждой цены pi получили свой набор параметров распределения значений спроса θi.

Поместим все эти распределения на один график:




Черная кривая — это оценка кривой зависимости спроса d от цены p, построенная с помощью матожиданий параметров распределения спроса при разных значениях цены
θi — вероятности что при цене pi спрос d примет то или иное значение. Берем матожидание параметра θi, выбираем соответствующее ему значение спроса d и ставим точку. Через эти точки проводим кривую спроса d — т.е. через наиболее вероятные (с точки зрения имеющихся у нас данных) значения спроса при каждой цене.

Каждый следующий шаг t дает нам новую информацию о параметрах распределения спроса θ. Мы вносим уточнения в эти распределения и актуализируем кривую спроса.
Главная "фишка" алгоритма - принцип выбора цен, которые будут тестироваться на следующем шаге. Чем выше выручка получалась при определенной цене - тем более внимательно протестирует её алгоритм на следующих шагах, тем больше он даст "попыток" этой цене проявить себя.

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

1) Самый верхний блок с графиками показывает, как пошагово строятся и уточняются распределения спроса для каждого конкретного значения цены.


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


3) Блок внизу - динамика пар "цена-спрос":
красный график - изменения цен,
синяя гистограмма - полученный спрос.
Мы шаг за шагом видим, какая цена устанавливалась на очередном шаге и сколько штук товара при этом купили. Видно, как алгоритм пробует разные цены на старте - красная линия прыгает от одной цены к другой. Затем алгоритм всё реже использует менее удачные варианты, и красная линия изменения цены становится прямой
Оптимизация ценообразования, thompson sampling (семплирование Томпсона)
В анимации смоделирован самый простой пример: более низкая цена даёт существенное увеличение спроса, компенсирующее снижение маржи. В результате чем ниже цена, тем выше выручка.
(Более сложный пример - когда самой выгодной оказалась достаточно высокая цена, - можно посмотреть здесь: blog.griddynamics.com/dynamic-pricing-algorithms/)

Худшей ценой в "мультике" выше оказалась "желтая" 74.9: спрос по этой цене почти не отличался от спроса при "голубой" цене 79.9, а выручка заметно меньше.

Лучшей ценой оказалась "синяя", самая низкая 54,9: спрос при этой цене настолько увеличивался, что перекрывал разницу с другими ценами и приносил значительно больше выручки.
Алгоритм Thompson Sampling является одним из базовых в ценовой оптимизации Imprice:
Скриншот Imprice:
5 различных цен и соответствующие им распределения вероятности для спроса
На графике горизонтальная ось X — выручка, вертикальная ось Y — вероятность достичь этой выручки при конкретной цене. Чем правее расположен "колокол" распределения для цены, тем больший оборот мы получаем при этой цене.

В строках внизу скриншота — вероятности, что конкретная цена будет являться наилучшей. Видно, что цены price_1 и price_3 — наиболее интересные с точки зрения имеющихся данных: probability of showing price у этих двух цен составила 38%.
Поэтому далее в 76% случаев (76=38+38) будут использоваться эти две цены.

Каждый определенный период времени выбирается цена, алгоритм фиксирует значения спроса при этой цене, и с учетом этой информации распределения перестраиваются.
Далее алгоритм выбирает наилучшую цену (цены) уже на основе новых распределений, и собирает новые данные.
Оптимизация ценообразования, thompson sampling (семплирование Томпсона) в статике
В Imprice оптимизация цены происходит постоянно:

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

Мы подчеркиваем важность непрерывного исследования, так как существует альтернативное применение подобных алгоритмов: однажды найти оптимальную цену и далее всегда её использовать. Такой подход не учитывает нестатичность спроса, его склонность часто и непредсказуемо меняться.
Результаты применения алгоритмов с сэмплированием Томпсона
В статье Walmart Labs (Thompson Sampling for Dynamic Pricing, Ravi Ganti, Matyas Sustik, Quoc Tran, Brian Seaman, Walmart Labs, USA, февраль 2018) приведены данные о сравнительной эффективности двух моделей динамического ценообразования:

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

активной: добавляется исследование цен-спроса с помощью сэмплирования Томпсона.

Сравнение вели "в пробирке", на искусственно созданном наборе данных - корзине из 100 товаров, для которых исследователи заранее описали все "истинные" параметры, выдав на вход моделям одинаковую часть этих данных.

Модель с сэмплированием Томпсона продемонстрировала выдающиеся способности к обучению, продолжая интенсивно увеличивать выручку при новых итерациях.
Пассивная модель вскоре "остановилась в развитии":




Результаты эксперимента Walmart Labs

Графики изменения выручки:
по вертикали размер выручки от "лабораторной корзины",
по горизонтали — дни.

Синий график активная модель сэмплирования по Томпсону,
зеленый график — пассивная.

Ниже мы приведем пример результата,
полученного уже на реальных данных в системе Imprice.
3
Как работает оптимизация цен в Imprice
Мы не будем касаться методов очистки данных; просто перечислим важные блоки алгоритмов оптимизации в системе.
Ключевые блоки оптимизации
1.
На вход подаётся ряд важных параметров, которые могут использовать алгоритмы при выборе цены товара.
Например: продажи, просмотры карточки товара, совокупные продажи по категории товара, какие SKU продаются совместно с этим товаром, допустимые диапазоны оптимизации - минимально и максимально допустимая цена и так далее.

Также среди параметров на входе может быть, например, расчетная точка безубыточности товара: она вычисляется с учетом прибыли от товаров, часто приобретаемых совместно с оцениваемым товаром.
Такой параметр особенно актуален для высококонкурентных ниш, где борьба за клиента ведется с минимальной и даже отрицательной маржинальностью. Весь ассортимент взаимосвязан, поэтому некоторые товары выгоднее продавать в большем количестве и зарабатывать не напрямую на их марже, а на прибыли от совместно продаваемых с ним товаров.
2.
Все эти данные поступают в RVM — "блок оптимизации дохода" (revenue manager).

Важная задача RVM — обеспечивать баланс между эксплуатацией и исследованием цены (Exploration–Exploitation Dilemma). Суть:
Если тестировать слишком много разных цен, то слишком часто будет использоваться неоптимальная цена, и на выходе будет проигрыш вместо выигрыша.
Если не исследовать цены, в итоге может быть выбрана совершенно не оптимальная цена, так как оптимальную цену просто не успели протестировать. Потери в виде упущенной прибыли могут оказаться еще выше.
Поэтому в ценовой оптимизации очень важен баланс исследования и эксплуатации.

Внутри RVM работает алгоритм, который выбирает один из двух алгоритмов оптимизации цены для конкретного товара. Для этого анализируется статистика частоты покупок:

Epsilon-greedy. Алгоритм оптимизации для товаров с малым объемом накопленной статистики (с большой вероятностью, редко покупаемых); например, для товаров, которые до оптимизации покупали 2-3 раза за квартал. Исследование цены редко покупаемых товаров может занять годы, поэтому рациональнее сразу выбрать наилучшую из имеющихся цену без поиска более оптимальной цены. Данный алгоритм не задействует "устаревание" данных (уменьшение веса данных по мере увеличения давности их сбора).

Thompson sampling, о котором подробно рассказано выше. Основной алгоритм системы, в котором сбалансировано исследование и эксплуатация цены (это доказывалось в ряде научных публикаций).

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

3.
Далее RVM выбирает цену, при которой на текущий момент достигается максимум нашего целевого показателя (выручки, валовой прибыли или продаж в штуках) — с учетом взаимного влияния товаров. Эта оптимальная цена передается на выход.

Результат оптимизации на примере одного товара
График изменения цены товара до и после оптимизации. Видно, как ритейлер экспериментировал с ценой вручную: часто и со значительным разбросом.
Красная стрелка указывает на старт оптимизации.
Алгоритм начинает исследование с цены 1230 - нечто среднее между предшествующими ценами клиента.
Дальше алгоритм пробует несколько вариантов цен и в итоге сосредотачивается на узком диапазоне цен, около 1240 рублей.
Кликните на изображение, чтобы увеличить его
9 декабря началась оптимизация, цель: максимизация выручки.
Алгоритмы сформировали первые цены, и сразу появился значительный рост спроса (красная стрелка указывает на декабрь - первый месяц оптимизации).
Важно: у данного клиента сезонный всплеск в декабре не очень значителен. Конечно, близость Нового года повлияла на рост, но лишь отчасти: видно, что в январе-марте валовая прибыль всё равно значительно выше, чем в ноябре, до оптимизации.
Кликните на изображение, чтобы увеличить его
Отчет об изменениях цен до и во время оптимизации: какие цены проверялись, сколько дней действовала каждая из цен и какие она принесла результаты:

1390₽ — цена, которую чаще всего устанавливал клиент до оптимизации. За 45 дней с этой ценой клиент получил 162 просмотра и продал всего три единицы данного товара.

1250₽ — цена-лидер. При этой цене за 21 день получили выручку 27.000₽ и продали 22 штуки при 161 просмотре.

Кроме цены-лидера 1250₽ алгоритм довольно подробно исследовал два субоптимальных решения, быстро отбросив остальные:
Цена 1290 стояла 34 дня, получила 450 просмотров, продали 17 штук с выручкой 21.000₽.
Цена 1280 проверялась 14 дней, получила 134 просмотра, 8 проданных штук с выручкой 10.240₽.
Остались вопросы?
Задайте их экспертам Imprice по телефону или через форму ниже: