Skip to content

Create a demand plan

Goal

Build a demand plan — the staffing need for one date × terminal × shift — and confirm it so a roster can be allocated against it.

Who can do this

Planner, HR Administrator, or System Administrator — needs demand.create/demand.write to build and demand.confirm to confirm.

Before you start

  • The terminal and shift template must already exist (e.g. Demo Container Terminal + SHT-EVE-16 — Evening Shift 16:00–00:00); these are seeded/admin reference data, not created here.
  • Know the date you're planning for (the demo data is anchored at 2026-06-01).

Steps

  1. Open Demand Planning (/demand-planning).
  2. Choose the Terminal and Shift from the dropdowns (e.g. Demo Container Terminal / Evening Shift 16:00–00:00) and set the From / To dates. The matrix appears only once a terminal and shift are selected.
  3. Add a plan (or Apply Template to pre-fill lines from a reusable template).
  4. In the matrix (rows = node × skill, columns = dates), enter the head count each line needs.
  5. Confirm the plan to move it Draft → Confirmed — this agrees the numbers so a run can be allocated against it.

What the system does

A demand plan is uniquely (plan date × terminal × shift), with a deterministic code. Confirming marks the numbers as agreed; the allocation engine fills a Confirmed plan. See Demand for the full model.

What can block you

  • Duplicate plan: a second plan for the same date × terminal × shift is refused (HTTP 409).
  • Head counts must be ≥ 0.
  • Editing a Confirmed line needs the override permission and a written reason.
  • There is no "lock" / "freeze" action. Locked is a defined status with no current runtime path — publishing a roster does not lock the plan (finding F1). Don't look for a lock button.