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

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

 

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

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

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

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

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

 

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

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

По каждой позиции регулярного спроса политически выставлен необходимый уровень удовлетворения спроса остатками на складе: от 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%.

 

Расчёт скорректированного периода между поставками.

Сначала рассчитываем по каждой позиции среднедневной спрос (просто усредняя имеющиеся значения спроса за день по позиции):

, где:

 – средний спрос за день по позиции [Единиц / День];

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

 

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

 

, где:

Q – максимально допустимый период между поставками по складским позициям поставщика [Дней];

 – средний спрос за день по позиции [Единиц / День];

Z – текущая закупочная цена позиции [Рублей / Единицу];

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

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

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

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

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

P – стоимость партии, доставляемой поставщиком бесплатно [Рублей].

 

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

На самом деле – это серьёзный "звоночек", так как, возможно, мы торгуем этой продукцией себе в убыток. На самом же деле, нам этот максимально допустимый срок Q нужен только для того, чтобы впоследствии рассчитать оптимальный скорректированный период между поставками Т, который как это ни странно может оказаться и больше этого срока Q. В любом случае мы будем пытаться по этому алгоритму заработать на работе с каждым поставщиком как можно больше денег, правда иногда это максимальное значение может оказаться и отрицательным…

 

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

По сути, эта функция показывает вероятность наступления случайного события (заказной поставки от поставщика) в течение 1 дня, 2 дней, 3 дней, и так далее – х дней, пока это событие не станет практически достоверным: F(х) ≈ 1. Кроме этого, если по поставщику заполнено поле стоимость партии, доставляемой им бесплатно, то F(x) = 1 начиная с:

, где:

P  стоимость партии, доставляемой поставщиком бесплатно [Рублей];

Z – текущая закупочная цена позиции [Рублей / Единицу];

 – средний спрос за день по позиции [Единиц / День].

 

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

 

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

, где:

Т – скорректированный период между поставками [Дней];

E(х) – функция выгоды от пополнения складских позиций вместе с заказными [Рублей / День];

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

Q – максимально допустимый период между поставками по складским позициям поставщика [Дней];

 – средний спрос за день по позиции [Единиц / День];

Z – текущая закупочная цена позиции [Рублей / Единицу];

D – средняя стоимость доставки от поставщика [Рублей];

F(х) – дискретная ступенчатая функция распределения вероятностей осуществления заказной поставки от поставщика в течении х дней после предыдущей [%].

 

Эта формула показывает, что мы выигрываем от поставки складских позиций вместе с заказными. Первое слагаемое отвечает за изменения затрат на содержание запасов – оно будет равно разнице в днях (QT), умноженной на средние продажи по позициям поставщика в закупочных ценах , и на стоимость замороженных денег H. Второе слагаемое даёт нам транспортную составляющую затрат, которая зависит от стоимости доставки D и того, на сколько изменяется вероятность осуществления заказной поставки по отношению к периоду за который мы смотрим эту вероятность Q или T (а значит, и по отношению к количеству поставок за фиксированный период: 1 / Q и 1 / T – соответственно). Оба этих слагаемых зависят от параметра Т, а полученное в итоге значение этого параметра, которое будет максимизировать функцию Е(Т), и будет определять оптимальный объём заказ поставщику, в худшем случае равняясь Q, при котором значение функции будет заведомо равно нулю: E(Q) = 0.

 

Формирование графика предстоящих отгрузок.

Все ожидаемые поставки рекомендуется вносить в информационную систему компании с датами ожидаемой поставки – это позволяет в автоматизированном режиме отслеживать все задержки, недопоставки, пересорты и отличие цен в приходных накладных от цен в заказе. А если мы плюс к этим датам возьмём ещё и даты ожидаемой отгрузки у поставщика из точек заказа по позициям: Gi = I , то сможем понять, в каком объёме нам надо дозаказывать другие позиции, по которым точка заказа ещё не наступила. Поэтому расчёт точек дозаказа по позициям какого-либо поставщика должен производиться только после очередного расчёта точек заказа по всем позициям этого поставщика. В результате мы получаем данные о количестве дней до ожидаемых отгрузок от поставщика: {Gi}. Тогда заказ по позиции будет производиться, только если существует такая ожидаемая отгрузка, что срок производства этой позиции будет равен времени до этой отгрузки:

