Verano de 2019. Estaba en un 3PL de almacenamiento en frío a las afueras de Los Ángeles cuando llegó un aviso de retirada de la FDA. El producto del cliente estaba mezclado en tres lotes, y al almacén le tomó dos días completos encontrar los pallets exactos. Eso le costó al cliente unos $400,000 y le costó al almacén la cuenta. Después de 20 años en almacenes, lo digo sin rodeos: en un almacén de alimentos, la gestión de lotes y fechas de caducidad no es un extra. Es la línea entre seguir en el negocio y quebrar. Antes de aceptar un cliente de alimentos, repasa cada proceso de este artículo. Si no puedes hacerlos, no firmes el contrato.

La recepción es donde empieza todo, y es donde la mayoría de los almacenes la fastidia. Un pallet completo llega al muelle, la lista de empaque del conductor dice «exp 03/2027», ¿y simplemente lo tecleas? No. Los pallets mixtos de los proveedores de alimentos son la norma: tres lotes de producción en un pallet es rutina, y muchas listas de empaque traen una sola fecha de caducidad para toda la carga. La forma correcta: desglosa el pallet en la recepción, escanea o revisa visualmente cada caja, y registra el número de lote y la fecha de caducidad de cada caja a nivel de SKU, no a nivel de pallet. Las fechas van en formato completo YYYY-MM-DD. Cuando un proveedor escribe «03/2027» sin día, nuestro SOP dice que por defecto se usa el último día de ese mes, para que el sistema nunca marque el producto como caducado antes de tiempo, y los recepcionistas no pueden improvisar.

Algo de producto llega sellado con fechas julianas, como «25073» para el día 73 de 2025. Si tu recepcionista no sabe leer una fecha juliana, cada fecha de caducidad quedará mal tecleada. Mi regla no se negocia: el SOP de recepción incluye una tabla de conversión de fechas julianas pegada en la pared del muelle, y el campo de caducidad del WMS solo acepta YYYY-MM-DD. El escáner valida el formato en el acto y rechaza lo que no coincida. Un solo dígito mal en una fecha de caducidad y estarás desarmando un pallet completo después. Ya hice las cuentas: desglosar un pallet en una instalación de frío, mano de obra más energía de congelación, cuesta al menos $200.

Operario escaneando etiquetas de lote de un pallet con una terminal portátil en un pasillo de almacenamiento en frío

Un dígito mal en la fecha de caducidad, y estás desarmando todo el pallet

Teclear los datos es solo el principio. Lo que importa es lo que el WMS hace con ellos. Muchos almacenes tienen un WMS con capacidad FEFO y nunca lo han configurado, así que la preparación sigue yendo a lo que esté más cerca. Hacer FEFO realidad se reduce a tres ajustes, todos obligatorios. Primero, la estrategia de asignación: en la ola de salida, pon la asignación en fecha de caducidad ascendente, para que el sistema siempre elija el lote disponible con la caducidad más próxima de un SKU, y coloca esa regla por encima del picking por proximidad. Segundo, umbrales de caducidad: mantén un campo de «días vendibles» por SKU, por ejemplo 14 días para el yogur, 90 para la carne congelada, y bloquea automáticamente cualquier inventario por debajo de su umbral para que nunca se asigne. Tercero, reglas de congelación por proximidad de caducidad: el inventario que entra en sus últimos 30 días (7 días para categorías frescas) se mueve automáticamente a una ubicación de bloqueo, y si una tarea de picking escanea un lote bloqueado, el escáner lanza un error que solo un supervisor puede anular. Con esos tres configurados, el FEFO funciona de verdad. Sin ellos, es un eslogan en la pared.

Hay otra trampa: las rupturas de lote. Cuando el picking abre una caja, el WMS necesita una transacción de ruptura de lote para que la cantidad abierta herede el lote y la fecha de caducidad originales. He visto demasiados almacenes saltársela para ahorrar tiempo, y entonces los lotes en los libros no coinciden con los lotes del piso. Una regla dura: cada vez que el producto físico se mueve, el sistema se mueve con él. La identidad del lote sigue al producto, siempre.

El panel de caducidades: 90/60/30 días, con un nombre en cada acción

