Приветствую Вас Гость | RSS

Сегодня Вторник, 07.05.2024, 20:06

МЕНЮ САЙТА
Форма входа
Категории раздела
Общие темы по логистике [136]
Транспорт. Экспедирование [168]
ВЭД. Таможня [75]
Склад и закупки [145]
Советы, услуги, сервис [16]
Логисты шутят [10]
О работе (законы, советы) [54]
Друзья сайта
  • Lardi-Trans
  • DELLA
  • MD Office
  • Перевозки
  • Клуб логистов
  • Лобанов-логист
  • Склад законов

  • Либратранс
  • Портал о логистике
  • TradeMaster
  • Новости логистики
  • Новости грузоперевозок




  • Поиск


    Каталог статей


    Главная » Статьи » Склад и закупки

    Автоматизация многономенклатурных закупок без фиксирования периода между поставками (1 часть)

    Хватит ли одного пальца, чтобы пересчитать все модели автоматизированных закупок для многономенклатурных поставок? – Теперь, нет!

     

    Исходная предпосылка.

    Большинство компаний, которые осуществляют многономенклатурные поставки продукции и пытаются автоматизировать свои закупки, сталкиваются с отсутствием выбора моделей для этого. После упорных поисков по дебрям Интернета они обнаруживают, что есть только одна такая модель, правда, предлагаемая в разных вариациях – это модель с фиксированным периодом между поставками. В многочисленных диссертациях, статьях и научных трудах, посвящённых изучению и выводу этой модели, обычно очень мало говорится о том, почему была выбрана именно она. Большинство авторов старается, вообще, не затрагивать эту тему, те же, кто упоминает об этом, обычно сообщают читателям, что эта модель лучше всех подходит для автоматизации многономенклатурных поставок, без каких-либо объяснений этого вывода или ссылок на другие материалы. И совсем редко приводятся некие данные математического моделирования, где с некоторым отрывом лидирует, действительно, модель с фиксированным периодом между поставками. Правда, методики проведения этого моделирования и условия (данные, на которых оно проводилось) – не приводятся, дабы не искушать читателя найти в них ошибку, или заведомую неоптимальность альтернативных моделей. При этом на практике мы можем встретить ситуации, когда закупщики при осуществлении многономенклатурных поставок используют в своей работе алгоритмы, отличные от этой модели. Эти алгоритмы – не автоматизированы и не оптимизированы, зачастую даже не систематизированы: «Это заказываем так-то, а это – так-то,» – а, почему не наоборот, уже не скажут, но при этом работа осуществляется, и осуществляется нелохо… Так кто же из них прав: теоретики или практики?

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

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

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

     

    Постановка задачи.

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

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

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

     

    Решение.

    Все формулы в этой статье рассчитываются  – отдельно по позициям; формулы, где переменные агрегируются – в сумме по каждому поставщику. Все сроки считаются в рабочих днях. Для экономии места и сохранения нити повествования, используемые формулы не выводятся. Если восприятие формул покажется очень сложным, то начало алгоритма можно проследить на примере в статье "Расчёт уровня логистического сервиса".

     

    Нахождение критического максимума, больше которого хранить на складе не рентабельно.

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

    , где:

    M – критический максимум остатков по позиции, выше которого хранить на складе убыточно [Единиц];

    Ai – суммарные отгрузки из документов расхода за  i-тую дату по позиции [Единиц];

    Si – остатки по позиции на утро i-той даты без учёта оплаченных резервов [Единиц];

    R – средняя маржинальная рентабельность продаж по позиции [%];

    Н – альтернативная доходность вложенных в запасы денег [% / День];

    Y – средняя отсрочка платежа клиентам компании [Дней];

    W – отсрочка платежа у поставщика [Дней].

     

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

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

     

    Нахождение критического минимума, необходимого для осуществления продаж.

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

    , где:

    m – критический минимум остатков, необходимых для осуществления продаж по позиции [Единиц];

    Ai – суммарные отгрузки из документов расхода за  i-тую дату по позиции [Единиц];

    M – критический максимум остатков по позиции, выше которого хранить на складе убыточно [Единиц].

     

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

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

     

    Расчёт истории спроса и количества дней присутствия и отсутствия.

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

    , где:

    Ci – спрос по позиции за i-тую дату [Единиц];

    Ai – суммарные отгрузки из документов расхода за  i-тую дату по позиции [Единиц];

    M – критический максимум остатков по позиции, выше которого хранить на складе убыточно [Единиц];

    Si – остатки по позиции на утро i-той даты без учёта оплаченных резервов [Единиц];

    m – критический минимум остатков, необходимых для осуществления продаж по позиции [Единиц].

     

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

     

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

    , где:

    L0 – количество дней отсутствия позиции на складе [Дней];

    Si – остатки по позиции на утро i-той даты без учёта оплаченных резервов [Единиц];

    m – критический минимум остатков, необходимых для осуществления продаж по позиции [Единиц].

    , где:

    L1 – количество дней присутствия позиции на складе [Дней] ;

    Si – остатки по позиции на утро i-той даты без учёта оплаченных резервов [Единиц];

    m – критический минимум остатков, необходимых для осуществления продаж по позиции [Единиц].

     

    Расчёт точек заказа при заданных уровнях удовлетворения спроса остатками.

    Значения Ci сортируются по возрастанию даты, а индексы присваиваются по порядку без пропусков, после чего на основании этого ряда создаётся новый ряд суммированного спроса за I + L дней – 0j}:

    , где:

    C0jj-тая сумма спроса по позиции за количество дней, необходимое для её производства и поставки [Единиц];

    Ci – спрос по позиции за i-тую дату [Единиц];

    I – время производства поставщиком позиции до отгрузки [Дней];

    L – время доставки от поставщика [Дней].

     

    Как бы страшно не выглядели условия суммирования в этих формулах, на практике они означают лишь, что надо сложить I + L подряд идущих значений спроса за день, и сделать это с шагом в день ровно столько раз, сколько значений спроса имеется. Это нужно для того, чтобы в последствии оценивать возможные изменения спроса за интересующий вас период и создавать страховые запасы адекватные именно их вероятностным характеристикам, не проверяя статистических гипотез на независимость значений спроса друг от друга.

     

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

    , где:

    U0 – количество по позиции, необходимое для удовлетворения спроса остатками на необходимом уровне на время производства и подвоза [Единиц];

    C0jj-тая сумма спроса по позиции за количество дней, необходимое для её производства и поставки [Единиц];

    N – необходимый уровень удовлетворения спроса остатками по позиции [%].

     

    Формула расчёта U0 – это, просто, математическая запись определения уровня удовлетворения спроса остатками, а мы ищем минимальное количество, удовлетворяющее этому определению.

     

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

    , где:

    B – текущие остатки по позиции с транзитами и за вычетом оплаченных резервов [Единиц];

    U0 – количество по позиции, необходимое для удовлетворения спроса остатками на необходимом уровне на время производства и подвоза [Единиц];

    L1 – количество дней присутствия позиции на складе [Дней];

    I – время производства поставщиком позиции до отгрузки [Дней];

    L – время доставки от поставщика [Дней];

    C0jj-тая сумма спроса по позиции за количество дней, необходимое для её производства и поставки [Единиц];

    N – необходимый уровень удовлетворения спроса остатками по позиции [%].

     

    Первое неравенство показывает нам, что текущих остатков (вместе с ожидаемыми приходами) не будет достаточно для удовлетворения спроса остатками на заданном уровне (U0 – это минимальное количество по позиции, которого хватило бы). Второе неравенство используется для того, чтобы не начинать поставку (а точка заказа именно инициирует поставку), если у нас закончилась не очень важная позиция, и мы можем даже пожить некоторое время с пустым складом по ней, пока не распродадим побольше позиций этого поставщика и не закажем одну большую общую поставку. Главным критерием выступают время отсутствия товара на складе L0 и уровень удовлетворения спроса остатками N – чем они больше, тем скорее выполнится это неравенство, – то есть, если товар долго отсутствует (большое значение L0) или эта позиция для нас важна (большое значение N), то мы получим точку заказа по этой позиции.

    Эта формула даёт нам возможность понять - нужно ли сейчас делать заказ поставщику, или мы можем ещё подождать. Всем понятно, что если мы можем подождать, то нам выгодно это делать, так как мы, потратив фиксированное количество денег на доставку, привезём уже больше товара, ведь через некоторое время необходимый заказ уже будет больше. Допустим, у нас есть позиция, у которой плановый уровень удовлетворения спроса остатками N = 90%. При этом мы поставляем её вместе с другими позициями от какого-то поставщика за один день, то есть L = 1 день, и она всегда лежит на складе у поставщика, поэтому I = 0 дней. Для простоты предположим, что она вовсе закончилась, то есть В = 0 штук, а до этого она была в наличии L1 = 45 дней. Она только закончилась, поэтому L0 = 0 дней.

    Итак, позиция эта у нас закончилась, и можно было бы инициализировать заказ поставщику, но остальные позиции ещё не продались, чтобы по ним требовались бы закупки - иначе они сами бы определили точку заказа, поэтому мы принимаем решение подождать. Мы можем себе это позволить, так как если мы, например, пропустим один день, и сделаем заказ завтра, то товара не будет 2 дня - один день мы ждём, и ещё один его будут доставлять - из: 45 + 2 = 47 дней. В результате уровень удовлетворения спроса остатками составит 45 / 47 = 96%, что больше требуемых N = 90%. Так сколько максимум дней мы можем вот так выжидать, чтобы не упасть ниже критических N = 90%? Вторая формула и даёт ответ на этот вопрос для каждого следующего дня ожидания - пока условие выполняется, мы можем ждать. Таким образом, мы подождём 4 дня, и если не будет точки заказа этому поставщику или заказной поставки, то через 4 дня мы сделаем заказ, ещё один день он будет поставляться, и итоговый уровень удовлетворения спроса остатками составит 45 / 50 = 90%.

    Валерий Разгуляев

    http://upravlenie-zapasami.ru/

    Категория: Склад и закупки | Добавил: Greencar (13.03.2012)
    Просмотров: 876
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]
    Goon Каталог сайтов webgari.com Рейтинг сайтов