Descuentos por Cantidad
Los proveedores ofrecen precios más bajos a partir de ciertas cantidades mínimas de pedido. Ignorar estos descuentos en el cálculo del EOQ puede suponer un error de miles de euros al año: el lote óptimo puede ser muy diferente —y la política de stock también.
Los dos tipos de descuento
Descuento por cantidad (all-units)
Cuando el pedido supera el umbral, todas las unidades del pedido pasan al precio inferior —incluidas las que estaban por debajo del umbral.
Hay discontinuidades en la función de coste: al cruzar el umbral 200, el coste total baja de golpe aunque se pida más.
Descuento por tramos (incremental)
Solo las unidades de cada tramo pagan el precio de ese tramo. Como los tramos fiscales: las primeras unidades siempre al precio más alto.
La función de coste es continua pero con quiebros en cada umbral. El ahorro efectivo por unidad es menor que en all-units.
El EOQ con coste de adquisición
Cuando el precio varía con la cantidad, hay que incluir el coste de adquisición anual D · P en la función de coste total:
D · P
Coste anual de adquisición. Normalmente constante, pero varía con Q cuando hay descuentos de cantidad.
(D / Q) · S
Coste de pedido anual. Disminuye al aumentar Q (menos pedidos al año).
(Q / 2) · h · P
Coste de posesión anual. h es la tasa de almacenamiento (% del valor unitario). Crece con Q.
EOQ(P)
El EOQ cambia con P: un precio más bajo da un EOQ mayor.
Algoritmo para descuento all-units
Calcular EOQ para cada precio de tramo
Para cada precio Pi, calcula Qi* = √(2DS / h·Pi). Como Pi baja con el tramo, el EOQ sube.
Comprobar si el EOQ cae en el rango válido del tramo
Si Qi* ≥ Qmín,i y Qi* < Qmín,i+1, el EOQ es factible para ese tramo. Si es menor que Qmín,i, se usa Qmín,i como candidato. Si es mayor que Qmín,i+1, ese tramo no genera candidato (el tramo siguiente, más barato, domina).
Calcular CT para todos los candidatos
Para cada candidato Qcand con su precio Pi: CT = D·Pi + (D/Qcand)·S + (Qcand/2)·h·Pi
Elegir el candidato con menor CT
El Q* óptimo es el candidato con el coste total anual más bajo.
Ejemplo resuelto (all-units)
Datos: D = 1.000 u/año, S = 80 €/pedido, h = 20 % del precio unitario.
| Tramo | P (€/u) | Rango Q | EOQ = √(2DS/hP) | ¿Factible? | Q candidato | CT anual (€) |
|---|---|---|---|---|---|---|
| 1 | 100 | [1, 199] | √8.000 ≈ 89 | Sí | 89 | 101.789 |
| 2 | 94 | [200, 499] | √8.511 ≈ 92 | No (92 < 200) | 200 | 96.280 |
| 3 | 88 | [500, 999] | √9.091 ≈ 95 | No (95 < 500) | 500 | 92.560 |
| 4 | 82 | [1.000, ∞) | √9.756 ≈ 99 | No (99 < 1.000) | 1.000 | 90.280 ★ |
Resultado: Q* = 1.000 u con CT = 90.280 €/año. Sin descuento (EOQ = 89, P = 100 €): CT = 101.789 €/año.
Ahorro anual: 101.789 − 90.280 = 11.509 € (11,3 %). Pero implica pedir 11 veces más por pedido y mantener un stock medio 11 veces mayor.
Simulador
Parámetros
Tipo de descuento
Tabla de precios
| Q mín. | Precio (€/u) | |
|---|---|---|
Resultado
COSTE TOTAL ANUAL POR CANTIDAD DE PEDIDO — cada color corresponde a un tramo de precio
CANDIDATOS EVALUADOS
| Tramo / Candidato | EOQ calc. | Q usado | P efectivo | CT anual | Nota |
|---|
Qué observar en el simulador
All-units vs. por tramos
Con los mismos parámetros, cambia el tipo de descuento. Normalmente el Q* all-units es mayor (más agresivo) porque el salto en el coste total es brusco al cruzar un umbral.
El umbral de rentabilidad
Sube la tasa de almacenamiento (h). Verás que el Q* con descuento retrocede hacia la derecha (stock más caro = menos merece la pena pedir mucho). El descuento tiene que "ganar" al coste de posesión.
La discontinuidad (all-units)
Fíjate en el gráfico: donde termina un tramo válido (línea gruesa) y empieza el siguiente, el coste total baja bruscamente. Eso es la discontinuidad. Ese salto hacia abajo es lo que hace atractivo cruzar el umbral.
El coste oculto del descuento
El ahorro en adquisición se ve en el CT anual. Pero hay un coste oculto: mayor stock medio = más capital inmovilizado, más espacio de almacén, más riesgo de obsolescencia. El h captura sólo una parte.