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
- Open Demand Planning (
/demand-planning). - 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.
- Add a plan (or Apply Template to pre-fill lines from a reusable template).
- In the matrix (rows = node × skill, columns = dates), enter the head count each line needs.
- 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.
Lockedis 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.