A demand plan answers one question for every product, week by week: how much do we need to make or buy, and when?

It takes what customers have actually ordered, what your forecast expects, and what you already have or have coming, and works out the shortfall. That shortfall is what production and procurement are planned from.

Where to find it: Demand Plans in the Demand Planning section of the main menu, or step 2 of the Planning Cycle.

Where demand comes from

Three sources feed a plan, and they are treated differently because they are different kinds of knowledge:

Source Treated as
Confirmed sales ordersFirm demand. Someone has ordered it.
Sales contracts, cadence linesFirm demand. Scheduled deliveries are as good as ordered, and appear before the order is released.
ForecastsExpected demand — a statistical projection from history.
Sales contracts, call-off linesSoft demand. Committed volume with no dates yet, spread across the remaining weeks.

How the numbers are worked out

For each product and each period, in this order:

  1. Order quantity — confirmed order lines plus contract cadence deliveries falling in the period.
  2. Forecast quantity — the forecast for that period.
  3. Call-off quantity — the remaining call-off envelope of any call-off contract for the product, spread evenly over the weeks to the contract’s end date. It has a column of its own; it is no longer folded into the forecast figure.
  4. Total demand = the greater of the order quantity and the larger of forecast and call-off. Not a sum. Known demand trumps the soft side: if customers have ordered 800 and the soft side is 500, you need 800, not 1,300 — and real call-off orders therefore consume the allowance rather than adding to it.
  5. Net requirement = total demand − what the week can count on, floored at zero. Never negative — a surplus is not a negative requirement.
  6. Recommended production is the net requirement, dated to the start of the period.

“What the week can count on” is stock on hand plus what arrives that week, less committed. Stock on hand and committed are counted once, in the first week of the horizon; every later week starts from whatever the week before carried, and adds the orders arriving in it. See When an order counts as arriving.

Whatever is left over is carried forward between periods — whatever it came from. After each period the surplus becomes the next period’s on-hand figure, never below zero, so supply is consumed once. Earlier releases carried only the on-hand part, which meant a delivery arriving in week 1 was forgotten by week 3 even where week 1 had not needed all of it.

Because committed is taken off before the first week nets anything, the figure can start below zero — open batches are promised more than you hold. The first week then makes up that difference as well as its own demand, rather than treating the shortfall as somebody else’s problem.

Every quantity is added up in the product’s stock unit. An order line in a unit that has no conversion to the stock unit is left out and named rather than counted as though the numbers matched: the product’s first line gets a note saying how much demand was left out, and the Planning Cycle raises a blocker. Until the conversion is set up, that product is under-planned.

A kit is counted as its components, because nobody makes or buys a kit. Where a kit on order has no components recorded, its balance cannot be turned into demand at all, so it is refused and named on the plan rather than vanishing. Charge and discount lines never count as demand — they are money, not goods.

A read that fails, fails the generation. Stock, orders and batches are never silently read as zero because a query went wrong: generation stops with the reason recorded, and the plan in force stays exactly as it was. A plan that quietly counted no stock would buy everything twice.

When an order counts as arriving

An order counts in the week it arrives, and in no other week. A purchase order due in week 8 no longer makes week 1 look covered. Every open purchase order line is placed in the earliest week of the plan that ends on or after the date it is expected, and it is supply for that week and the weeks after it — not before.

Before this, everything still on order was counted once, in the first week, whenever it was due. A plan could therefore read as fully covered in week 1 by a delivery two months out, order nothing, and leave the floor short for eight weeks. Requirements will generally rise in the early weeks on your first plan after this update, and fall in the weeks the orders actually land in. That is the same supply, put where it can be used.

One rule, three consequences worth knowing:

