NextGen FSM
2026 Wave Two 2026 Wave Three 2026 Wave One
2026 Wave Two 2026 Wave Three 2026 Wave One

Understand How Gap Filling Works

This page describes the functional logic and engine mechanics of Gap Filling: how it fills the capacity left around already-committed activities on the Daily Plan by generating a virtual schedule, which you then review, refine and confirm onto the real plan.

How this differs from Direct Future Scheduling: Direct Future Scheduling is event-driven — a new Work Order is matched against configured Identification Rules at creation time, and only qualifying Work Orders ever enter the flow. Gap Filling has no equivalent identification-rule gate: it works over whatever schedulable, urgent, clipboard activities and resources are in scope for a given run — selected explicitly by the dispatcher, or defined by the model — rather than pre-filtering Work Orders by rule at creation time.

Triggering and processing

Gap Filling processing can start in two ways:

  • Manual, from the Daily Plan. The dispatcher selects at least one resource and one activity (from Schedulable, Urgent or Clipboard) and runs Simulate scheduling, choosing a period and a model. The model here does not pick the resources/activities — it only supplies other mandatory data like priorities.

  • Manual, from Scheduling Management. A model-wide run ("Schedule Automatic Processing"), not scoped to an explicit resource/activity selection.

  • Automatic, on a calendar. A recurring schedule (Automatic Processing Calendar) executed by a batch job enqueued.

Every run produces (or updates) a virtual plan — never writes directly to the real Daily Plan. Only Confirmation does that.

Managed entities

Activities. The engine draws from schedulable, urgent, clipboard and bundler activities within the run's scope, plus — critically — activities already assigned on the real plan, which it brings into the same optimization instead of ignoring them. Multi-day activities are supported.

Resources and teams. Individual resources, Fixed Teams, Crew Shells can be scoped in or out of a model. Dynamic/mixed team are only integrated with individual activities..

Rules. The central rule is Exchange activities among resources, set at model level and optionally overridden per Work Order Type, cycle or activity type (Activity tab):

  • Never remove — the activity stays pinned to its current resource.

  • No — the activity can be dropped from its resource, but not reassigned to another one.

Resource exclusion: if a resource's already-assigned activities can't all be honored under the active constraints, the resource is excluded from that run entirely (All-or-Nothing), rather than partially rearranged.

The virtual plan lifecycle

  1. Review. Open the virtual plan from the Gap Filling tab or from Scheduling Management. Activities that mirror something already on the real plan are marked (mirrored activities carry an "R" indicator); expanding an activity shows status Open (virtual-only) or Fixed (already on the real plan).

  2. Refine. Paste new activities from schedulable/urgent/clipboard sources, cut anything not already on the real plan, manage bundles and multistage groups, and use the massive actions. Extended searches on the virtual plan also surface real-plan activities not otherwise shown there, so nothing scheduled outside the run gets missed.

  3. Compare. Model Comparison supports Gap-Filling models: compare a run against another model, or against the Real Plan (one at a time).

  4. Confirm. Confirmation applies the virtual plan to the real Daily Plan: new activities are inserted, matching real activities are left as-is (or time-updated if changed), and activities dropped from the virtual plan are removed from the real plan and returned to the schedulable pool.