{{ rotaCtrl.toast.title }}

{{ rotaCtrl.toast.message }}

Operations dashboard

Staff Rota

Plan coverage, manage people, and adjust shift policy from a single workspace.

Current cycle: {{ rotaCtrl.monthNames[rotaCtrl.currentMonth] }} {{ rotaCtrl.currentYear }} Visible team: {{ rotaCtrl.visibleRotaData.length }}
Utilisation score {{ rotaCtrl.autofillSummary.score | number:0 }}
Explored {{ rotaCtrl.autofillSummary.attempts | number:0 }} schedules · Coverage penalty {{ rotaCtrl.autofillSummary.coveragePenalty | number:0 }} · Fairness penalty {{ rotaCtrl.autofillSummary.fairnessPenalty | number:0 }} · Assigned {{ rotaCtrl.autofillSummary.totalAssignments | number:0 }} duties
AI enhancements
{{ rotaCtrl.aiEnhanceSummary.applied }} applied {{ rotaCtrl.aiEnhanceSummary.skipped }} skipped
{{ rotaCtrl.aiEnhanceSummary.summary }}
AI enhancements Request failed
{{ rotaCtrl.aiEnhanceError }}
Export month data
Import month data
Local data

Smart Autofill insights

  • {{ message }}

AI planner

{{ rotaCtrl.aiEnhanceSummary.summary }}

{{ rotaCtrl.aiEnhanceSummary.applied }} applied {{ rotaCtrl.aiEnhanceSummary.skipped }} skipped
  • {{ note }}
  • {{ message }}
Request issue: {{ rotaCtrl.aiEnhanceError }}
Roles
Staff Member {{ day.dayNum }}
{{ day.dayName }}
Nights
(≥{{ rotaCtrl.RULES.MIN_NIGHTS }})
Shifts
{{ rotaCtrl.RULES.MIN_SHIFTS }}-{{ rotaCtrl.RULES.MAX_SHIFTS }}
Weekends Off
(≥{{ rotaCtrl.RULES.MIN_WEEKENDS_OFF }})
{{ staff.name }} {{ staff.role }} {{ staff.summary.night }} {{ staff.summary.total }} {{ staff.summary.weekendsOff }}
No staff match the current search or filters.
Daily Totals
Day: {{ rotaCtrl.dailySummaries[day.dateString].day }}
CH/AC Nrs: {{ rotaCtrl.dailySummaries[day.dateString].dayCharge + rotaCtrl.dailySummaries[day.dateString].dayActing }}
Nrs: {{ rotaCtrl.dailySummaries[day.dateString].dayNurse }}
Night: {{ rotaCtrl.dailySummaries[day.dateString].night }}
CH/AC Nrs: {{ rotaCtrl.dailySummaries[day.dateString].nightCharge + rotaCtrl.dailySummaries[day.dateString].nightActing }}
Nrs: {{ rotaCtrl.dailySummaries[day.dateString].nightNurse }}

Validation Issues

  • {{ issue }}

✅ Validation Passed!

The rota complies with all scheduling rules.

Shift Rules Manager

Fine-tune scheduling thresholds, coverage envelopes, and recovery rules.

Shift rules

Workload policies

Set individual assignment ranges and recovery expectations.

Shifts per staff member

Night duties

Weekends off

Consecutive duties

Off days after night shift

Shift composition

Define staffing envelopes for day and night coverage.

Day shift

Night shift

Smart Autofill

Autofill prioritises recommended values before expanding toward minimum or maximum limits.

Higher values explore more schedules and may take longer to compute.
  • The engine targets recommended counts whenever feasible.
  • If recommendations cannot be met, it adjusts toward minimum thresholds to preserve fairness.
  • When additional flexibility is needed, it gradually expands toward maximum limits.
  • Autofill selects the best achievable balance within these boundaries.

AI integration

Connect your OpenAI account to request enhanced rota suggestions. Keys are stored locally in this browser only.

Saved securely to local storage. Clearing browser data removes it.
Defaults to gpt-4o-mini if left blank.
Saved {{ rotaCtrl.aiSettingsStatus.savedAt | date:'medium' }}

The key is used only to call OpenAI directly from your browser when you trigger AI planning.

Staff Directory

Staff data
Roles
Name Role Staff No.
{{ staff.name }} {{ staff.role }} {{ staff.staff_number }}
No staff match the current search or filters.