The case What happens, and why
An order that is already overdue Counts now, in the first week. It is not going to arrive any later than it already has, so the earliest week is the honest place for it. It is still flagged as overdue on the line and on the Planning Cycle — counted, but never trusted silently. An order line with no expected date at all is treated the same way.
An order landing between two of the plan’s weeks Counts in the next week that exists. A plan holds only the weeks a product has demand in, so its weeks are not always one after another. Material arriving in a gap cannot help a week that has already passed, so it waits for the next week on the plan.
An order arriving after the plan’s last week Counts for nothing in this plan. It cannot cover anything the plan was asked about. It has not been lost: it returns to the reckoning as soon as the horizon reaches it, on the next plan whose last week falls on or after its expected date.

Arrivals are netted week by week, so an over-receipt in one week cannot quietly cancel an arrival in another. That is the answer a planner wants of a particular week, and it is why a product’s whole on-order figure is not simply divided up.

What counts as stock, incoming and committed

Each of the three is a deliberate list rather than “everything”, because a plan that counts stock it cannot use buys nothing and then runs short.

Figure What is in it, and what is not
On-Hand Usable stock only. Stock past the earlier of its use-by and best-before date is left out, and so is stock of a batch on hold, in rework or disposed. The line says what it dropped: “Excludes 40 kg expired, 20 kg on hold”. Undated stock counts as usable.
Incoming Open purchase order lines at this site — draft, sent and partly received orders count, because a draft raised from a plan is an order you are about to place — plus what batches already started will still yield. A batch counts while it is ready, making, processing, packing, pending or partially released, at its planned output, and only the part it has not already put into stock. A batch on hold, in rework or disposed is not supply until somebody decides what it is.
Committed What open batches have recorded taking out of stock and have not yet posted as consumption. It is a claim on supply, not supply, so it is subtracted from on-hand plus incoming. Once a batch posts its consumption, on-hand has already gone down by it and it stops being committed. See What “Committed” counts.

What “Committed” counts

“Committed” has one meaning everywhere it appears. It is what open batches at this site have recorded taking and have not yet posted, in the product’s stock unit. The Committed figure on the stock screens and the Committed column in planning are the same number, worked out once. If one moves, the other moves with it.

It used to be two figures under one word, and they disagreed in five ways. If you are comparing a Committed figure with one you noted before this update, this is what changed and why the new one is right:

What counts Why
The quantity entered, plus the wastage recorded with it A batch posts both when it consumes, so the material is off the shelf either way. Counting the quantity alone was short by the wastage every time.
The material actually taken, where one was substituted Not the one the recipe names. Consumption posts against the substitute, so committing the recipe’s own material claimed stock that would never be consumed and left the substitute — the one being eaten — showing nothing claimed at all. On the stock screens that was a wrong colour; in planning it was an under-buy of the material actually in use.
Packaging as well as ingredients Cartons, film and labels a batch has picked are off the shelf exactly as an ingredient is. Packaging used to show 0 committed however much batches on the floor had taken, so planning netted against packaging already spoken for.
Auto-consumed packaging A component that is worked out from another rather than counted by hand has no recorded row of its own, so its claim is derived from the tracked component it is linked to, by exactly the arithmetic the batch will use when it posts. Nothing is invented: the only figure in it is the linked component’s recorded quantity, which an operator did enter. Left out, it was a standing under-buy of film and labels on every site that auto-consumes.
Only rows that have not posted yet Once a row has posted, on-hand has already fallen by it. Counting it again charged the same kilogram twice — once in Committed, once in the on-hand figure beside it.

What is deliberately not in it: a recipe note, which is not a material at all, and an unstocked raw material such as water from a tap — nothing leaves a shelf for either, so nothing is claimed. A quantity in a unit that cannot be put into the product’s stock unit is left out and named, never guessed: “…so 40 CTN promised to batches was not counted”. Note which way that refusal leans — an uncounted claim makes stock look more available, so it is named on the line, on the works order and on the plan rather than quietly summed away.

A held or reworked batch keeps its claim

