El Modelo EOQ (sigla de la expresión inglesa Economic Order Quantity y que en español puede ser traducido por Cantidad Económica de Pedido) es un modelo que permite determinar el lote a comprar que permite minimizar los costos totales con stocks.
Formulación algébrica del modelo clásico:
Teniendo en cuenta que el costo total de los stocks se da por la función:
CT(Q) = P.R + C.R/Q + H.Q/2
En que CT es el costo total; Q es la cantidad de stock a comprar; P es el coste unitario del ítem; R es la demanda anual en unidades; C es el coste bruto por pedido; F es el coste de pose unitario expresado en porcentaje; H es el coste de pose anual por unidad.
La minimización de esta función conduce a la siguiente solución:
Q* = 2CR/H = 2CR/PF
Adicionalmente, y con base en esta función, puede determinarse:
Nº de pedidos en un año (m): m = R/Q* = HR/2C
Intervalo entre pedidos (t): t = 1/m = Q*/R = 2C/HR
Punto de pedido (b): b = RL / a (con a = 365, 52 o 12, conforme L esté expresado en días, semanas o meses, respectivamente y L el tiempo de entrega expresado en dias, semanas o meses).
Ajustes al modelo clásico:
A pesar de su simplicidad y facilidad de comprensión, el modelo EOQ clásico es muy limitativo en cuanto a aplicación práctica dado que se basa en un conjunto de presupuestos difíciles de ocurrir, concretamente:
- La demanda es conocida, constante y continua;
- El tiempo de entrega es constante y conocido;
- El lote pedido es inmediatamente sumado al stock existente;
- No se permiten rupturas de stock;
- Los costos de estructura son fijos independientemente de la cantidad encargada;
- El espacio físico de almacenaje es ilimitado;
- El modelo solo admite un único ítem (no permite ordenes conjuntas).
Para solucionar estas limitaciones pueden introducirse algunas mejorías al modelo clásico como por ejemplo admitir la posibilidad de ocurrencia de rupturas de stock (backorders), esto es, permitiendo que la demanda pueda satisfacerse más tarde de lo que el momento en que se verifique. Para introducir esta nueva variable en el modelo es necesario tener en cuenta los costes asociados a las rupturas; de hecho, si no existiesen costes con rupturas, no existiría razón para constituir stocks y si las mismas son demasiado onerosas, nunca deberían ocurrir. Los costes asociados a las rupturas son los que resultan del tratamiento y manipulación extraordinarios y de la necesidad de tiempos de entrega más cortos. Admitiendo la posibilidad de ocurrencia de rupturas, tenemos entonces que el coste total de los stocks será dado por la función:
CT(Q,J) = PR + CR/Q + [H(Q-J)2]/2Q + (KJ2)/2Q
En que CT es el coste total; Q es la cantidad de stock a comprar; J es la cantidad máxima de ruptura (Q-J será es inventario máximo); P es el costo unitario del ítem; R es la procura anual en unidades; C es el costo bruto por pedido; F es el coste de pose unitario expresado en porcentaje; H es el coste de pose anual por unidad; K es el coste unitario anual de ruptura.
La minimización de esta función resulta en las siguientes soluciones:
Dimensión del pedido: Q* = 2CR/H x (H+K)/K
Cantidad máxima de rupturas: J* = HQ*/(H+K)
Stock máximo: Q*-J* = KQ*/(H+K)
Punto de pedido (tiempo de entrega – rupturas): B = (RL/N) – J*, en que N es el número de días/semanas/meses de trabajo en el ano; L es el tiempo de entrega en días/semanas/meses.
Tiempo máximo de entrega al cliente = J*/R
A parte de la posibilidad de rupturas, existen aún otras alteraciones que podrán ser admitidas (con consecuencias obvias en términos de complexidad) como sean, por ejemplo:
- Introducción de descuentos de cantidad;
- Existencia de precios especiales (rebajas);
- Aumento de los precios anunciados por el proveedor;