marql

Un día de lineal vacío no es un día sin demanda: cómo las roturas de stock sesgan la previsión de una cadena de tiendas

La caja registra lo que se vendió, no lo que se quería comprar. Una previsión entrenada con las ventas de días en que se agotó el producto aprende el lineal en lugar del cliente, y el siguiente pedido hace que el lineal se vacíe antes.

Ideas clave

  • Las ventas registradas son el menor de dos valores, la demanda y el stock del lineal; el día que el lineal se vacía, el resto de la demanda no deja rastro.
  • Las previsiones entrenadas con esas ventas subestiman la demanda, y el error es mayor en las categorías de frescos, que son las que más se agotan.
  • El error se alimenta a sí mismo: una previsión más baja trae un pedido más pequeño, una rotura más temprana y un registro todavía más bajo.
  • Los encargados de tienda cometen el mismo error a mano cuando recortan un pedido después de una rotura de stock.
  • Trata los días de lineal vacío como datos que faltan o como un mínimo, y comprueba que el stock en sistema que hay detrás de la marca es correcto.

La caja registra lo que se vendió, no lo que se quería comprar. Cuando el yogur se agota a las tres de la tarde, el registro del día se queda en lo que había en el lineal, y los clientes que llegan a última hora no dejan ninguna huella. Los estadísticos llaman censurados a estos datos. Casi todo el reaprovisionamiento de las cadenas de tiendas se basa en ellos, y el error que introducen no se queda quieto.

1. Las ventas son la demanda limitada por el stock

Llamemos D a la demanda del día e I al stock disponible. La caja ve y = min(D, I): toda la demanda el día que el lineal aguanta, y exactamente el stock el día que no. La parte perdida, D − y, nunca se registra. Por eso una media de ventas de 28 días mezcla dos tipos de día, y los días con rotura la arrastran hacia abajo. Lo mismo le pasa a la variabilidad de las ventas, el otro dato que necesita el stock de seguridad. Encontrar esos días es el primer paso; la guía sobre roturas de stock explica cómo detectarlos en los datos de ventas y de stock.

2. Cuánto esconde un día

La medición pública más clara viene de FreshRetailNet-50K, un conjunto de datos publicado en 2025 por el supermercado online chino Dingdong: ventas por hora de 863 productos perecederos en 898 puntos de 18 ciudades, con cada hora marcada cuando el producto estaba agotado1. Los puntos son pequeños almacenes de frescos que entregan en 30 minutos y que el artículo llama tiendas. Después de la reposición de las 6:00, las roturas bajaban de un 2 %; a partir de ahí subían de forma constante hasta el 26 % a las 20:00.

A la venta a las 06:00, después de la reposición98Todavía a la venta a las 20:0074

De cada 100 productos que tiene un punto, redondeado a partir de las tasas de rotura por hora de FreshRetailNet-50K.

Un producto que se agota por la tarde sigue teniendo ventas ese día, así que un informe diario lo cuenta como disponible. A su registro le falta lo que se habría vendido a última hora. En el conjunto de datos, recuperar la demanda oculta eliminó una subestimación sistemática del 7,37 %1. Un estudio de 2026 sobre los mismos datos desglosó la censura por categoría2:

Verdura de hojaHoras-tienda con rotura31,2 %Error de previsión, entrenada con ventas42,8 %Error de previsión, teniendo en cuenta la censura38,9 %Reducción simulada de mermas4,7 puntos
Pescado y mariscoHoras-tienda con rotura27,6 %Error de previsión, entrenada con ventas41,5 %Error de previsión, teniendo en cuenta la censura38,0 %Reducción simulada de mermas4,2 puntos
FrutaHoras-tienda con rotura21,4 %Error de previsión, entrenada con ventas39,4 %Error de previsión, teniendo en cuenta la censura36,9 %Reducción simulada de mermas3,4 puntos
CarneHoras-tienda con rotura19,8 %Error de previsión, entrenada con ventas38,3 %Error de previsión, teniendo en cuenta la censura36,2 %Reducción simulada de mermas3,0 puntos
Hortalizas de raízHoras-tienda con rotura17,3 %Error de previsión, entrenada con ventas37,6 %Error de previsión, teniendo en cuenta la censura35,8 %Reducción simulada de mermas2,6 puntos
LácteosHoras-tienda con rotura8,9 %Error de previsión, entrenada con ventas35,2 %Error de previsión, teniendo en cuenta la censura34,4 %Reducción simulada de mermas1,4 puntos
Yin, Zheng y Kong (2026) sobre FreshRetailNet-50K. El error de previsión es el error porcentual absoluto ponderado (WAPE); la reducción de mermas sale de una simulación de reaprovisionamiento.

La pauta es monótona: cuanto más a menudo se agota una categoría, más falla una previsión entrenada con ventas y más recupera una que tiene en cuenta la censura. Los lácteos, con una vida útil larga y pocas horas de lineal vacío, apenas se mueven.

3. El modelo aprende el lineal