This is the question most often asked the first time a batch is put on hold, so it is worth answering plainly: putting a batch on hold does not hand its ingredients back to the plan. Nor does sending one to rework.

Its material is in a vat or on a line. It cannot be used for anything else, whatever eventually happens to the batch, so planning does not count it as available. A held batch’s output is a different matter — that is not counted as incoming, because nothing may ever come out of the other end. Its inputs and its output are two different facts about two different products, and they are answered differently on purpose.

Before this, a batch going on hold silently returned its ingredients to the plan, and a planner reading a running batch’s claim on the line had no way to see why the held batch beside it showed none.

Two endings do release the claim:

  • A released batch — it has posted what it took, so on-hand has already fallen by it. Committed collapses to nothing and on-hand drops by the same amount, at the same moment. Nothing in the plan jumps.
  • A disposed batch — the material is written off. It is not waiting for anything and nothing is going to consume it.

Frozen stock

A location can be marked Frozen storage, with Extends usable life by (days) beside it — both on the location itself, under Setup → Inventory → Locations. Stock in such a location that is past its date is still counted as usable, up to that many days beyond it; leave the days blank for no limit. The line says so: “Includes 40 kg frozen, past its date”.

Frozen storage is not the same tick as Production location on that screen, and neither implies the other. A freezer you also take batch ingredients from needs both — see Where a batch takes its ingredients from.

Orders and deliveries that are already late

  • An overdue sales order still counts as demand, in the current week, with no age limit. Its balance has to be made or bought, whatever the original due date said. The week’s line names them: “Includes 600 EA overdue from SO-P1000012, SO-P1000019” (at most three orders, then “and N more”), and the Planning Cycle raises “N sales orders are overdue”. Close the ones that will never ship.
  • An overdue purchase order still counts as incoming — it has not stopped being on order — but the plan flags it rather than trusting it silently: “370 L on order is overdue since 10 Aug”, and the Planning Cycle raises “N purchase orders are overdue”. Chase them, or cancel what will not come.

Generating a plan

A plan is generated from a completed forecast run, and it always arrives as a draft. There are two places to ask for one, and they do the same thing:

  • On the forecast run, the Demand plan card — “Turns this forecast into planned demand per product and period.” — and its Generate Demand Plan button. Until the run has finished, the button is disabled and reads “The forecast run has not completed yet.” underneath.
  • On the Planning Cycle, step 2’s Generate demand plan.

The work runs in the background. The button changes to “Generating demand plan…” and the screen checks every couple of seconds until it finishes. Pressing it twice cannot produce two plans — the second request answers “A demand plan is already being generated for this run.”

If it cannot be generated, the screen says “Could not generate.” followed by the reason the job recorded. See Running your weekly planning cycle for what each reason means and what to change.

Generating never disturbs the plan you are working to. A regenerated plan appears as a new draft beside the active one, which stays active. If the generation fails, nothing has changed: the active plan is still in force and the error sits next to it. Only activating replaces anything.

The Demand Plans list showing plans with their reference, plan date, horizon start and end, status and created date, including the active plan at the foot with superseded and archived plans above it

The list shows every plan for the site with its reference, plan date, horizon, status and when it was created.

Activating a plan

Open a plan and use the two actions in the header:

Action Offered when What it does
ActivateDraftMakes this the plan being worked to. Every other active plan for the site is superseded in the same step — whether it came from this forecast run or an older one — so a site never has two active plans, and never none because a regeneration went wrong.
ArchiveDraft or supersededRetires the plan from view while keeping it on record. The plan in force cannot be archived — the screen says “DP-P1000007 is the plan in force. Activate another demand plan to replace it; the plan in force cannot be archived.” A site is never left with no plan by an archive.

Both actions ask first, and the confirmation says what will change:

  • Activate — “DP-P1000008 becomes the demand plan in force. DP-P1000007 is superseded and cannot be activated again.” Where there is nothing to replace, only the first sentence appears.
  • Archive — “DP-P1000008 is archived and cannot be activated again.” The buttons read Archive plan and Keep plan.

