Shift Scheduler Blog
Planificación continua de turnos: cómo el historial mejora la planificación con IA

Muchas herramientas de planificación tratan cada horario como un proyecto independiente.
Para un horario semanal sencillo puede funcionar. Pero en equipos reales, ese enfoque genera problemas enseguida. Si hoy planificas julio y el mes que viene planificas agosto, el horario de agosto sigue necesitando saber qué ocurrió al final de julio.
Una persona que trabajó un turno de noche el 31 de julio quizá necesite descansar el 1 de agosto. Quien ya hizo demasiadas noches en julio no debería ser la primera opción para cubrir más noches en agosto. Y una rotación de día, noche y descanso no debería empezar de cero solo porque cambie el mes del calendario.
Ese es el problema que resuelve la planificación continua de turnos.
Qué es la planificación continua de turnos
La planificación continua de turnos significa que el sistema usa el historial reciente de turnos al crear un nuevo horario.
En lugar de mirar solo el periodo solicitado, el sistema de planificación con IA revisa también los turnos anteriores y los usa como contexto. El nuevo horario se sigue creando únicamente para las fechas solicitadas por el usuario, pero el solver entiende qué pasó antes de esas fechas.
En la planificación de personal esto importa porque muchas reglas cruzan los límites de un periodo de planificación:
- descanso después de turnos de noche
- número máximo de días trabajados seguidos
- límites de horas semanales
- solapamientos entre turnos nocturnos
- patrones de rotación como día, noche, descanso
- reparto justo de los turnos más exigentes
- equilibrio de horas totales a lo largo del tiempo
Sin historial, el planificador puede generar un horario que parece válido dentro del mes seleccionado, pero que en la práctica resulta poco realista, injusto o arriesgado.
El problema práctico: los límites de mes son artificiales
Las personas responsables de la planificación suelen trabajar con periodos fijos: una semana, dos semanas o un mes.
Pero el equipo no vuelve a cero al empezar cada periodo.
Por ejemplo:
- Un turno de noche en domingo puede exigir que el lunes quede libre.
- Una persona que trabajó cinco días antes del nuevo periodo puede estar ya en el límite máximo de días seguidos.
- Un límite semanal sigue aplicando aunque el periodo solicitado empiece a mitad de semana.
- Un turno nocturno puede empezar antes del periodo solicitado y terminar dentro de él.
- La equidad debería tener en cuenta el trabajo exigente reciente, no solo el nuevo horario.
Por eso un buen planificador de turnos con IA necesita el historial del horario. El periodo solicitado es solo la ventana de salida. El solver necesita más contexto para tomar una decisión segura y justa.
Cómo Shift Scheduler usa el historial
Shift Scheduler mantiene sencilla la solicitud para el usuario: se puede seguir planificando un periodo máximo de 31 días.
Internamente, el sistema añade dos ventanas automáticas de historial:
| Ventana de historial | Duración | Propósito |
|---|---|---|
| Historial de restricciones | 7 días antes de la fecha de inicio solicitada | Reglas de descanso, solapamientos, máximo de días seguidos, límites diarios y semanales, continuidad segura de rotaciones |
| Historial de equidad | 60 días antes de la fecha de inicio solicitada | Equilibrio de horas totales y de plantillas de turno, incluido el reparto de turnos de noche |
La regla importante es sencilla:
Antes de la fecha de inicio solicitada no se crean, modifican ni asignan turnos.
El historial se usa solo como contexto. Ayuda al solver CP-SAT a entender la situación real, pero las nuevas asignaciones siguen limitadas al periodo objetivo.
Por qué hay dos ventanas de historial
No todo el historial del horario debe influir en el solver de la misma manera.
Una parte del historial es operativa. Puede hacer que una asignación sea imposible.
Por ejemplo, si una persona trabajó anoche y la regla dice que hoy debe descansar, el solver debe bloquearla para el turno de hoy. Eso es un hecho estricto de planificación.
Otra parte del historial tiene que ver con la equidad. Debe orientar la optimización, pero no debería dejar trabajo sin cubrir de forma intencionada cuando existe una asignación viable.
Por ejemplo, si una persona ha hecho muchas noches en los dos últimos meses, el planificador debería preferir a otras personas cualificadas para los nuevos turnos de noche. Pero la cobertura sigue siendo lo primero.
Por eso Shift Scheduler separa el historial en dos grupos:
constraintHistorypara las reglas operativasfairnessHistorypara el cálculo de equidad
Esta separación hace que el comportamiento del sistema sea predecible. El historial reciente puede bloquear asignaciones inseguras o inválidas, mientras que un historial más largo ayuda a que el horario quede mejor equilibrado.
Qué controla el historial de restricciones
El historial de restricciones revisa los 7 días anteriores al fromDate solicitado.
Se usa para reglas que necesitan entender el trabajo reciente:
- descanso después de plantillas de turno concretas
- número máximo de días trabajados seguidos
- límites de horas diarias
- límites de horas semanales
- comprobaciones de solapamiento
- turnos nocturnos que entran en el periodo solicitado
- rotaciones flexibles como día, noche, descanso
Ejemplo:
Si el periodo solicitado empieza el 1 de agosto y una persona trabajó un turno de noche el 31 de julio, el solver puede tratar el 1 de agosto como día de descanso obligatorio cuando la regla exige descanso después de las noches.
El planificador no crea ni modifica el turno del 31 de julio. Solo lo usa para tomar la decisión correcta para el 1 de agosto.
Qué controla el historial de equidad
El historial de equidad revisa los 60 días anteriores al fromDate solicitado.
Se usa solo para puntuar y equilibrar:
- horas totales por persona
- combinación de plantillas de turno por persona
- reparto de turnos de noche
- uso reciente excesivo de plantillas exigentes
Ejemplo:
Si Alice trabajó muchas noches en los últimos 60 días y Bob también está cualificado para turnos de noche, el solver debería preferir a Bob para el próximo turno de noche cuando sea posible.
No es una equidad perfecta, porque la planificación de personal siempre implica compromisos. Pero es mucho mejor que tratar cada nuevo mes como una hoja en blanco.
La cobertura sigue siendo la prioridad
El uso del historial no debe empeorar el horario dejando turnos vacíos solo por motivos de equidad.
Shift Scheduler mantiene la cobertura como primera fase de resolución. El solver intenta primero cubrir tantos turnos como sea posible dentro del periodo objetivo, respetando las restricciones estrictas. La equidad se gestiona después, como parte del objetivo de optimización.
Esto significa que el historial de equidad puede influir en quién recibe una asignación, pero no debería dejar intencionadamente sin cubrir un turno objetivo cuando ese turno puede cubrirse.
En la planificación de personal con IA, esta distinción es importante:
- Las restricciones estrictas protegen seguridad, cumplimiento y viabilidad.
- El historial de equidad mejora la calidad del horario.
- La cobertura sigue siendo el objetivo operativo principal.
Planificación continua y optimización CP-SAT
Shift Scheduler usa un solver CP-SAT para optimizar horarios.
CP-SAT encaja bien con la planificación de personal porque el problema contiene muchas variables y restricciones:
- qué persona puede trabajar cada turno
- qué turnos se solapan
- quién no está disponible
- cuántas horas puede trabajar cada persona
- qué reglas de descanso se aplican
- qué asignaciones son más justas
- qué patrones de rotación deberían continuar
La planificación continua amplía la entrada del solver con hechos recientes. Así, el solver evalúa las asignaciones del periodo objetivo con una visión más precisa del horario anterior.
En lenguaje sencillo:
El solver no solo pregunta: "¿Quién puede trabajar este turno?"
Pregunta: "¿Quién puede trabajar este turno, teniendo en cuenta lo que ya ha trabajado recientemente?"
Ejemplo: equidad en turnos de noche entre meses
Imagina que el horario de julio tiene este patrón:
- Alice trabajó 8 turnos de noche.
- Bob trabajó 2 turnos de noche.
- Alice y Bob pueden trabajar turnos de noche.
- El horario de agosto incluye 4 nuevos turnos de noche.
Si el solver de agosto ignora julio, Alice y Bob pueden parecer igual de equilibrados al empezar agosto.
Con el historial de equidad, el solver ve que Alice ha cargado con más trabajo nocturno recientemente. Cuando sea posible, puede asignar más de los nuevos turnos de noche de agosto a Bob o a otras personas aptas.
Aquí es donde la planificación continua de turnos mejora la satisfacción del equipo. Reduce la sensación de que el trabajo difícil se repite de forma aleatoria o injusta.
Ejemplo: reglas de descanso al cruzar el límite de mes
Supongamos esta regla:
Después de un turno de noche, la persona debe tener al menos un día libre.
Ahora imagina esta situación:
- 31 de julio: Alice trabaja 19:00-07:00.
- 1 de agosto: El planificador necesita cubrir un turno de día.
Sin historial de restricciones, el horario de agosto podría asignar a Alice el 1 de agosto, porque el solver solo ve agosto.
Con 7 días de historial de restricciones, el solver ve el turno de noche del 31 de julio y bloquea la asignación de Alice el 1 de agosto.
El horario generado es más seguro y más realista.
Ejemplo: límites semanales cuando el periodo empieza a mitad de semana
Los límites semanales no siempre coinciden con los periodos de planificación.
Si el horario solicitado empieza un miércoles, la persona puede haber trabajado ya lunes y martes. Esas horas deben contar para el límite semanal.
El historial de restricciones da al solver información suficiente para evitar horas extra accidentales o asignaciones irreales por encima del límite semanal.
Esto es especialmente importante en sanidad, hostelería, retail y cualquier operación con límites de horas legales o contractuales.
Qué no hace esta función
La planificación continua está enfocada de forma intencionada.
No permite al planificador cubrir turnos antes de la fecha de inicio solicitada. Tampoco reescribe turnos antiguos.
No intenta resolver todos los posibles problemas de rotación. Las rotaciones repetitivas exactas sin fecha de anclaje seguirán necesitando fechas de referencia explícitas en una versión futura. El enfoque actual se centra en mantener de forma segura las rotaciones flexibles cuando el trabajo anterior debe forzar descanso dentro del periodo objetivo.
Así el comportamiento sigue siendo fácil de entender:
- El periodo solicitado sigue limitado a 31 días.
- El historial de restricciones revisa 7 días hacia atrás.
- El historial de equidad revisa 60 días hacia atrás.
- Los turnos históricos son turnos normales, no solicitudes de ausencia.
- Las nuevas asignaciones se crean solo dentro del periodo solicitado.
Resumen para la base de conocimiento
Usa este resumen para explicar la planificación continua en Shift Scheduler:
- La planificación continua de turnos usa turnos anteriores como contexto para un nuevo horario.
- Los usuarios siguen solicitando un periodo de planificación de hasta 31 días.
- El solver revisa automáticamente los 7 días previos al inicio solicitado para las restricciones operativas.
- El solver revisa automáticamente los 60 días previos al inicio solicitado para el cálculo de equidad.
- El historial de restricciones influye en descansos, máximo de días seguidos, límites semanales, límites diarios, solapamientos, turnos nocturnos y continuidad de rotaciones flexibles.
- El historial de equidad influye en el equilibrio de horas totales y de plantillas de turno, incluido el reparto de noches.
- El historial no crea, modifica ni asigna turnos antes de la fecha de inicio solicitada.
- La cobertura se optimiza primero, así que el historial de equidad no debería dejar sin cubrir intencionadamente turnos del periodo objetivo.
- CP-SAT usa el contexto histórico para hacer que las asignaciones del periodo objetivo sean más seguras y justas.
Preguntas frecuentes
¿Qué es la planificación continua de turnos?
Es una planificación de personal que usa el historial reciente de turnos al crear un nuevo horario. Ayuda a que las reglas y la equidad continúen entre semanas o meses, en lugar de empezar desde cero en cada nuevo periodo.
¿Por qué importa el historial en la planificación de turnos con IA?
El historial importa porque las reglas de descanso, la equidad en turnos de noche, los límites semanales y las rotaciones suelen cruzar los límites del periodo seleccionado. Un planificador que ignora el trabajo reciente puede crear horarios que parecen válidos, pero son injustos o inseguros.
¿Shift Scheduler planifica más de 31 días a la vez?
No. El periodo solicitado por el usuario sigue limitado a 31 días. Las ventanas de historial de 7 y 60 días son contexto interno, no fechas adicionales en las que crear turnos nuevos.
¿El historial puede crear turnos antes de la fecha de inicio?
No. Los turnos históricos son solo contexto de lectura. Shift Scheduler crea nuevas asignaciones únicamente dentro del periodo objetivo solicitado.
¿Cómo ayuda el historial de equidad con los turnos de noche?
El historial de equidad permite a la optimización ver quién trabajó muchas noches recientemente. Cuando varias personas cualificadas pueden cubrir un nuevo turno de noche, el solver puede preferir a quien tenga menos asignaciones nocturnas recientes.