Cualquier modelo al que se le pide reproducir las ventas reproduce también su tope. Yin, Zheng y Kong lo dicen sin rodeos: «Todo modelo entrenado para reproducir las ventas subestima la demanda en torno a un ocho por ciento»2. Cuando ocultaron más horas punta, de una décima parte a la mitad, el sesgo de un buen modelo entrenado con ventas pasó del −4,2 % al −21,1 %. Su modelo trata una hora con rotura como un mínimo y no como la demanda: la demanda fue, como poco, lo que se vendió. En su simulación, pedir a partir de él redujo las mermas modelizadas del 9,8 % al 6,4 %, mientras la parte de la demanda atendida subía del 92,9 % al 94,7 %2. Menos mermas y mejor disponibilidad a la vez es lo que se ve cuando se corrige un sesgo; un modelo que simplemente pidiera más habría ganado en una cosa a costa de la otra.

4. La espiral

Con el tiempo el sesgo crece, porque la previsión fija el siguiente pedido y el pedido fija el siguiente registro:

  1. El lineal se vacía por la tardeLas ventas se quedan en lo que había

  2. El día entra en el histórico como un día flojoLa demanda de última hora no aparece

  3. La previsión aprende la cifra más baja

  4. El siguiente pedido es más pequeño

  5. El lineal se vacía antesy el registro vuelve a bajar

La espiral descendente de una previsión entrenada con ventas censuradas.

Pedregal, Trapero y Holgado de Frutos lo pusieron a prueba con una serie de producto del conjunto de datos M5 de ventas de Walmart, censurándola en el stock que habría tenido una política de pedidos3. Con un objetivo del 70 %, una previsión estándar de suavizado exponencial siguió la demanda durante cinco semanas, hasta las primeras roturas; después de una mala semana, «ETS nunca se recupera de esa mala previsión», porque cada pedido corto generaba el siguiente registro corto. Su variante Tobit, que lee un día agotado como un límite inferior, mantuvo el rumbo. Con un objetivo del 80 % de ciclos de pedido sin rotura:

Suavizado exponencial estándar

Suavizado exponencial Tobit

Misma serie, mismo objetivo

Error medio de previsión, unidades al día
−42,3
−6,6
Ciclos sin rotura conseguidos
69,4 %
85,1 %
Ventas perdidas en la prueba, unidades
10.817
4.349
Pedregal, Trapero y Holgado de Frutos, versión preprint (2024) del artículo de 2025.

Las personas también lo hacen. En una cadena de supermercados de gama alta cuyos encargados de tienda podían modificar las propuestas de pedido de frescos del sistema, un estudio de 2026 encontró que, después de una rotura de stock, los encargados tendían más a recortar la propuesta, como si el lineal vacío hubiera demostrado que el producto se vende menos, y que esos recortes hacían más probable la siguiente rotura4. Bloquear los recortes que seguían a una rotura redujo esas roturas provocadas por los propios encargados con un coste de inventario razonable4. Qué cambios debería poder hacer un comprador y cuáles debería cuestionar el sistema lo explica la guía de IA para el reaprovisionamiento de tiendas.

5. Cuando la propia marca es errónea

Detectar un lineal vacío en los datos depende del stock en sistema, y ese registro puede estar mal justo en el sentido que lo oculta. Cuando el sistema muestra unidades que el lineal no tiene, las ventas se paran, nada dispara un pedido y el día parece un día sin demanda en lugar de una rotura. En un estudio de unos 24.000 productos en 11 tiendas de una gran cadena europea de alimentación, un recuento completo del stock subió las ventas de toda la tienda un 11 %, y todo ese aumento vino de productos cuyo registro mostraba más stock del que había en el lineal5. En esos productos el efecto fue 2,67 veces la media de la tienda. La censura y los errores de registro son un mismo problema visto desde dos lados: ambos convierten el stock que falta en una aparente falta de demanda.

6. Qué hacer con los días de lineal vacío

  1. Marca cada día de tienda y producto que cerró sin stock, y cada racha de ventas cero mientras el stock en sistema sigue mostrando unidades.
  2. Deja los días marcados fuera de la media y de la variabilidad de las ventas, o trátalos como un mínimo, como hacen Tobit y modelos parecidos. Nunca como un día de demanda nula o baja.
  3. En los frescos, guarda la hora en que se vació el lineal. Un día que se agotó a las 14:00 perdió mucho más que uno que se agotó a las 20:00.
  4. No recortes un pedido porque las ventas de la semana pasada fueron bajas si el lineal estuvo vacío parte de ella.
  5. Cuenta los productos que muestran stock pero han dejado de venderse, para poder fiarte de las propias marcas.

La media corregida alimenta después el punto de pedido y el stock de seguridad como siempre.

7. Limitaciones

FreshRetailNet-50K procede de los puntos de entrega de un supermercado online en China, no de tiendas físicas, y su artículo es un preprint. La tabla por categorías y las cifras de mermas salen de simulaciones sobre esos datos, con la demanda reconstruida a partir de supuestos. Las cifras de la espiral proceden del preprint del artículo publicado y se basan en una sola serie de producto. El estudio sobre los encargados se cita a partir de su resumen, y el del recuento de stock procede de un solo minorista. Ninguno mide directamente las ventas perdidas de una cadena de tiendas europea, algo que ninguna caja puede hacer.