Activating is deliberately a person’s decision. Nothing becomes active on its own, so you can generate a fresh plan, compare it against the one in force, and only then switch over. When a newer draft is waiting, the Planning Cycle says so — “A newer draft (DP-…) is ready to activate” — and its Activate acts on that draft.

A demand plan open, showing the Production plan card with Generate Production Plan, the plan reference, date, horizon and status, and the demand plan lines table

Only a draft plan can be edited or deleted. Once activated the figures are fixed, so what production and procurement were working from stays on record.

  • The forecast quantity is the editable figure on a line, and only while the plan is a draft.
  • Editing a line re-nets that product’s later weeks. The running on-hand figure carries forward from the week you edited, so changing week 1 changes every week after it. Weeks before it are untouched.
  • Demand plan lines cannot be deleted. Removing a week would break the chain of carried stock that the weeks after it are built on. Regenerate the plan instead.

Reading a plan line

Column Meaning
ProductThe product the line plans.
TypeThe product type the plan recorded for the line, such as FG for a finished good.
Period Start / Period EndThe week the line covers.
Order QtyFirm demand — confirmed orders and contract deliveries combined.
Contract QtyHow much of the order quantity came from contracts. Informational — it is already inside Order Qty, not additional to it.
Call-offThe call-off contract allowance for that week, on its own. It is not added to the forecast — total demand takes the larger of the two.
Forecast QtyExpected demand: the statistical forecast for that week, and nothing else. A planner’s adjustment is not folded into it — it is the next column.
AdjustmentWhat a planner added to the forecast for that week by hand, signed, and blank where nothing was added. It is the part of the demand the forecast could not know about. See Adjusting the forecast.
Total DemandThe greater of Order Qty and the larger of Call-off and the forecast including the adjustment.
On-HandUsable stock at the start of the period. From the second period on it is what the period before carried — its surplus of stock and incoming.
IncomingStock expected in: open purchase orders (drafts included) plus the output still to come from batches already started. Shown in the first period only, so it is not spent twice; from then on it is inside On-Hand.
CommittedWhat open batches will consume and have not yet — a claim on stock, so it is subtracted. Shown in the first period only, like Incoming.
Net RequirementThe shortfall — what must be made or bought.
Rec. Prod Qty / Rec. Prod DateThe quantity to make, and the date to start.
NotesWhy the figures are not simply demand less stock: stock left out as expired or on hold, frozen stock counted past its date, an overdue order balance pulled into this week, an overdue purchase order, or a quantity that could not be put into the stock unit. It is also where a planner’s adjustment is explained — “Forecast adjusted +500 by planner: Easter promotion”, or “Forecast adjustment of 150 by planner not applied: no forecast to reduce (Discontinued line)” where there was no forecast left to take away. Several notes on one line are joined with a semicolon. A note that asks you to act carries a warning triangle; an adjustment note does not, because it explains rather than asks. Blank when there is nothing to say.
TraceOpens the Supply Tree on this line, reading up: what it needs, and from whom.

Above the table, a line reads “N products · N need making or buying”. Most products have nothing to say for most weeks, so lines with no demand are hidden: a tick box reading “Show lines with no demand (N)” brings them back. A line counts as empty only when every figure on it — order, contract, call-off, forecast, total, on-hand, incoming, committed and net — is zero. With every line hidden the table reads “Every line is hidden -- show lines with no demand to see them”.

Contracts in the plan

