Экономичный размер заказа (EOQ)

Жоаннес Верморель, 2012 г.

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

Обновление за июль 2020: Экономичный объем заказа — это довольно старый концепт, отражающий «статичную» точку зрения, при которой спрос в будущем не только известен, но и неизменен. Такой подход может работать с "идеальными" цепями поставок, но он в корне неверен. Намного более удачным представляется вероятностное прогнозирование спроса, где оценивается экономический эффект от каждой дополнительной единицы товара в запасе. Мы больше не рекомендуем полагаться на экономичный объем заказа.

Модель и формула

Классическая формула EOQ (см. ниже раздел, посвященный формуле Уилсона) в сущности представляет собой компромисс между издержками на размещение заказа (при этом предполагается, что они имеют форму фиксированной комиссии, вносимой за каждый заказ) и издержками на хранение запасов. И хотя эта формула, которая впервые появилась в 1913 г., невероятно популярна, мы не советуем использовать данную формулу в современных цепях поставок. Математические постулаты, лежащие в ее основе, сегодня просто неверны.

Согласно старой формуле, расходы на размещение заказа являются единственным ключевым фактором развития бизнеса. Разумеется, этот фактор был важен в 1913 году, когда для ведения дел требовалась целая армия клерков, однако сегодня благодаря ПО для управления запасами и, возможно, EDI данный фактор играет незначительную роль. В результате данная формула плохо обеспечивает "оптимизацию" и совсем не учитывает какие-либо колебания цен, которые иногда происходят при заказе большого количества товаров.

Скачать таблицу Excel: eoq-calculator.xlsm (вычисления с графическими материалами)

Таким образом, мы предлагаем свой вариант формулы EOQ, который оптимизирует компромисс между издержками на хранение нереализованных товаров и скидками на большие объемы. Давайте введем переменные:
  • $Z$ - спрос в ходе выполнения заказа.
  • $H$ - издержки на хранение нереализованных товаров в пересчете на единицу в течение времени выполнения заказа (1).
  • $\delta$ - разность товарных запасов, позволяющая достичь точки возобновления (2).
  • $\mathcal{P}$ в пересчете на единицу - функция, которая зависит от размера заказа $q$.

(1) Здесь рассматривается временной отрезок равный времени выполнения заказа. Следовательно, вместо более привычных годовых издержек на хранение нереализованных товаров $H_y$ мы берем $H = \frac{d}{365}H_y$, допуская при этом, что $d$ - время выполнения заказа, выраженное в днях.

(2) При вычислении разности следует учитывать размер наличного запаса $q_{нал}$ и размер заказанных товаров $q_{заказ}$, которые дают соотношение $\delta = R - q_{нал} - q_{заказ}$, где $R$ - точка возобновления заказа. Очевидно, что $\delta+1$ - это минимальный размер заказа для поддержания желаемой вероятности обслуживания.

Значит, оптимальный размер заказа вычисляется по следующей формуле (обоснование приведено ниже): $$Q = \underset{q=\delta+1..\infty}{\operatorname{argmin}}\left(\frac{1}{2}(q-\delta-1)H+Z\mathcal{P}(q)\right)$$ Несмотря на кажущуюся сложность, эту функцию можно без труда вычислить с помощью Microsoft Excel, как показано в приведенной выше электронной таблице.

А как же издержки на размещение заказа?

На первый взгляд, мы допускаем, что издержки на размещение заказа равны нулю, но это не совсем так. Схема, которую мы предлагаем, является относительно гибкой, поэтому издержки на размещение заказа (если таковые имеются) могут быть включены в функцию цены $\mathcal{P}$.

Функция стоимости

Чтобы смоделировать функцию стоимости для размера заказа с учетом скидок на большие объемы, введем точку возобновления $R$. Стоимость товарных запасов представляет собой сумму издержек на хранение нереализованных запасов и издержек на приобретение: $$C(q)=\left(R+\frac{q-\delta-1}{2}\right)H+Z\mathcal{P}(q)$$ Действительно, если взглянуть на время выполнения заказа через призму амортизированного анализа, суммарный размер заказа будет равен $Z$ спросу в ходе выполнения заказа.

