Fórmula de nivel de servicio (cadena de suministro)

Notebook-as-a-book illustration







Por Joannès Vermorel, última revisión: enero de 2012

El nivel de servicio (inventario) representa la probabilidad esperada de no llegar a una situación de falta de existencias. Este porcentaje es necesario para calcular las existencias de seguridad. Intuitivamente, el nivel de servicio representa una compensación entre el coste de inventario y el coste de la falta de existencias (que genera pérdida de ventas, de oportunidades y la frustración del cliente, entre otras cosas). En este artículo, explicaremos cómo optimizar el valor del nivel de servicio. Luego, centraremos el análisis en el caso especial de los alimentos perecederos.

El artículo fue escrito desde una óptica de ‘’pronóstico clásico’’ en 2011. Sin embargo, algunos años después, nos damos cuenta de que hay opciones mucho mejores a disposición desde la perspectiva de la cadena de suministro cuantitativa, que elimina por completo la necesidad de optimizar los niveles de servicio cuando la tecnología está alimentada por pronósticos probabilísticos.

Modelo y fórmula

La literatura clásica sobre la cadena de suministro es un tanto confusa en lo que se refiere a los valores numéricos que deberían adoptarse para el nivel de servicio. A continuación, proponemos calcular un nivel de servicio óptimo mediante el modelado de los respectivos costes de inventario y falta de existencias.

Veamos las siguientes variables:
  • $p$ sería el nivel de servicio, es decir, la probabilidad de no tener una situación de falta de existencias.
  • $H$ sería el coste de mantenimiento por unidad durante el tiempo de entrega (1).
  • $M$ sería el coste marginal por unidad de la falta de existencias (2).

Descargar hoja de Excel: service-level-formula.xlsx (cálculo ilustrado)



(1) El alcance de tiempo que se considera aquí es el tiempo de entrega. Así, en lugar de considerar, como es habitual, el coste de mantenimiento anual $H_y$, consideramos $H = \frac{d}{365}H_y$, asumiendo que $d$ es el tiempo de entrega expresado en días.

(2) El coste de la falta de existencias incluye a minima el margen bruto, es decir, la ganancia instantánea que se hubiera generado si no se hubiera llegado a la situación de falta de existencias. Sin embargo, la pérdida del margen bruto no es el único coste; deberían considerarse también, por ejemplo, la frustración del cliente y la pérdida de su fidelidad. Como regla general, hemos observado que muchos minoristas de comestibles consideran que $M$ es igual a 3 veces el margen bruto.

El nivel de servicio óptimo está dado por (el razonamiento se detalla a continuación): $$p=\Phi\left(\sqrt{2\ln\left(\frac{1}{\sqrt{2\pi}}\frac{M}{H}\right)}\right)$$ Donde $\Phi$ es la función de distribución acumulativa asociada a la distribución normal. Este valor puede calcularse fácilmente en Excel, $\Phi$ es la función NORMSDIST. Además, para los fines del cálculo numérico: $\sqrt{2 \pi} \approx 2,50$

Función de coste

Para modelar la función del coste, agreguemos otras dos variables:
  • $Q$ sería la cantidad de inventario amortizado (3), una función que depende de $p$.
  • $O$ sería el exceso de demanda promedio cuando se llega a una situación de falta de existencias.

(3) Adoptamos aquí una perspectiva de análisis de amortización. El nivel de inventario varía constantemente, pero nuestro objetivo aquí, para poder realizar un análisis práctico, es obtener un valor de nivel de servicio que esté disociado del pronóstico de demanda. Así, asumiremos que $Q$ es igual al punto de reorden (vea nuestra guía sobre existencias de seguridad para más detalles).

Para un determinado nivel de servicio, el coste total $C(p)$ que combina el coste de mantenimiento de inventario y los costes de la falta de existencias puede expresarse del siguiente modo: $$C(p) = Q(p)H + (1-p)MO$$ Donde $Q(p)H$ es el coste de inventario y $MO$ es el coste de la falta de existencias, que solo tiene lugar con una probabilidad $1-p$. Utilizando la fórmula presentada en nuestro tutorial sobre existencias de seguridad, y debido a que $Q(q)$ es igual al punto de reorden, tenemos $Q(p) = Z + \sigma \Phi^{-1}(p)$ donde $Z$ es la demanda de tiempo de entrega, $\sigma$ es el error de pronóstico esperado y $\Phi(p)^{-1}$ es la inversa de la función de distribución acumulativa asociada a la distribución normal estándar (media cero y varianza igual a uno).

Análisis del promedio de ventas perdidas