Sales contracts change planning because they let you see committed volume before any order exists.

  • Cadence deliveries are added to order quantity for their week, exactly like a confirmed order line.
  • Once a delivery is released into a real sales order, it drops out of the contract figures and is counted as that order instead — so contracted volume is never counted twice.
  • Call-off volume has its own column, spread evenly across the weeks remaining to the contract end date. It competes with the forecast rather than being added to it — total demand takes the greater of orders and the larger of forecast and call-off — so actual call-off orders consume that allowance rather than adding to it. Keeping it in its own column is what lets you see how much of a week’s demand is a contract commitment and how much is a projection; on the Supply Tree it is a branch of its own under its contract, for the same reason.
  • A plan generated before this release shows Call-off as 0, because the figure was folded into Forecast Qty at the time. Regenerate the plan to split them.
  • Products with a contract but no history are still planned — a new product under contract does not need past sales to be included.

Exporting a plan, and its activity

Export CSV in the plan’s toolbar downloads the plan as a spreadsheet file named for the plan (for example DP-P1000009.csv), one row per product per week, in the product’s stock unit and sorted by product then week. The file is built on the server, so it is the same file whichever screen asked for it, and a line the grid has hidden or paged past is still in it. It carries Product, Description, Type, Week start, Week end, Orders, Contract, Call-off, Forecast, Adjustment, Total demand, On hand, Incoming, Committed, Net requirement, Recommended qty, Recommended date, Unit and Notes — so the statistical forecast and the planner’s adjustment stay in separate columns there too. Quantities are rounded to three decimal places and dates written as 2026-10-06, so a spreadsheet sorts them correctly. Accented product names survive being opened in Excel, and a text value that starts with =, +, - or @ — even behind a leading space — is written with a leading quote so the spreadsheet reads it as text instead of running it as a formula. Numbers are never touched, so a negative adjustment stays a number you can add up. If the download fails the screen says “The CSV could not be exported. Try again, or ask your administrator.”

The Activity panel at the foot of the plan lists When, Who and What — newest first, and in your account’s time zone rather than the reader’s, so an entry reads the same for everyone. A demand plan has its own vocabulary, because it has its own statuses:

Entry When it is written
“Created”The plan was generated from a forecast run.
“Activated”The plan was put in force. See Activating a plan.
“Superseded when DP-P1000010 was activated”Another plan was activated and this one stepped aside. The entry names the plan that replaced it.
“Archived”The plan was retired from view. The plan in force cannot be archived, so this only ever follows a draft or a superseded plan.
“Edited FG-TART, week of 6 Oct 2026: Forecast 100 → 120”A week of the plan was changed. Each changed field is named with its old and new value, from Orders, Contract, Forecast, Call-off, Adjustment, Total demand, Net requirement, Recommended qty, Recommended date and Notes; a save that changed nothing writes no entry.

The demand plan table on screen is read-only, so you will not find an Edit button to produce that last entry with. It is there because the plan’s weeks can be changed — through the API, or by support — and when they are, the trail says so. To change what the next plan works from, adjust the forecast instead: see Adjusting the forecast.

Approved, Started and Completed never appear here — those belong to the production and procurement plans, which have different statuses. Nor is there a “Removed” entry: a demand plan week cannot be deleted at all, so there is nothing to record.

Generating a plan runs as a background job, so its Created entry shows System in the Who column rather than the person who pressed Generate. Activating, archiving and editing a week are all done on screen and name the person who did them. A plan with nothing recorded reads “Nothing recorded yet.” — which is what a plan made before this release shows, because the trail starts when it was built and is not filled in backwards. A panel that could not be read says “Could not load the activity:” with the reason. The panel shows a plan’s history, not a paged log: the most recent 200 entries.

Making, changing and removing a forecast adjustment are recorded too, but against the adjustment rather than against a plan, so none of them is an entry here. See Adjusting the forecast.

A demand plan showing the Archive and Export CSV buttons in the toolbar and the Activity panel at the foot, with a Created entry against System and Activated and Superseded when DP-P1000012 was activated entries against Mike Cook

Plan status

Status Meaning
DraftGenerated but not yet in use. This is how every plan starts.
ActiveThe plan being worked to. One per site.
SupersededReplaced when another plan was activated, and kept for comparison.
ArchivedRetired from view.

