Intelligent RosterIntelligent Roster®

Fill Gaps — IRIS Tactical Mode

What Fill Gaps does

Fill Gaps is the third step in the recommended roster workflow — after Apply Master Roster and Generate with IRIS. It is designed for tactical gap-filling: IRIS has already built your balanced roster; you now staff remaining empty slots quickly without reshuffling existing assignments.

Where Generate with IRIS builds (or rebuilds) a roster holistically with fairness as a primary goal, Fill Gaps scans only unfilled vacancies and ranks eligible staff per slot. IRIS calls this Tactical Mode — more aggressive about coverage, still respecting craft groups and hard safety rules.

Fill Gaps modal with ranked suggestions by priority tier
Fill Gaps — scope, priority tiers, and per-slot suggestions

When to use it

SituationBest tool
Starting a roster period from scratchGenerate with IRIS
Master roster applied but leave / gaps remainFill Gaps
A few vacant shifts after publishing editsFill Gaps
You want full-period fairness optimisationGenerate with IRIS
You want to staff specific holes without reshuffling the restFill Gaps

Typical workflow: Apply Master Roster → Generate with IRIS → Fill Gaps → Roster Health → Publish.

How to run Fill Gaps

  1. Go to The Living Roster (Sidebar → The Living Roster)
  2. Select one or more streams from the Intelligence Bar stream picker — a single stream, multiple streams, or All Streams
  3. Click Fill Gaps in the Intelligence Bar
  4. Choose a Scope — Current View, 1 Week, 2 Weeks, 3 Weeks, or 4 Weeks
  5. (Optional) Expand Scope this run to narrow the candidate pool before scanning — see below
  6. Click Scan gapsFill Gaps does not run until you click. Set your scope and filter first so you don't waste a scan on the whole pool
  7. Review the ranked suggestions grouped by priority tier
  8. Check or uncheck rows, then click Apply Selected

Nothing runs on open. When the modal opens it shows a "Scan for gaps" prompt instead of results — this lets you set the scope and pool filter first. After your first scan, changing the date scope re-runs automatically; changing the Scope this run filter needs a Re-scan click (a reminder appears).

When multiple streams are selected, the modal header shows "N streams" and gaps are gathered across all selected streams. Suggestions are fetched per stream and applied in bulk.

Fill Gaps modal with 2 streams selected — header shows N streams
Multi-stream Fill Gaps — Red Team and Purple Stream selected, modal shows 2 streams

If every vacancy is already filled in the scope, IRIS reports "All positions are filled — no gaps to fill."

Scope this run — narrow the candidate pool

Scope this run is an optional pre-run filter (collapsed by default, just under the Scope selector). Use it to restrict who IRIS considers for this scan:

  • Craft groups — only suggest staff in the selected craft group(s)
  • Employment type — Full-time, Part-time, Casual, or Contract
  • Specific staff — search and tick named people; "Only these staff will be considered for this run."

Combine facets (e.g. Part-time + 2 named RNs). Click Clear all filters to reset to All staff. The filter only limits the pool — it does not relax any hard safety rule.

Open Shift Requests are protected: if a staff member submitted a Pending open shift request but is excluded by your Scope this run filter, their request is left Pending — not declined. Only requesters inside the pool who genuinely fail an eligibility rule get an automatic decline. This is the same guard used by Generate with IRIS.

When Roster Builder scope enforcement is enabled, Fill Gaps is also limited to your permitted streams and craft groups (same as Generate with IRIS). See Roster Builder Permissions.

Priority tiers (how staff are ranked)

For each unfilled slot, IRIS ranks eligible staff in this order:

PriorityLabelMeaning
1Requested This ShiftStaff submitted an Open Shift Request for this vacancy
2Preferred hoursStaff declared Preferred availability that covers this shift
3Available hoursStaff declared Available availability that covers this shift
4No hours declaredEligible staff with no My Availability set for this time

Click the tier badges at the top of the modal to select or deselect an entire group at once.

What is selected by default

  • Open Shift Requests, Preferred, and Available suggestions are pre-selected (checked).
  • No hours declared suggestions are shown but not selected — you must opt in explicitly, same philosophy as the Generate with IRIS preview.

Uncheck any row you do not want applied. Only checked assignments are written to the grid.

Open Shift Requests during Fill Gaps

Staff who submitted a Pending open shift request for a gap appear in the Requested This Shift tier when they pass all eligibility checks (craft group, scope, availability, leave, etc.).

  • Eligible requesters are pre-selected like Preferred/Available suggestions
  • Ineligible requesters may be Declined automatically when Fill Gaps runs, with an actionable reason on their request in Shift Deck → My Requests
  • If an eligible requester is still under their contractual minimum and another candidate would otherwise miss out on hours, IRIS may assign the under-minimum staff member instead — check results before publishing

Tell staff to review My Requests after you apply Fill Gaps selections.

Both tools use IRIS, but the algorithm and intent differ:

Generate with IRISFill Gaps (Tactical Mode)
ScopeEntire date range — all vacanciesOnly unfilled slots
GoalBalanced roster with fairness optimisationCoverage first — fill holes without reshuffling existing assignments
ModeConservative — may leave gaps if no fair option existsTactical — more willing to suggest staff to close coverage
Availability matchRequires ≥90% shift coverage for preferred/available windowsAllows partial overlap (e.g. 60% of shift covered) and surfaces coverage %
FairnessStrong weight on equitable distribution (weekends, nights, hours)Weaker fairness weight — suggests whoever best fits the slot
Multi-streamProcesses all selected streams in one runProcesses all selected streams sequentially
Minimum hoursStrongly prioritises under-minimum staff (tier-first within each batch)Same shared hours policy as Generate
Undeclared staffIncluded in generation but not auto-selected in previewIncluded as suggestions but not auto-selected
Preview UIAI-Generated Roster Preview modal (date-grouped list)Fill Gaps modal (tier-grouped, per-gap suggestions)
Best forBlank or near-blank periodsRefinement after master roster, leave, or manual edits

Hard rules always apply to both — minimum rest hours, craft group eligibility, scope of practice (All/Any match per vacancy), approved leave blocks, blocked availability, inactive periods, and maximum fortnight hours are never violated by IRIS. See Scope of Practice for how vacancy scope requirements work.

Partial availability (Fill Gaps only)

If a staff member's preferred or available window only partly overlaps a shift (e.g. available 08:00–12:00 for an 08:00–16:00 shift), Fill Gaps can still suggest them and shows the coverage percentage. Generate with IRIS requires near-full shift coverage and would skip that candidate.

This makes Fill Gaps useful when you need pragmatic coverage and can review partial matches manually.

Leave-aware hours

Fill Gaps accounts for approved leave when calculating fortnight hour targets. Staff on partial leave show adjusted hour projections so you can see if assigning them would push them near their max.

After applying

Applied assignments appear as draft (purple) cells on the Living Roster. Fill Gaps supports Undo immediately after apply — same pattern as Generate with IRIS, including the approximate 30-minute batch undo window for IRIS-applied assignments.

Run Roster Health next to catch any remaining conflicts, rule warnings, or coverage gaps.

Related guides

New to Intelligent Roster?

Try everything in this guide with your own team.

Start your free trial