El análisis de $O$, el promedio de ventas perdidas, es sutil. Considerando que la distribución de la demanda es la distribución normal $\mathcal{N}$ y que $q$ es el inventario disponible, $O(q)$ es la media condicional de la demanda $x$ cuando $x > q$ (menos el inventario disponible $q$), que es: $$O(q)=\frac{\int_q^\infty{x\mathcal{N}(x)dx}}{\int_q^\infty{\mathcal{N}(x)dx}}-q=\frac{1}{q}+\mathcal{o}\left(\frac{1}{q}\right)$$ Vea la función en (1).

Este resultado puede ser interpretado del siguiente modo: si la demanda sigue rigurosamente la distribución normal, entonces la cantidad promedio de ventas perdidas en el evento (condicional) de una situación de falta de existencias rápidamente converge a cero a medida que el nivel de inventario aumenta.

Aún así, en nuestra experiencia, el error de pronóstico no tiene una convergencia tan buena como la que prediría la distribución normal. Por esta razón, a continuación asumiremos que $O=\sigma$, es decir, que la cantidad promedio de ventas perdidas es igual al error de pronóstico promedio. Obviamente, esta es más una regla general que un análisis en profundidad, pero hemos visto que, en la práctica, esta aproximación arroja resultados sensatos.

Minimización de la función de coste

Al aplicar los reemplazos definidos anteriormente para la expresión de $C(p)$, obtenemos: $$C(p) = \left(Z + \sigma \Phi^{-1}(p)\right)H + (1-p)M\sigma$$ Luego, la expresión $C(p)$ puede diferenciarse en $p$ con: $$\frac{\partial C}{\partial p} = \sigma H \partial \Phi^{-1}(p) - \sigma M$$ Debido a que estamos buscando un valor mínimo, intentamos resolver $\frac{\partial C}{\partial p} = 0$, que da: $$\sigma H \partial \Phi^{-1}(p) - \sigma M = 0$$ Lo que puede simplificarse en $\sigma$ con: $$H \partial \Phi^{-1}(p) - M = 0$$ Y, por último: $$\partial \Phi^{-1}(p) = \frac{M}{H}$$ Luego, utilizaremos la relación entre $\partial \Phi^{-1}$ and $\Phi^{-1}$ : $$\partial \Phi^{-1}(p)=\sqrt{2\pi}e^{\frac{1}{2}\Phi^{-1}(p)^2}$$ Para una prueba de la igualdad visual, puede comparar (1) y (2).

Esta relación nos permite obtener: $$\sqrt{2\pi}e^{\frac{1}{2}\Phi^{-1}(p)^2}=\frac{M}{H}$$ $$\frac{1}{2}\Phi^{-1}(p)^2=\ln\left(\frac{1}{\sqrt{2\pi}}\frac{M}{H}\right)$$ Tomamos la solución de raíz positiva de la ecuación (la raíz negativa corresponde a un máximo local de la función) con: $$\Phi^{-1}(p)=\sqrt{2\ln\left(\frac{1}{\sqrt{2\pi}}\frac{M}{H}\right)}$$ Y, finalmente, aplicando $\Phi$ a ambas partes, obtenemos el nivel de servicio óptimo con: $$p=\Phi\left(\sqrt{2\ln\left(\frac{1}{\sqrt{2\pi}}\frac{M}{H}\right)}\right)$$

Desglose de la fórmula

El primer aspecto interesante de la formula es que el nivel de servicio óptimo solo depende de $H$ (coste del inventario) y $M$ (coste de la falta de existencias). Sin embargo, existe una tendencia implícita sobre el tiempo de entrega, ya que $H$ ha sido definido como el coste de mantenimiento durante el tiempo de entrega.

En segundo lugar, un mayor coste de inventario disminuye el nivel de servicio óptimo; y, de modo similar, un mayor coste de falta de existencias aumenta el nivel de servicio. Este comportamiento es bastante intuitivo, porque el nivel de servicio es una compensación entre más inventario y más faltas de existencias.

Entonces, la fórmula no es válida para todos los valores de $M$ y $H$. Necesitamos que $\sqrt{2\pi}\frac{M}{H} > $1 o el logaritmo producirá un valor negativo que no es no soluble considerando la raíz cuadrada exterior. Esto da $M > \sqrt{2 \pi} H$, lo que puede aproximarse como $M > 2.5 H$. Si esta condición no se cumple, significa que la función de coste inicial $C(p)$ no tiene mínimo, o bien que el mínimo es $-\infty$ para $p=0$. Desde un punto de vista práctico, $M < 2.5 H$ podría interpretarse como una situación patológica en la que el nivel de existencias más redituable es cero existencias (es decir, 100 % de falta de existencias).

Ejemplo práctico