, где:

Gi  – количество дней до i-той отгрузки, ожидаемой от поставщика по графику предстоящих отгрузок [Дней];

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

 

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

 

Если такая G0 существует, то для дальнейших вычислений нам понадобится значение следующей за G0 ожидаемой в ближайшее время поставки:

, где

Gi  – количество дней до i-той отгрузки, ожидаемой от поставщика по графику предстоящих отгрузок [Дней];

Т – скорректированный период между поставками [Дней].

 

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

 

Расчёт потребности по позиции поставщика, в случае достижения по ней точки дозаказа.

Расчёт заказа осуществляется только для тех позиций, по которым была достигнута точка дозаказа (для позиций, по которым была достигнута точка заказа, точка дозаказа достигается автоматически). По аналогии с получением ряда 0j} рассчитываем и ряд для суммированного спроса за количество дней до следующей поставки 1j}:

, где:

C1j j-тая сумма спроса по позиции за количество дней до следующей поставки [Единиц];

Gi  – количество дней до i-той отгрузки, ожидаемой от поставщика по графику предстоящих отгрузок [Дней];

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

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

 

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

, где:

U1 – количество по позиции, необходимое для удовлетворения спроса остатками на необходимом уровне до следующей поставки;

C1j j-тая сумма спроса по позиции за количество дней до следующей поставки [Единиц];

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

 

Тогда объём заказа по позиции будет равен:

, где:

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

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

U1 – количество по позиции, необходимое для удовлетворения спроса остатками на необходимом уровне до следующей поставки;

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

J – коэффициент округления, который задаёт направление округления [0÷1].

 

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

 

Работа с данными.

Все приведённые расчёты рекомендуется в автоматическом режиме делать каждую ночь, а расчётные значения сохранять в плоских таблицах, по которым днём можно было бы строить соответствующие отчёты. Эти таблицы должны содержать для каждой записи расчётных параметров системы – значение параметра и ссылку на ключ из номенклатурной таблицы или справочника поставщиков, а для временных рядов данных – ещё и дату для каждой записи. В отчёт, который будет делать закупщик днём, должны выводиться по каждой позиции в абсолютных величинах и днях среднедневных продаж: значение необходимого заказа Х; свободные остатки B; текущие остатки, резервы и оплаченные резервы; средний спрос ; критические минимум m и максимум M; кратность отгрузок К; количества, определяющие точку заказа и объём дозаказа U0 и U1; срок производства I; закупочная цена Z и необходимый уровень удовлетворения спроса остатками N, – а также для каждого поставщика: период между поставками Т; время доставки L; ожидаемые даты поставок G0 и G1; необходимые и фактические оборачиваемость О и/или прибыльность Р. На основании этого отчёта, сделанного по конкретному поставщику, рекомендуется иметь возможность автоматически создавать документ заказа этому поставщику по этим позициям в этих количествах (Х) – это позволит избежать лишних ошибок при набивании заказа вручную, а так же избавит сотрудников от лишней рутинной работы.

 

Итог.

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

МОДЕЛЬ

КРИТЕРИЙ

Фиксированный период между поставками

Без фиксирования периода поставок

Спрос

Хорошо предсказуемый

Сильно вариативный

Срок реакции при поставке (I + L)

Большой (недели и месяца)

Малый (дни – неделя)

Штраф за отсутствие на остатках

Небольшой (продажи)

Большой (производство)

Складских позиций от поставщика

Много

Мало (в идеале – одна)

 

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

Перепечатка и перепостинг статьи вместе с этим текстом, указанием автора, и ссылки на первоисточник: http://upravlenie-zapasami.ru/ - приветствуются!

 

 

Если статья отображается не корректно, или вы хотите скачать её себе, то воспользуйтесь этими ссылками:

cкачать в формате PDF статью Автоматизация многономенклатурных закупок без фиксирования периода между поставками cкачать статью "Автоматизация многономенклатурных закупок без фиксирования периода между поставками" в формате PDF
cкачать в формате DOC статью Автоматизация многономенклатурных закупок без фиксирования периода между поставками cкачать статью "Автоматизация многономенклатурных закупок без фиксирования периода между поставками" в формате DOC