Уровень товарных запасов подвержен постоянным изменениям, но если мы возьмем строгие минимальные повторные заказы (т.е. $q=\delta+1$), средний уровень запасов будет равен точке возобновления $R$. Так как мы рассматриваем размер заказа, превышающий $\delta+1$, заказанное сверх необходимого размера сдвигает средний уровень товарных запасов в большую сторону (и откладывает момент достижения следующей точки возобновления).

$(q-\delta-1)/2$ отражает сдвиг товарных запасов с допущением, что спрос в ходе выполнения заказа равномерно распределяется по времени выполнения заказа. Коэффициент 1/2 является обоснованным, поскольку увеличенный размер заказа N увеличивает средний уровень товарных запасов N/2.

Минимизация функции стоимости

Чтобы минимизировать $C(q)$, следует начать с выделения той части, которая не зависит от $q$ с помощью следующей формулы: $$C(q)=RH+\frac{1}{2}(q-\delta-1)H+Z\mathcal{P}(q)$$ Так как $RH$ не зависит от $q$, оптимизация $C(q)$ аналогична оптимизации $C^*(q)$, где: $$C^*(q)=\frac{1}{2}(q-\delta-1)H+Z\mathcal{P}(q)$$ Поскольку в этом контексте функция скидки на большие объемы $\mathcal{P}$ является произвольной, прямого алгебраического решения для минимизации этой формулы не существует. Однако, это не подразумевает сложного решения задачи по минимизации.

Простая минимизация $C^*(q)$ заключается в (примитивном) экстенсивном числовом исследовании, т.е. в вычислении функции для большого диапазона значений $q$. На практике размеры заказов в большинстве предприятий не превышают 1 000 000 единиц, поэтому исследование всех значений стоимости для $q=1..1 000 000$ с помощью компьютера занимает меньше 1 секунды, даже если вычисления осуществляются в Excel на обычном персональном компьютере.

На практике же эти вычисления могут быть значительно сокращены при условии допущения, что $\mathcal{P}(q)$ является строго убывающей функцией, другими словами, цена единицы товара строго сокращается при увеличении размера заказа. Действительно, если $\mathcal{P}(q)$ сокращается, мы можем начать исследование значений с $q=\delta+1$, выполнить необходимое количество итераций и остановиться в момент обнаружения ситуации $C^*(q+1)>C^*(q)$.

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

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

Формула Уилсона

Наиболее известной формулой для вычисления EOQ является формула Уилсона, которая была выведена в 1913 г. Эта формула основана на следующих допущениях:

  • Стоимость размещения заказа постоянна.
  • Интенсивность спроса известна и равномерно распределена по году.
  • Время выполнения заказа неизменно.
  • Закупочная цена единицы товара постоянна, т.е. скидки не предоставляются.

Введем следующие переменные:

  • $D_y$ - годовой объем спроса.
  • $S$ - фиксированная стоимость размещения одного заказа (не стоимость единицы товара, а стоимость, связанная с обработкой заказа и транспортировкой).
  • $H_y$ - годовые издержки на хранение запасов.

Согласно этим допущениям, оптимальный EOQ по формуле Уилсона равен: $$Q=\sqrt{\frac{2D_yS}{H_y}}$$ На практике мы предлагаем использовать более адаптированный вариант формулы (с точки зрения времени), где $D_y$ меняется на $D$ - прогнозируемую интенсивность спроса на протяжении времени выполнения заказа (равная спросу в ходе выполнения заказа $Z$, разделенному на время выполнения заказа), а $H_y$ меняется на $H$ - издержки на хранение нереализованных товаров на протяжении времени выполнения заказа.

Сравнение двух формул для вычисления EOQ

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