A plan is a snapshot, not a live query. It reflects orders, stock and forecasts as they stood when it was generated, which is what makes two plans comparable. Generate again to bring it up to date.

What the plan feeds

The net requirement is the input to everything downstream, and each downstream step is started by a Generate button rather than happening on its own:

  • Production Planning turns requirements for made products into works orders — including the sub-assemblies that go inside them, which the demand plan never mentions. Generate Production Plan on the demand plan is what starts it, and the demand plan has to be active first: while it is a draft the button reads “Activate the demand plan before generating production from it.”
  • Procurement Plans turn the approved production plan into what has to be bought, and also pick up the demand plan’s own requirements for products you buy in and resell.
  • Supplier Forecasts share the resulting expectations with each supplier.
  • The Production Calendar is a four-week view of what production planning produced.
  • The Supply Tree reads the same chain in either direction: what each purchase is for, and what each order depends on. Every line of this plan has a Trace button that opens it.

Because contract demand flows through net requirement like any other, it reaches production and procurement without any special handling.

Screen Purpose
Planning CycleThe five steps of one week’s plan, worked left to right. The demand plan is step 2.
ForecastsThe projections a plan draws on, and where Generate Demand Plan lives.
Forecast AccuracyHow well past forecasts matched what happened.
Supply TreeWhat each purchase is for, and what each order depends on. The Trace button on a plan line opens it on that line.
Forecast Settings (Setup)What runs automatically, when, and the defaults for new stock policies.
Stock Policies (Setup)Holding rules per product, such as safety stock and reorder points.
Stock AlertsWarnings where stock is heading outside those rules.

Forecast Settings and Stock Policies are set up once and rarely changed, so they sit under Setup → Demand Planning rather than in the Demand Planning section itself.

Availability and permissions

  • Demand Plans are part of the Demand Planning module, which requires Manufacturing and Orders. See Getting started with Demand Planning.
  • Everything on this screen is scoped to your current site. A plan generated for another site does not appear here.
  • Viewing a demand plan is open to administrators, production managers and users, QA managers, dispatch managers, demand planners, production planners and procurement planners.
  • Activating, archiving and generating from a demand plan need an administrator, production manager or demand planner.
  • A site is not a security boundary. The site selector decides which site’s figures you are looking at and working on, and it keeps another site’s plans and stock out of your way. It is a working scope, not a wall: a user who can open this screen and change site can read that site’s figures. The real boundary is the account — nothing belonging to another account is reachable at all. Do not use sites to keep figures from a colleague; use roles.

Things to know

  • Only confirmed sales orders count. A draft order is not demand until someone commits to it.
  • Demand is bucketed by required date, not order date — the plan cares when the customer wants it.
  • Net requirement never goes negative. A surplus shows as zero requirement and is carried into the next period rather than shown as a negative need — and the surplus carried is of stock and incoming, not just what was on the shelf.
  • Only stock you could actually use counts. Expired and on-hold stock is left out of On-Hand, and the line names what was dropped. That is why a product can read as short while the warehouse report says otherwise.
  • A draft is not being worked to. If production planning refuses to generate, the usual reason is that the plan you are looking at was never activated.
  • Generating a plan does not remove the old one. Two plans for the same run is normal — one active, one draft. Activating the draft supersedes the other; archiving the draft throws it away.
  • An order counts in the week it arrives. Everything on order used to be counted in week 1 whatever its due date, so a plan could read as covered by a delivery two months away. Expect early-week requirements to rise on the first plan after this update — see When an order counts as arriving.
  • A batch on hold still holds its ingredients. Committed does not fall when you put a batch on hold or send it to rework; the material is in a vat and cannot be used elsewhere. Only releasing or disposing of the batch ends the claim.
  • The plan does not know about capacity or recipes. It says how much is needed; splitting that into batches your equipment can actually run is Production Planning’s job.