Consideremos un cartón de leche de 1 litro a un precio de venta de € 1,50 vendido con un 10 % de margen (es decir, € 0,15 de margen bruto). Supongamos que el tiempo de entrega es de 4 días. El coste de mantenimiento anual es de € 1,50 (el valor es alto porque la leche es un producto altamente perecedero). Suponemos que el coste de falta de existencias es 3 veces el margen bruto, es decir, € 0,45. Esto da $M=0.45$ and $H=\frac{4}{365} 1.5\approx 0.0055$.

En base a esos valores y a la fórmula para el nivel de servicio óptimo obtenida más arriba, obtenemos $p\approx 98.5\%$, que es un valor habitual para los productos frescos indispensables almacenados en depósitos que abastecen a redes de tiendas de comestibles.

Alimentos perecederos

Pregunta planteada por Vyacheslav Grinkevych, experto de cadena de suministro, 13/02/2012:

En este momento, estoy trabajando en el pronóstico y la planificación de suministro de productos lácteos de corta vida útil, para los que el nivel de servicio óptimo es un asunto muy importante. El componente más interesante y complicado aquí es H, el coste de mantenimiento, y la cuestión de su valor correcto en la práctica.

Por ejemplo, para los productos lácteos de corta vida útil, una de las partes importantes de H debería ser no solo el coste puramente financiero del efectivo congelado en el inventario y el coste del almacenamiento de logística operativa, sino también el coste de pérdidas potenciales debidas a la pérdida total de productos vencidos o las ventas con descuentos cuando intentamos liquidar las existencias antes de que se venzan. Esto sucede cuando nuestras ventas se encuentran muy por debajo del pronóstico.

Esta compensación puede ser descrita como el riesgo de un potencial exceso de existencias contra el riesgo potencial de la falta de existencias, dos riesgos que actúan en direcciones opuestas, si bien por naturaleza comparten el mismo origen, es decir, la interconexión con las existencias de seguridad. Si hubiera una gran sobrepronóstico, lo que generalmente causa el problema del vencimiento, los errores de pronóstico no se distribuyen de modo normal. Por esta razón, me pregunto de qué modo se pueden expresar mejor estos riesgos potenciales de exceso de existencias.

Volviendo a vuestra fórmula, un ulterior desarrollo podría intentar hallar una relación entre H y p o hacer de H una función de p, es decir H(p), antes de decidir la minimización del coste total C(p). ¿Qué opináis de este asunto?

La fórmula de nivel de servicio proporcionada arriba se basa, de hecho, en una asunción simplista donde los costes, tanto de almacenamiento como de falta de existencias, son estrictamente lineales. Sin embargo, en la práctica, se pueden encontrar importantes no-linealidades, como:

  • El depósito está lleno, y se llega a un punto en el que 1 unidad adicional de existencias implica un coste general exorbitante para contar con otro lugar de depósito adicional.
  • Las situaciones de falta de existencias generan una pérdida de ventas incremental hasta llegar al punto en que una falta de existencias adicional genera la pérdida total del cliente habitual.

Los productos perecederos presentan otro giro: si la cobertura de existencias, es decir, las existencias expresadas en días en lugar de en unidades de existencias, se acerca al vencimiento del producto, entonces $H$, el coste de mantenimiento, aumenta hacia un valor infinito.

De hecho, $H$ representa la fricción asociada con el hecho mismo de tener un inventario. Una cobertura de existencias que supere el vencimiento del producto representa una situación absurda, donde, asumiendo que haya un inventario FIFO (primero en entrar, primero en salir), ningún producto saldría del depósito antes de su fecha de vencimiento.

Para modelizar el efecto de la cualidad perecedera del inventario, introduzcamos algunas duraciones claves:

  • $\lambda$, el tiempo de entrega.
  • $\lambda_\infty$, el ciclo de vida del producto antes de su vencimiento (es decir, valor de mercado cero).
  • $\lambda_½$, la duración que duplica el coste de mantenimiento original del producto debido a la pérdida de su valor de mercado.
  • $\lambda_c(p)$, la cobertura de existencias, es decir, las existencias expresadas en días en lugar de en unidades de producto. Esta duración depende del factor de las existencias de seguridad, por lo tanto, depende de $p$.

Con estas duraciones, podemos modelizar el coste de mantenimiento como:

$$ H(p) = H \left(1 - \frac{\lambda_\infty - \lambda_½}{\lambda_\infty - \lambda} + \frac{\lambda_\infty - \lambda_½}{\lambda_\infty - \lambda_c(p)} \right) $$ Desarrollemos un poco la suposición implícita aquí, porque de algún modo estamos adaptando la noción habitual del coste de mantenimiento para incluir el riesgo de pérdida total.

