Оптимизация аптек: что мы сделали с помощью математики +51





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

Очень часты ситуации недозаказа товара (когда нужного ходового лекарства просто нет в аптеке), перезаказа (товар поставляется на пару ближайших лет) или неправильного распределения по сети аптек (в одной нет, а в другой — на шесть месяцев запаса). Таблетки компактные, выкладка в аптеках — хорошо, если 5 % от товарного запаса, поэтому восемь–десять миллионов рублей можно запросто спрятать даже на 15 квадратных метрах в ящиках. А потом у этих лекарств внезапно уже через год закончатся сроки годности.

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

Конечно же, в этой ситуации очень не хватает математической модели. Ну мы с ней и пришли. В процессе сделали ещё несколько чудесных открытий про рынок.

Как всё устроено


Лекарства бывают двух типов:

  1. Которые можно достать только у одного поставщика. Например, в прошлом году была рыночная дефектура по дипроспану (инъекции для суставов): в какой-то момент руководство в последней аптеке, где он был, выкупило десять пачек и продавало или использовало их на вторичном рынке.
  2. Которые имеют дженерики (то есть прямые аналоги, этот термин в аптечной среде не подразумевает ухудшения качества). Аспирина или омепразола явно много разного, и если у одного поставщика он пропадёт, то всегда можно будет найти лекарство с таким же МНН.

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

В начале каждого года вы подписываетесь на то, что продадите определённое количество какого-то медикамента. Это ложится в план поставок дистрибьютора (их три крупных в России) и дальше — в план производства.

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

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


Из этого графика видно, что по данному препарату остаток почти вдвое больше нужного.

Прогнозирование спроса


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

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

— Зачем вы добавили по десять пачек всех лекарств из этого списка?
— Да система всегда тут вниз ошибается, ну я и корректирую вверх.

— А зачем вы взяли 12 упаковок на точку, когда среднемесячный расход — две штуки?
— Ну, я подумал, что мало, вот и добавил!
— А вы понимаете, что это на пять аптек, и сейчас кто-то останется без них?
— Да? Ой. Ну, закажите ещё.

— Почему вы только три флакона везёте?
— Потому что у вас за месяц уходит одна-две штуки.
— На прошлой неделе взяли пять штук! Везите десять, ироды!!!

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

Фактическое исполнение заказа было около 20 %.

Что сделали


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


Восстановленный спрос, прогноз и оптимальные запасы по критичному препарату — виагре.

Вопрос — в настройке модели. Мы используем следующие правила:

  1. Обычный подход к оптимизации запасов — восстановление спроса (выбрасывание участков без этого товара в наличии для статистики), прогнозирование спроса авторегрессиоными моделями с учётом трендов, сезонности, календарных событий, формирование графика поставок, расчёт оптимальных запасов в аптеках и на складе, создание заказов.
  2. Учёт ненадёжности поставщика: чем больше сюрпризов способен преподнести поставщик, тем больше нужен складской запас на сеть.
  3. Учёт незаменимости препарата для оперативных закупок: активированный уголь запасать смысла нет: он есть у каждого поставщика. Медикаменты по формуле после раскрытия патента — тоже. А вот уникальные новые лекарства — да.
  4. Некоторые товары нуждаются в холодном хранении: там более жёсткая оптимизация запаса на розничной точке.
  5. Наркотические средства поставляются по спецусловиям.
  6. Нельзя перемещать товар между аптеками, поэтому по возможности нужно использовать более частые и более мелкие транзакции поставок.

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


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

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


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

Пошли первые результаты, вот графики по некоторым препаратам:


Первый пример.


Второй пример.

