La cola del andén Ejemplo ficticio
Un diagnóstico completo, de principio a límite, sobre Andén Norte: el centro de distribución FICTICIO de este sitio. Sus datos se generaron por programa. Ninguna cifra de esta página viene de una empresa real, y aquí no hay cliente, ni ahorro, ni resultado comercial: hay un problema mal planteado, los números que lo plantan bien, lo que se descartó con ellos y lo que todavía no se puede saber.
Situación: recibo de Andén Norte · 2026-07-01 a 2026-08-31 · 752 citas1
Cuatro números antes de leer nada
Si solo te llevas cuatro cifras, que sean estas. Las tres primeras son las que trae cualquier tablero de recibo; la cuarta es la que nadie mira y la que decide.
- citas de recibo
- 752
- cumplimiento de cita
- 81.4%
- proveedores
- 12
- llegadas con el andén ocupado
- 127
Fuente: las tres primeras salen de creador/producto/datos/soluciones.json; la cuarta se calcula sobre fact_recibo.csv — notas 1 y 5.
Cómo se llega de «el andén está congestionado» a una decisión
- Síntoma. «El andén de recibo está congestionado; hacen falta más puertas.» En el piso esto se ve así: camiones esperando afuera, el de la puerta 1 descargando cuando ya llegó el de la 3, y alguien pidiendo presupuesto para un andén más. Es un grito, no un dato. Nadie que lo grita sabe cuántos minutos se pierde ni en qué hora.
- El dato que se pide. Una sola tabla, con un renglón por cita y seis columnas: a qué hora estaba citada, a qué hora llegó de verdad, cuánto tardó la descarga, en qué andén, de qué proveedor y cuántas cajas. Sin esas seis columnas no hay diagnóstico: hay opinión1. Lo que no existe en ningún lado y sí haría falta, se anota desde el principio (paso 07).
-
Cómo se mide. Cuatro cuentas, en este orden:
· Cumplimiento de cita = las citas con llegada a menos de 15 minutos de su hora, entre todas: 81.4%2.
· Retraso promedio por proveedor, para ver quién lo empuja: once de doce quedan por arriba de 75%; PRV-07 llega 53.6 minutos tarde en promedio y solo cumple 4.8%3.
· Separar espera de tiempo efectivo: a cada cita se le construye el intervalo [llegada, llegada + minutos de descarga) y se cuentan las que llegaron con su andén todavía ocupado por el camión anterior: 127 de 752, el 16.9%5. El tiempo efectivo de descarga, por cierto, es estable: media 64.5 minutos, mediana 64, todo entre 35 y 956.
· Carga del andén: esos minutos sumados dan 48,497 minutos-andén repartidos en 53 días con citas y 8 andenes: 915 minutos por día, unos 114 por andén7.
Las cuatro cuentas las hace kpis_control.py, el script que lee estos CSV y escribe soluciones.json; las mismas medidas en Power BI están en medidas.dax. Puedes correr el script contra los datos descargables y te da estos números. -
Qué se descartó. Aquí es donde el diagnóstico vale o no vale. Cuatro cosas cayeron:
· «Falta capacidad: hay que construir otro andén». Descartado. Con 14.2 citas por día sobre 8 puertas y 114 minutos de uso por puerta, la ocupación sale baja aunque se le suponga una ventana de nueve horas (06:00–15:00, que es el rango en que caen las citas): en torno a 21%. Además las citas no se amontonan en una franja — entre 76 y 89 citas en cada una de las nueve franjas, y el día más cargado tiene 178. Nadie compra una puerta para resolver esto.
· «El andén va mal en general». Descartado. El promedio general esconde al único responsable: si se saca a PRV-07, el cumplimiento sube de 81.4% a 88.4% sobre las otras 689 citas4. Once de doce proveedores ya están entre 75.4% y 93.8%.
· «PRV-07 trae camiones más grandes o descarga más lento». Descartado. Descarga 63.9 minutos en promedio contra 64.5 del resto, y 250 cajas por cita contra 270 de promedio general9. Su trabajo es normal; lo anormal es a qué hora se presenta.
· «Las colisiones entre camiones son de PRV-07». Descartado también. De las 127 llegadas con el andén ocupado, solo 15 son suyas; se reparten entre los doce proveedores10. La congestión existe, pero no la causa el mismo problema que tumba el indicador. - La decisión. No se rediseña el recibo, no se contrata gente, no se compra nada. Se hace una llamada: la ventana de cita de PRV-07 se mueve a su hora real de llegada (sus llegadas se concentran entre las 11:00 y las 14:00: 31 de sus 63 citas11) o se acuerda una consecuencia por reprogramar sin avisar. Y a la vez se pide el dato que falta para poder confirmar. Costo de la intervención: una llamada y un renglón en el acuerdo de nivel de servicio. Consecuencia no buscada, y hay que nombrarla: mover la hora de la cita sin mover la conducta del proveedor sube el indicador y deja el andén igual. Por eso la comprobación no puede ser el cumplimiento.
-
Cómo se comprueba si funcionó. Se vuelve a correr el mismo script sobre el mes siguiente, y se leen tres números en este orden — el primero es el que no se puede inflar moviendo papeles:
· Llegadas con el andén ocupado: tienen que bajar de 127 de 752. Depende de cuántos camiones hay en el patio, no de a qué hora los citaron.
· Citas de PRV-07 con más de 30 minutos de retraso: hoy son el 87.3%12. Si su conducta cambió, esto baja.
· Cumplimiento general: debe subir hacia 88.4%, que es el nivel que los otros once proveedores ya sostienen. Si solo este sube y los otros dos se quedan quietos, se cambió el calendario, no el andén, y la decisión estaba mal.
Y la prueba de fuego de la otra hipótesis: si el cumplimiento sube y las colisiones también suben, «falta capacidad» estaba mal descartado y se reabre con los datos de ventana de atención en la mano. -
El límite: qué dato faltaría. Esta muestra llega hasta donde llegan sus archivos, y ahí se acaba. Cuatro huecos, en orden de lo que bloquean:
· No hay hora de salida del camión. minutos_descarga es un dato, no una diferencia de dos marcas de tiempo: el intervalo está derivado, no medido. Las 127 colisiones son una inferencia razonable, no una espera observada13.
· No hay horario del andén. El archivo no dice a qué hora abre y cierra la puerta, ni cuántas personas atienden el recibo por turno; dim_operador.csv solo trae operador, turno y antigüedad del personal de surtido14. Sin ventana real, el 21% de ocupación es una estimación con la ventana prestada, y por eso la compra de una puerta no se cierra aquí: se aplaza hasta tenerla.
· No hay costo. Ni minuto de camión ocioso, ni hora de portuario, ni inversión de una puerta. Esta muestra dice qué mover primero y cómo comprobarlo; no puede decir cuánto vale ni cuánto se recupera, y por eso no lo dice.
· No hay relación con lo que el recibo deja disponible. El inventario diario está por SKU y fecha15, no por andén ni por hora, así que no se puede encadenar «esta cita llegó tarde» con «esta falta salió a la venta».
Y uno que es de método, no de archivo: los datos de Andén Norte se generaron por programa. Que el razonamiento aguante aquí no prueba que aguante en tu CEDIS; prueba que el método se puede seguir de punta a punta con cada cifra en la mano.
Los doce proveedores, uno por renglón
Esto es lo que se abre después de calcular, no antes de preguntar. Ordenado de menos a más cumplimiento: un renglón se sale de la fila y los otros once se parecen entre sí. Todo sale de la misma columna proveedor y de la misma resta entre llegada y cita.
| Proveedor | Citas | Cumplimiento ±15 min | Retraso promedio | Citas con más de 30 min | Descarga promedio |
|---|---|---|---|---|---|
| PRV-07 | 63 | 4.8% | +53.6 min | 87.3% | 63.9 min |
| PRV-10 | 65 | 75.4% | +1.8 min | 0.0% | 64.2 min |
| PRV-05 | 63 | 84.1% | +4.0 min | 0.0% | 64.8 min |
| PRV-01 | 57 | 84.2% | +2.0 min | 3.5% | 66.2 min |
| PRV-02 | 64 | 87.5% | +3.8 min | 0.0% | 66.4 min |
| PRV-11 | 50 | 88.0% | +4.0 min | 0.0% | 68.9 min |
| PRV-06 | 80 | 91.2% | +1.9 min | 0.0% | 66.9 min |
| PRV-12 | 68 | 91.2% | +3.4 min | 2.9% | 65.8 min |
| PRV-09 | 59 | 91.5% | +2.2 min | 0.0% | 60.4 min |
| PRV-08 | 63 | 92.1% | +2.2 min | 0.0% | 61.0 min |
| PRV-04 | 56 | 92.9% | +3.2 min | 0.0% | 63.7 min |
| PRV-03 | 64 | 93.8% | +3.7 min | 0.0% | 61.6 min |
Origen: creador/producto/datos/fact_recibo.csv · citas y cumplimiento y retraso promedio también en soluciones.json (campo cumplimiento_cita_por_proveedor) · nota 3.
Cuatro renglones del archivo, sin tocar
Así se ve la tabla antes de agregarla. El segundo es el caso completo: citado a las 12:00, llegó a las 13:00.
| cita_id | proveedor | andén | hora de cita | hora de llegada | minutos de descarga | cajas |
|---|---|---|---|---|---|---|
| CIT-00001 | PRV-05 | 8 | 12:00 | 11:57 | 72 | 504 |
| CIT-00002 | PRV-07 | 1 | 12:00 | 13:00 | 66 | 240 |
| CIT-00003 | PRV-06 | 8 | 12:00 | 11:52 | 68 | 120 |
| CIT-00004 | PRV-05 | 7 | 12:00 | 12:11 | 87 | 144 |
Origen: los cuatro primeros registros de creador/producto/datos/fact_recibo.csv, tal cual están en el archivo · nota 1.
De dónde sale cada cifra
Todos los archivos viven en creador/producto/datos/ dentro del repositorio del sitio, y los mismos datos se pueden descargar en el ZIP de Andén Norte. Donde dice «en fact_recibo.csv» la cifra está calculada renglón por renglón sobre ese archivo con la operación que se nombra; donde dice «en soluciones.json» la cifra ya está escrita ahí, y soluciones.json lo que hace es ser la salida de kpis_control.py sobre esos mismos CSV.
- 752 citas, 12 proveedores, 8 andenes, dos meses (2026-07-01 a 2026-08-31) y las seis columnas de la tabla. Un renglón por cita en fact_recibo.csv; el conteo de citas también está en soluciones.json (campo citas) y el detalle de columnas en el encabezado del CSV.
- Cumplimiento de cita 81.4% (0.8138). soluciones.json, campo cumplimiento_cita_15min. La cuenta: citas con |llegada − cita| ≤ 15 minutos, dividido entre las 752.
- PRV-07: 63 citas, 4.8% de cumplimiento, +53.6 minutos de retraso promedio; los once restantes entre 75.4% y 93.8%. soluciones.json, campo cumplimiento_cita_por_proveedor, que a su vez sale de agrupar fact_recibo.csv por la columna proveedor.
- 88.4% sacando a PRV-07, sobre 689 citas. Calculado en fact_recibo.csv: la misma cuenta de la nota 2, excluyendo los 63 renglones con proveedor = PRV-07.
- 127 llegadas con el andén ocupado (16.9%). Calculado en fact_recibo.csv: para cada cita, intervalo [hora_llegada, hora_llegada + minutos_descarga); se cuenta la cita si otro camión del mismo anden todavía estaba dentro de su intervalo cuando esta llegó.
- Descarga: media 64.5 minutos, mediana 64, mínimo 35, máximo 95. La media está en soluciones.json (campo descarga_promedio_min); la mediana, el mínimo y el máximo, calculados sobre la columna minutos_descarga de fact_recibo.csv.
- 48,497 minutos-andén, 915 por día, 114 por andén, 14.2 citas por día. Calculado en fact_recibo.csv: suma de minutos_descarga; entre 53 fechas distintas con citas y 8 valores de anden.
- Ocupación ≈21%, 76 a 89 citas por franja horaria, 17 citas el día más cargado. Calculado en fact_recibo.csv: 915 minutos por día entre 8 andenes y una ventana supuesta de 540 minutos (06:00 a 15:00); las citas por franja son un conteo por la hora de hora_cita; el máximo por día, un conteo por fecha. La ventana no es un dato del archivo: es el rango que cubren las propias citas, y por eso la ocupación es una estimación (véase la nota al límite, paso 07).
- PRV-07 descarga 63.9 minutos y 250 cajas por cita; el promedio general es 270 cajas. Calculado en fact_recibo.csv: promedio de minutos_descarga y de cajas_recibidas por proveedor, contra el promedio de los 752 renglones (203,224 cajas en total).
- 15 de las 127 colisiones son de PRV-07 y se reparten entre los doce proveedores. Calculado con el mismo criterio de la nota 5, agrupando por proveedor.
- PRV-07 concentra 31 de sus 63 llegadas entre las 11:00 y las 14:00. Calculado en fact_recibo.csv: conteo de sus renglones por la hora de hora_llegada (8 a las 11, 8 a las 12, 5 a las 13, 10 a las 14).
- 87.3% de las citas de PRV-07 entran con más de 30 minutos de retraso. Calculado en fact_recibo.csv sobre sus 63 renglones; la misma cifra está explicada en la lección 5 del curso (/aprende/05-recibo/).
- El intervalo de descarga está derivado, no medido. fact_recibo.csv trae hora_llegada y minutos_descarga, pero ninguna columna con la hora de salida: no hay dos marcas de tiempo que restar.
- El horario del andén y la gente que lo atiende no están en los datos. dim_operador.csv solo tiene operador, turno y antiguedad_meses del personal de surtido (28 operadores), y dim_ubicacion.csv describe posiciones de almacenaje (pasillo, nivel, zona, tipo de rack), no puertas de recibo.
- El inventario está por SKU y fecha, no por andén ni hora. fact_inventario_diario.csv tiene tres columnas: fecha, sku, cajas_existencia.
Qué puedes hacer con esto Ejemplo ficticio
Los datos de Andén Norte son descargables y el mismo cálculo está enseñado paso a paso en el curso. Llévatelos, cárgalos en las calculadoras y verás que el informe no depende de que yo esté presente: depende de que el dato esté.
Bajar los datos de esta muestra Ver la lección del recibo Abrir las calculadoras
Y esto no es: ni un cliente, ni un resultado contratado, ni un ahorro. Es una muestra del método sobre un almacén inventado. Si tu operación es real, la tabla de origen será tuya: así se acuerda el alcance.