En primer lugar, tenemos $H(0.5)=H$. Esto se obtiene de la definición explicada más arriba. De hecho, $\lambda_c(0.5)=\lambda$, con un nivel de servicio al 50 %, la cobertura de existencias es igual al tiempo de entrega. Así, lo que estamos afirmando aquí es que, en este modelo, $H$ representa el coste de mantenimiento, donde los costes de pérdida total asociados a un nivel de servicio del 50 % ya han sido incluidos en el coste $H$. Vale la pena destacar que el hecho de haya cero existencias de seguridad no implica que las pérdidas totales sean inexistentes, sino solo infrecuentes.

En segundo lugar, para el nivel de servicio $p_½$ como $\lambda_c(p_½) = \lambda_½$, entonces tenemos $H(p_½)=2H$. Una vez más, esta es solo una consecuencia de la definición adoptada para $H(p)$. Intuitivamente, $\lambda_½$ representa la duración que duplica la combinación de los costes de mantenimiento más los costes de pérdidas totales, comparada con la situación cero existencias de seguridad. Es claro que, en la práctica, los costes generales relacionados con los descuentos por vencimiento y pérdidas pasarán por pasos separados. No obstante, creemos que intentar expresar estos costes generales a través de una duración típica, que en la práctica se definiría como una determinada fracción del ciclo de vida del producto, probablemente resultará mucho más adaptable a las diferentes aproximaciones que forman parte del método completo, al contrario de un modelo más refinado que se valga de variables aún más inciertas.

Por último, a medida que $p$ se acerca desde $p_\infty$ con $\lambda_c(p_\infty)=\lambda_\infty$, entonces $H(p)$ tiende al infinito; una vez más, por la definición de la función adoptada para $H(p)$. A primera vista, parece extraño tener un coste de mantenimiento que pase por alto el coste de unidad del producto, pero no hay ninguna paradoja en eso. El valor $H(p)$ representa el coste de fricción para hacer que una unidad sea enviada al cliente. Si, debido a pérdidas totales masivas, para poder enviar 1 unidad al cliente final, el depósito recibe 3 unidades en promedio (2 unidades que se vencen antes de ser entregadas), entonces los costes de fricción serán mucho mayores que el precio por unidad original del producto.

En resumen, $\lambda_½$ es solo una variable incierta que se introduce. Puede asumirse con seguridad que $\lambda$ y $\lambda_\infty$ son conocidas. Creemos que este modelo para $H(p)$ es uno de los más simples posibles que puede lograrse introduciendo solo 1 variable adicional. Luego, para $\lambda_c(p)$, con una aproximación modesta, tenemos:

$$\lambda_c(p) = \lambda \left(1 +\frac{\sigma}{Z}\Phi^{-1}(p)\right)$$ De hecho, $\lambda_c$, la cobertura de existencias, puede ser vista como una proporción sobre el tiempo de entrega que incluye el demanda de tiempo de entrega más un factor de existencias de seguridad normalizado. Esto da la función de coste alternativa:

$$C^*(p) = \left(Z + \sigma \Phi^{-1}(p)\right)H\left(1 - \frac{\lambda_\infty - \lambda_½}{\lambda_\infty - \lambda} + \frac{ \lambda_\infty - \lambda_½}{\lambda_\infty - \lambda \left(1 +\frac{\sigma}{Z}\Phi^{-1}(p)\right)} \right) + (1-p)M\sigma$$ A diferencia de la función de coste anterior, esta función no parece tener un mínimo algebraico simple. Sin embargo, al adoptar un abordaje similar al utilizado para el cálculo de la Cantidad económica de la orden, encontrar una solución aproximada es relativamente directo repitiendo en incrementos del 0,1 % desde 80 % hasta 99.9 %. Esto representa 200 iteraciones para obtener una precisión del 0,1 % que sería ampliamente suficiente para fines prácticos.

Uso práctico previsto

La fórmula de nivel de servicio incluye algunas aproximaciones de modo que los valores numéricos podrán no ser utilizables sin modificaciones: generalmente será necesario un cierto grado de adaptación. En particular, el factor $\frac{1}{\sqrt(2\pi)}\approx0.4$ puede ser ajustado según sea necesario. No obstante, creemos que esta fórmula da un buen panorama del modo en que deberían compararse los respectivos niveles de servicio de sus artículos. Por ejemplo, si para dos productos A y B obtiene niveles de servicio de 95 % (para A) y 90 % (para B), entonces para la configuración de la producción final, sería esperable que el nivel de servicio para A fuera mayor que el nivel de servicio para B.

Entonces, considerando la naturaleza del análisis que se ha realizado más arriba, creemos que esta fórmula no es relevante para productos asociados a una demanda baja o intermitente. De hecho, los productos que presentan un volumen tan bajo generalmente se asocian a un punto de reorden bajo de 0 o 1 unidad; y modelado lineal del coste de almacenamiento para el producto no necesariamente tiene sentido, ya que también debería tenerse en cuenta la complejidad de almacenar una referencia adicional.