До этого распределение по аптекам имело ещё одну особенность. Товар доставался тем, кто ближе к началу списка по алфавиту! То есть в случае 12 пачек лекарств со средним расходом за период две штуки первые шесть аптек на «А» получают его, а остальные — нет. В другой сети были выделены приоритетные аптеки: там сначала товар шёл по одному списку, потом — по другому. Но примерно так же. Если будете открывать аптеку, то постарайтесь не называть её на «Ы». Лучше назовите её «Аахенозавр», а юрлицо ООО «ААА». Будет много вопросов, но вы будете с товаром.

Директора аптек знали эту особенность и старались договориться заранее, чтобы урвать весь товар: лучше хранить у себя, чем ждать у моря погоды. Это тоже вызывало неравномерности в старой модели и создавало неповторимый вкус противодействия ИТ-мерам, потому что привычная схема ломалась в сторону более экономически выгодной для всей сети.

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

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

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

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

Почему нет лучших кадров? Потому что в сфере высокая текучка кадров, в том числе — в руководстве. Это приводит к хаосу в управлении системами отчётности и не очень точному пониманию собственных бизнес-процессов. Фразы «Я не знаю, где это посмотреть» и «Да быть такого не может! Как вы это нашли?» — одни из самых частых при наших диалогах за ИТ-системами.

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

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

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

Вы можете помочь и перевести немного средств на развитие сайта