Enterarte con 30 días de margen es enterarte demasiado tarde. Nuestro panel de caducidades funciona en tres niveles y se actualiza automáticamente cada mañana. Nivel de 90 días, amarillo: la acción es avisar al cliente para que haga una promoción o transfiera stock, el responsable es atención al cliente. Nivel de 60 días, naranja: la acción es una reunión semanal de agotamiento con el cliente, el responsable es el supervisor de operaciones. Nivel de 30 días, rojo: la acción es congelar salidas, modo solo envíos, y conteo cíclico diario, el responsable es la propia gerente del almacén. La acción y el responsable de cada nivel van en el SOP y en la pared de la oficina, no en la cabeza de nadie.

Las cuentas del panel tienen que ser consistentes: usa «días restantes = fecha de caducidad menos hoy», no «días desde la recepción». Una vez vi un almacén que corría sus alertas con 180 días desde la recepción, pero el proveedor había enviado producto con solo 100 días de vida útil restantes. Las alertas eran decoración. E informa a nivel de lote, nunca totales de SKU. «Quedan 500 cajas de yogur» no sirve. «Lote L250310, 500 cajas, caduca en 32 días, en A-12-03» sí es algo con lo que puedes actuar.

Simulacros de retirada: si no encuentras el lote en 2 horas, tú eres el titular

La FDA espera que localices cada lote afectado, sus posiciones de inventario y su historial de envíos en un plazo de 2 horas. Dos horas, no dos días. La mayoría de los almacenes nunca ha hecho este simulacro, así que una retirada real se convierte en una carrera descontrolada. Nosotros hacemos simulacros trimestrales con un guion fijo: sacas un número de lote al azar, pones el cronómetro en marcha. En el WMS, sacas el inventario actual de ese lote, cada ubicación y cantidad. Sacas su historial de salidas, cada cliente, cantidad y fecha de envío en los últimos 60 días. Sacas el estado en tránsito y entregado. En 2 horas, produces una hoja: cuánto hay en el edificio, cuánto en tránsito, cuánto entregado, y en manos de quién está. Luego haces la retrospectiva. Una hora extra significa un eslabón roto en el proceso.

¿Por qué la retirada de Los Ángeles de 2019 tardó dos días? La retrospectiva encontró tres problemas: la recepción registraba los lotes a nivel de pallet, así que la identidad del lote se perdía en cuanto se desarmaban los pallets; parte de la salida iba en tickets de papel que nunca llegaron al WMS; y un tercio de los campos de caducidad estaban en blanco. Los tres eran fundamentos. Ninguna tecnología sofisticada los habría salvado. La gestión de lotes en un almacén de alimentos no depende de lo caro que sea tu sistema. Depende de lo disciplinado que sea tu proceso.

Conteos cíclicos que no cuadran: las 3 causas principales

Una cosa más: los conteos cíclicos. Cuando los lotes no concilian en un almacén de alimentos, siempre es por una de tres cosas. Primero, los pallets mixtos nunca se desglosaron en la recepción, así que los libros muestran un lote y el piso muestra tres. Segundo, las aperturas de caja se saltaron la transacción del sistema, así que las cantidades abiertas en los libros no coinciden con las cajas sueltas del piso. Tercero, las fechas de caducidad se teclearon mal, así que el lote que el sistema indica en la ubicación A-12-03 no es el lote que realmente está ahí, y el FEFO manda a los preparadores al producto equivocado. La solución es aburrida: añade un paso de verificación de lotes en la recepción con una segunda persona que revise al azar el 10 por ciento; exige una transacción de escáner por cada apertura de caja, nada de registros a mano; y haz un conteo mensual solo de lotes de un SKU, solo lotes y fechas, sin cantidades, quince minutos como máximo.

Algo que puedes usar mañana: entra en tu WMS y saca tres números. Cuántos SKU tienen el campo de caducidad en blanco. En qué posición está el FEFO en tu prioridad de asignación. Si tienes alertas de umbrales de caducidad siquiera. Esos tres números te dicen si tu gestión de lotes es real o de papel. Si más del 5 por ciento de tus campos de caducidad están en blanco, no aceptes un nuevo cliente de alimentos. Limpia primero el desorden viejo.

Traducido del inglés. En caso de discrepancia, prevalece la versión en inglés.