Storytelling

Row

Contexto estratégico (modelo A³: Atención - Audiencia - Acción)

Atención · problema
Espera larga y cupos perdidos por citas canceladas o no atendidas.
Audiencia
Dirección médica, coordinación de calidad y gerencia administrativa.
Acción
Rediseñar la agenda de la jornada y reducir la pérdida de cupos.

Row

La demanda es estable, sin temporadas

La espera crece a lo largo del día

La edad no explica la espera

Row

Lectura: demanda mensual

Evidencia
Estable: 935 citas/mes, entre -9,4 % y +7,6 %. Sin temporadas. Se excluye diciembre 2024 (incompleto).
Por qué importa
La demanda no explica la espera.
Acción
No reforzar por temporada; revisar la jornada.

Lectura: espera por hora

Evidencia
De 15,7 min (8:00) a 66,0 min (17:00): 4,2 veces más.
Por qué importa
Los retrasos se acumulan: la consulta dura 17,5 min y la cita reserva 15.
Acción
Ajustar el tiempo por cita o añadir pausas desde las 10:00.

Lectura: espera por edad

Evidencia
De 43,2 a 45,2 min: solo 2,0 min de diferencia.
Por qué importa
La edad no es la causa: es el proceso.
Acción
Intervenir la agenda, no un grupo de edad.

Exploración

Row

Espera por hora (interactivo: cursor, zoom y paneo)

La espera se acumula hora a hora (pulse ▶)

Mapa de calor: la tarde concentra la espera

Row

Lectura: gráfico interactivo

Evidencia
Supera 30 min desde las 10:00 (31,4 min).
Por qué importa
Cursor, zoom y paneo: la gerencia halla sola la hora crítica, sin pedir reportes.
Acción
Fijar un umbral (30 min) y actuar desde las 10:00.

Lectura: animación

Evidencia
Cada hora suma en promedio 5,5 min de espera.
Por qué importa
Se ve cómo el retraso se hereda de una cita a la siguiente.
Acción
Intervenir temprano: antes de que se cruce el umbral de las 10:00.

Lectura: mapa de calor

Evidencia
Lo más rojo está a las 17:00, todos los días (68 min como máximo).
Por qué importa
El problema se repite cada día: es de diseño de la agenda.
Acción
Aplicar el cambio de agenda de lunes a viernes, la tarde primero.

Profundización

Row

Espera por día y hora (3D: arrastre para rotar)

Se pierde uno de cada cuatro o cinco cupos

La pérdida de cupos es pareja durante el día

Row

Lectura: espera por día y hora

Evidencia
Mismo patrón cada día: 16,7 min de variación entre horas y 1,2 entre días.
Por qué importa
El cuello de botella es estructural, no de un día.
Acción
Rediseñar la agenda todos los días, la tarde primero.

Lectura: pérdida de cupos

Evidencia
22,4 % de citas se pierde: 16,5 % canceladas y 6,0 % no asistió.
Por qué importa
Cupo perdido = capacidad sin usar mientras otros esperan.
Acción
Recordatorio previo y lista de espera.

Lectura: pérdida según la hora

Evidencia
La pérdida va de 21,7 % a 22,8 % según la hora.
Por qué importa
No hay una franja 'mala' para cancelar: el problema es general.
Acción
Recordatorios para todos, no por franja.

Acción

Row

Espera media (min)

44,1

Pacientes que esperan más de 30 min

54 %

Inasistencia (%)

Citas analizadas

111.488

Row

Hallazgos clave: el problema es la agenda del día

4,2×
más espera al final de la jornada
54 %
de los pacientes espera más de 30 min
17,5 vs 15
min de consulta vs min reservados por cita
22,4 %
de las citas se pierde

Row

Recomendaciones ejecutivas

1. Rediseñar la agenda diaria
Tiempo por cita acorde a la consulta (hoy 15 min reservados frente a 17,5 min reales) o pausas cada pocas citas.
Meta: espera de la tarde por debajo de 30 min. Seguimiento: espera media y % que espera más de 30 min.
2. Reducir los cupos perdidos
Recordatorio previo a todos los pacientes, con opción de cancelar o reprogramar, y lista de espera para los cupos liberados (16,5 % son cancelaciones).
Seguimiento: % de inasistencia (hoy 22,4 %).

Análisis General

Column

Indicadores Clave

Espera media (min)
44,1
Esperan más de 30 min
54 %
Inasistencia (canceladas + no asistió)
22,4 %
Citas analizadas
111.488

Distribución de las Variables de la Agenda y del Paciente

Relación entre: (1) Día, Hora y Espera - (2) Edad, Duración de la Consulta y Espera

Column

Distribución de la Espera por Hora del Día

Modelo Analítico

Regresión logística: probabilidad de esperar más de 30 min
(espera_larga = 1 si la espera supera 30 min)

Call:
glm(formula = espera_larga ~ hora + age + scheduling_interval + 
    sex + dia, family = "binomial", data = train_data)

Coefficients:
                      Estimate Std. Error z value Pr(>|z|)    
(Intercept)         -2.7582956  0.0475526 -58.005  < 2e-16 ***
hora                 0.2396137  0.0029433  81.411  < 2e-16 ***
age                 -0.0001938  0.0004062  -0.477  0.63325    
scheduling_interval  0.0030095  0.0013097   2.298  0.02157 *  
sexMale             -0.0002321  0.0166687  -0.014  0.98889    
diamartes           -0.0755080  0.0256002  -2.950  0.00318 ** 
diamiércoles        -0.1254380  0.0255584  -4.908 9.21e-07 ***
diajueves           -0.0161877  0.0255854  -0.633  0.52694    
diaviernes          -0.1836635  0.0255225  -7.196 6.19e-13 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 95031  on 68825  degrees of freedom
Residual deviance: 87642  on 68817  degrees of freedom
AIC: 87660

Number of Fisher Scoring iterations: 4


Exactitud en datos de prueba (20 %): 64,9 %
Referencia (predecir siempre la clase más frecuente): 53,9 %

Interactivo (Shiny)

Column

Comparación por Sexo

Column

Incidencia de la Edad

Column

Variable Crítica