Комментарии (24):

  1. JuliBerg
    /#20768088

    А что значит «фактическое исполнение заказа было 20%». Разве может работать какая-то математика или автоматизация вообще, если из заказанного перечня привозят реально только 20%. А остальные 80% где теряются?

    • Zarakovskiy
      /#20768178

      Исполнение 20% подневное, при этом мы стучимся с заказами каждый день пока заказ не будет исполнен. По факту да, остальное доезжает с лагом, который зависит от городского дефицита.

  2. apapacy
    /#20769152

    Товар доставался тем, кто ближе к началу списка по алфавиту! То есть в случае 12 пачек лекарств со средним расходом за период две штуки первые шесть аптек на «А» получают его, а остальные — нет.

    Эту особенность на себе чувствуют военные при продвижении по службе.

    • Tarakanator
      /#20769718

      А как-же Шойгу?

      • apapacy
        /#20770010

        Генералов, маршалов и фельдмаршалов мало поэтому статистические законы не действуют. А вот если взять капитанов которые не стали майорами тогда была бы статистика. Я во всяком случае эту историю узнал от своего командира роты в учебе. За все время он провел ровно одно занятие и то весьма своеобразно. Сделал перекличку


        • Власов
        • Я
        • Что ж ты с такой фамилией и в советскую армию
        • Бойко
        • Я
        • Отличная фамилия. И в начале алфавита и боевая. Будешь генералом. А у меня Малышко…
          После этого перекличка была закончена и капитан пошел запивать свое горе.

        • Tarakanator
          /#20770142

          Вы не правы. Генералы, маршалы и т.д.они не из неоткуда появились. Они прошли цепочку повышений, так что один маршал уже статистика из повышений.

          • apapacy
            /#20770192 / +1

            Я надеюсь что генералов и маршалов у нас не за выслугу лет назначают. Если у человека есть выдающиеся способности к военному делу он будет продвинут вне зависимости от фамилии. А вот что касается среднего звена то тут многое значение чинопроизводство имеет.

  3. euroUK
    /#20769826

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

    • Zarakovskiy
      /#20770172

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

    • vrnvorona
      /#20775162 / +1

      Ну да, ни разу не было «всегда так делали че ты со своей фигней лезешь» и тут не будет.

  4. CrushBy
    /#20771742

    А можете пояснить, что вот это значит:

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

    Как тогда считаются остатки, если движение не известно?

    • Zarakovskiy
      /#20771870

      Ведутся данные по поступлениям в аптеку, но понять чем обусловлено это поступление невозможно. Движение товара от поставщика до аптеки по сформировонному заказу отследить невозможно

      • CrushBy
        /#20771992

        Я правильно понимаю, что в каждой аптеке своя база, из которой вы считываете остатки? А проблема в том, что просто заказы не передаются в аптеки, соответственно, нигде нет привязки приходов к заказам?

        • Zarakovskiy
          /#20772102

          Именно так

          • CrushBy
            /#20772146

            Вообще, конечно, странный подход. Попытка построить дом на кривом фундаменте. Впрочем, я понимаю, что это не ваши проблемы, и вам приходится работать с тем, что есть.

    • saege5b
      /#20772422

      Ну вот, в инете посмотрел — есть 5 единиц.
      Позвонил в справочную — 8 единиц.
      Пришёл ногами — 0 единиц. И ни разу не привозили.

  5. saege5b
    /#20772440

    Вот когда хочешь купить всё в одном месте, и ни в одной сети, в единичной аптеке нет всего нужного.
    Блин, 21 век, интернет вещь привычная, а единого каталога нет, и консолидировать заказ в одной аптеке нельзя.
    Но самих аптек чуть ли не больше, чем магнитов-пятёрочек-какразов вместе взятых.

    • balexa
      /#20774424

      и консолидировать заказ в одной аптеке нельзя.

      да вроде давно уже можно, те же аптеки.ру, если вы про это.

  6. esavin
    /#20772728 / +2

    Есть такя книга «Выбор» от Элияху Голдратта. В ней опысываются несколько примеров оптимизации розничной торговли. Если коротко, то идея такая: в магазине минимальный запас товара (в количестве единиц, а не ассортимент), покрывающий время доставки с регионального склада. В случае продажи, формируется заказ на пополнение. Региональный скалд работает по такому же принципу с более крупным складом (склад поставщика, например). Производство работает на основе уменшения запасов на главном складе. То есть модель «выталкивания» (когда производство и оптовики затоваривают магазины) меняется на модель «вытягивания» (когда магазины заказывают то что им реально нужно). Попутно в книге утверждается, что прогнозы работают очень плохо. У Голдратта все описано очень логично. Читая подобные статьи, что здесь, что у Мосигры, что у других компаний, я задаюсь вопросом — где ошибается Голдратт? Приминение его подхода должно очень сильно повлиять на оборачиваемость товара и уменьшение складских запасов. Почему все не используют такой подход? Хотелось бы подключить к разговору Сергея Milfgard, а то все время забывал написать этот вопрос к соответствующей статье в блоге Мосигры.

    • gandjustas
      /#20773154

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


      По сути достаточно сравнить коэф. вариации по этим группам.

    • Milfgard
      /#20773530

      Ну, во-первых, минимакс работает не совсем так, как описано. На накопителе магазина не минимальный запас SKU, а буферный, который при спуске до минимума (время заказа, время логистики и множитель исполнения заказа по этому поставщику) пополняется до максимума. Это реально работает для всех товаров средней категории и ниже по ABC/XYZ. По товарам типа AAX не страшно выпасть в перезапас. А вот товары типа BAX, BAY — это настоящая задница по жонглированию и доставанию. Обеспечить 100% наличия ассортимента — задача нереалистичная в условиях даже собственного производства плюс пары поставщиков, а вот 90-95% — уже вполне решаемая. Где проблема? В суровой реальности, которая делает каждый процент исполнения существенно дороже предыдущего.

  7. gandjustas
    /#20773150

    Хороший кейс, только математики в посте совсем не увидел.

  8. tangro
    /#20774308

    Странно в этом всём, что рассчёты производятся уже «постфактум» — т.е. когда лекарство уже купили, его уже нет, и надо заказать ещё. А ведь можно было бы считать потребность ещё до первоначальной закупки. Почему лекарства покупают? Потому, что вот реклама по телеку прошла. Потому, что сезон грипа сейчас. Потому, что в поликлинике рядом терапевт сменился и у него свой «любимый» список лекарств. Если знать эти факты — можно предположить, что купит покупатель ещё до того, как он до аптеки дойдёт.

    • Zarakovskiy
      /#20775456

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