Cómo lo resuelve marql

En Retail-Bench, la simulación abierta que ha creado marql para probar políticas de reaprovisionamiento, todos los estimadores leen un día que terminó con el lineal vacío al nivel de los días que no, ya sea la fórmula de manual, la regla que se aplica a mano o el motor de marql6. La simulación conoce la demanda real detrás de cada venta, así que puede medir lo que cuestan los lineales vacíos, algo que una cadena real solo puede estimar.

  1. Wang, Y., Gu, J., Long, L. et al. (2025). FreshRetailNet-50K: a stockout-annotated censored demand dataset for latent demand recovery and forecasting in fresh retail. arXiv:2505.16319, preprint. arxiv.org
  2. Yin, C., Zheng, Y. y Kong, Z. (2026). Demand hidden by stockouts: censored demand recovery and green waste-reduction forecasting for sustainable fresh-food consumption under emerging-market urbanization. Sustainability, 18(15), 7642. doi.org
  3. Pedregal, D. J., Trapero, J. R. y Holgado de Frutos, E. (2025). Tobit exponential smoothing, towards an enhanced demand planning in the presence of censored data. International Journal of Production Research. Cifras del preprint, arXiv:2407.17920. doi.org
  4. Özdemir, B. y Tenhiälä, A. (2026). Discretion in automated supermarket replenishment: censorship bias and self-inflicted stockouts. Manufacturing & Service Operations Management. doi.org
  5. Rekik, Y., Oliva, R., Syntetos, A. y Glock, C. H. (2026). Inventory record inaccuracy in grocery retailing: impact of promotions and product perishability, and targeted effect of audits. Journal of Business Logistics. doi.org
  6. MARQL Retail-Bench (2026). Metodología, ecuación 2. retail-bench.marql.one

TemasDemanda censurada, Ventas perdidas, Previsión de la demanda, Reaprovisionamiento de tiendas

Escrito por

Maxim T.

CMO, marql

Sigue a marql en LinkedIn

Todos los artículos

Retail

Stock de seguridad en una cadena de tiendas: por qué un único factor de margen no sirve para todos los proveedores

Muchas herramientas de reaprovisionamiento calculan el margen de seguridad con un único factor para todos los productos. Aplicado a tres tipos de proveedor, el factor correcto varía siete veces, y un proveedor irregular duplica por sí solo el margen.

Por Maxim T.

Retail

Punto de pedido en una cadena de tiendas: por qué «7 días de cobertura, reponer hasta 14» hace perder dinero

«Pide cuando a un producto le quede una semana de stock y repón hasta dos» es como piden muchas cadenas. La regla ignora las tres cosas que deciden cuándo se vacía un lineal. Un año simulado en cuatro cadenas muestra lo que cuesta, y una fórmula breve corrige la mayor parte.

Por Maxim T.

Retail

IA para el reaprovisionamiento de tiendas: qué debe decidir el algoritmo, qué el comprador y cómo saber si ayuda

El reaprovisionamiento automático lleva años en los supermercados, y los compradores siguen modificando buena parte de sus pedidos. Los estudios de campo recientes muestran qué modificaciones ayudan, cuáles provocan la siguiente rotura de stock y qué tiene que demostrar un agente de IA de aprovisionamiento antes de ganarse más autoridad.

Por Maxim T.

Blog

Preguntas frecuentes

La demanda que no se puede observar entera porque el producto se agotó. Las ventas registradas son iguales a la demanda los días en que el lineal aguanta e iguales al stock disponible los días en que se vacía; la diferencia se pierde y nunca aparece en los datos.

Una previsión entrenada con ventas aprende el límite de stock como si fuera demanda. Los días que se agotaron pronto arrastran hacia abajo la media y la variabilidad, así que la siguiente previsión y el siguiente pedido son más pequeños, lo que hace más probable la siguiente rotura.

Sí, o tratarlos como un mínimo. Excluirlos es la solución sencilla para una media móvil; modelos como el suavizado exponencial Tobit leen un día agotado como un límite inferior de la demanda en lugar de descartarlo.

Usa el stock en sistema: un día que cerró con stock cero está censurado. Marca también las rachas largas de ventas cero en productos que suelen venderse mientras el sistema muestra stock, porque a menudo son stock fantasma.

No. En simulaciones publicadas, una previsión que tiene en cuenta la censura redujo las mermas y mejoró la disponibilidad a la vez, porque lleva el stock hacia los productos y las horas que se estaban agotando en lugar de subir todos los pedidos.

¿Listo para ver
los euros que ha encontrado?

Conecta tus cajas, tu stock y tu contabilidad en un día. Acceso de solo lectura, sin cambiar el TPV, 200 € al mes por local y menos a medida que creces.

0
Sustitución de tus sistemas
1
Un chat. Todo el negocio.