En 2019 entré en un almacén de comercio electrónico en Fontana con una desviación de inventario del 1.8%, y el propietario no podía dormir. Nos pasamos una semana investigando. Sin robos. Sin fallos del sistema. La causa raíz: los operarios escuchaban la ubicación B-14-06 como B-14-09. Partes de recogida manuscritos, confirmaciones verbales, y el 6 se parece mucho al 9. Miles de mispicks de un solo carácter al año.

Mi veredicto es simple: añadir un dígito de control al final del código de ubicación es el error-proofing más barato de todo el almacén. Cien veces más barato que scanners nuevos, diez veces más fiable que añadir auditores.

Lo que realmente hace un dígito de control

La idea viene de los códigos de barras. El último dígito del código de barras de un producto no es aleatorio: se calcula a partir de todos los dígitos anteriores, un código de verificación integrado. Haz lo mismo con los códigos de ubicación: añade un carácter calculado del resto mediante un algoritmo fijo. Cuando un operario introduce o escanea una ubicación, el sistema recalcula y rechaza todo lo que no coincida. La tarea se bloquea en el acto.

Un ejemplo. La ubicación A-03-12 calcula un dígito de control de 7, así que el código completo es A-03-12-7. Un operario teclea mal A-03-21. El sistema recalcula, espera 4 en vez de 7, y lanza un error de inmediato. El error muere en el momento en que ocurre en vez de aparecer en el inventario cíclico.

No necesitas inventar el algoritmo. El caballo de batalla es el módulo 10 ponderado: multiplica cada dígito por pesos alternos (1, 3, 1, 3…), súmalos, quédate con el último dígito, réstalo de 10. La mayoría de los WMS admiten reglas de control configurables; si el tuyo no, unas decenas de líneas de código bastan. El único requisito es la consistencia: un algoritmo, en todas partes.

Arregla primero el esquema de codificación, o el dígito de control no sirve de nada

Un dígito de control evita errores de tecleo. No puede arreglar un esquema caótico. Así que antes de añadir el dígito, deja claras las reglas de codificación de ubicaciones. El esquema que doy a mis clientes tiene cuatro segmentos: zona-pasillo-nivel-posición, como A-03-2-12 para zona A, pasillo 3, nivel 2, posición 12.

Algunas reglas duras:

Números primero, letras solo para el segmento de zona, y prohibir los parecidos. I frente a 1, O frente a 0, S frente a 5, Z frente a 2: todos fuera. Una vez vi un almacén que usaba B y 8 como códigos de zona. Los operarios los confundían a diario hasta que se renombró todo.

Longitud fija por segmento. Los números de pasillo siempre con dos dígitos (03, no 3), nivel un dígito, posición dos dígitos. La longitud fija mantiene estable el algoritmo de control y permite a los operarios detectar a simple vista un carácter faltante.

Nunca uses pinyin, nombres de personas ni nombres de productos como ubicaciones. Parece cercano y es un desastre. La "zona de Lao Wang" y la "zona de SKUs calientes" no significan nada para el próximo contratado, y ningún sistema puede validarlas. Los códigos de ubicación sirven a las máquinas y a los procesos, no a la nostalgia.

Modernizar un almacén antiguo no da miedo. Los pasos: genera la tabla completa de nuevas ubicaciones, imprime hojas de conversión antiguo-a-nuevo y pégalas en las entradas de los pasillos; opera en modo dual durante un mes: ambos códigos funcionan, pero el sistema registra el nuevo; tras un mes, retira los códigos antiguos y deja que los scanners solo acepten los nuevos. Gasta de más en impresión durante la transición. Vale la pena.

Configurarlo en el WMS, detectarlo en el scanner

Cuanto antes salte la validación, mejor. Lo ideal es la validación en tiempo real en el propio scanner: el operario escanea el código de barras de la ubicación, el dispositivo verifica el dígito de control en el acto, y un código erróneo recibe una vibración más una luz roja. Eso gana a escanear-luego-sincronizar-luego-error, y gana a descubrir el problema en el conteo de inventario.

En el WMS, tres pasos: añade un campo de dígito de control al maestro de ubicaciones y genéralo en masa; añade la lógica de validación al paso de confirmación de las tareas de picking, putaway y conteo cíclico; define el flujo de excepción: una validación fallida suspende la tarea y la deriva a un supervisor, que puede aprobarla a la fuerza pero debe introducir un motivo.

Esa anulación tiene que existir, porque las etiquetas se dañan y existen las ubicaciones temporales. Pero el campo de motivo es obligatorio. He visto los datos: en almacenes donde las anulaciones forzadas superan 5%, ocho de cada diez veces la causa raíz es la mala calidad de impresión de las etiquetas: cambia la impresora y el problema desaparece. Los datos hablan, pero solo si los registras.

Algo que la mayoría pasa por alto: los conteos cíclicos también necesitan el dígito. Un contador que escanea la ubicación equivocada registra el conteo en el hueco de otro, y las desviaciones se acumulan. Después de activar los dígitos de control, la desviación de conteo suele caer un tercio o más.

Las cuentas: lo que cuesta de verdad un mispick

Un mispick cuesta más que la mano de obra del re-pick. La factura completa: el operario lo descubre y lo devuelve andando, 15 minutos de mano de obra; si no se detecta, llega al cliente: 20 minutos de atención al cliente, flete de reenvío, flete de devolución, y el producto puede no volver nunca. Para paquetería pequeña de comercio electrónico, un mispick promedia de $15 a $35.

Un almacén con 20,000 pedidos al mes y una tasa de mispick del 0.3% son 60 mispicks al mes: más de $10,000 al año en coste directo, sin contar los clientes perdidos.

¿Y el dígito de control? Cero hardware. Los almacenes nuevos lo construyen desde el día uno; los existentes invierten un fin de semana en generar códigos e imprimir etiquetas. El único coste real es medio día de configuración del WMS y una formación de 30 minutos para los operarios. No se me ocurre mejor ROI en almacenes.

La lista de precauciones:

  • Documenta el algoritmo en una carpeta compartida. La formación de nuevas incorporaciones debe cubrirlo en 30 minutos. No dejes que se convierta en una caja negra que solo entiende IT.
  • Las ubicaciones temporales también necesitan códigos. "Temporal" es justo cuando ocurren los errores: no las eximas de la validación.
  • Evita los caracteres especiales. Demasiados guiones confunden a los scanners; un guion entre segmentos basta.
  • En la primera semana tras el go-live, lee a diario el registro de fallos de validación. Los fallos agrupados en pocas ubicaciones suelen significar huecos mal etiquetados: acércate y míralos.

Operario escaneando la etiqueta de una ubicación en un pasillo de estanterías

Qué puedes hacer esta noche

Exporta tu tabla de ubicaciones y fíltrala: ¿tienes "ubicaciones gemelas" que difieren en un carácter, como A-03-16 y A-03-19, o B-14-06 y B-14-09? Si sí, renómbralas primero para crear distancia, y luego añade el dígito de control. Haz esos dos pasos y te apuesto una cena a que tu tasa de mispick cae a la mitad.

La codificación de ubicaciones es de esas cosas en las que nadie piensa hasta que se rompe. Un dígito de control es un seguro para tu esquema de codificación: la prima es casi cero, y a la hora de reclamar te alegrarás de haberlo contratado.

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