Demand Overrides

The demand_override object

An adjustment to the demand a production schedule is planned against.

Sales history cannot see a large customer that is about to order, a promotion, or a line that is being discontinued. An override is how management tells the planner about it. The period names the months the demand will occur in, and only months of the coming planning year are adjusted — a period entirely in the past changes nothing, because the plan covers the year ahead. effective_at and expires_at answer a different question: how long the override is consulted at all, so an adjustment can be retired on a date without deleting it.

idstring

Demand override ID.

objectstringenumValues:demand_override

Resource type identifier.

scope_typestringenumValues:itemproduct_lineaccount

What the override targets.

  • item: a single item.
  • product_line: every item sold under one product line.
  • account: every item in the plan, which is how a blanket assumption such as "plan for double demand" is expressed.
scopeentitynullable

The item or product line the override targets.

An account-wide override has no scope resource, because it targets every planned item rather than one thing.

idstring

Unique identifier for the entity.

objectstringenumValues:entity

Resource type identifier.

typestringenumValues:accountactorentity

The resource kind that this entity references, as an object-type value (e.g. user, account).

Unlike object — which is always entity — this names the underlying resource the id points to.

namestringnullable

Human-readable display name for the entity (e.g. a user's full name, a sales order number).

handlestringnullable

Secondary human-readable identifier (e.g. email address, username, redacted API key value).

period_starts_atstring (date-time)

First day of the demand period the override applies to.

Overrides are applied month by month, so every calendar month the period touches is adjusted and any time of day is ignored.

period_ends_atstring (date-time)

Last day of the demand period the override applies to.

adjustmentstringenumValues:absolutedelta_unitsdelta_percent

How the value adjusts the forecast.

  • absolute: replaces the forecast for each month in the period.
  • delta_units: adds the value to each month in the period.
  • delta_percent: scales each month in the period by the value as a percentage.

When several overrides land on the same month they are applied in that order, so a percentage always acts on the already-adjusted number. An adjusted month is never taken below zero.

valuenumber

The amount of the adjustment, interpreted according to adjustment.

A delta_percent value is a number of percent, so -25 plans a quarter less than the forecast.

unitunitnullable

The unit the value is expressed in.

Recorded for context only: the value is applied to the planned demand without unit conversion, so a unit adjustment should be stated in the unit the item is planned in.

reasonstringnullableenumValues:new_customerlost_accountpromotion

Why the adjustment was made.

The reason is carried into each schedule the override changes, so a plan can explain why a month departs from history.

notestringnullable

Free-form notes about the adjustment.

created_byactornullable

The actor that created the override.

May be a user, an API key, or an agent.

effective_atstring (date-time)

When the override starts being applied to newly generated schedules.

expires_atstring (date-time)nullable

When the override stops being applied to newly generated schedules.

An override with no expiry keeps applying until it is deactivated or deleted.

statusstringenumValues:activeinactive

Whether the override is taken into account when a schedule is generated.

An inactive override is skipped whatever its effective window says, which is how a prepared adjustment is parked without losing it.

created_atstring (date-time)

Creation timestamp.

updated_atstring (date-time)

Last updated timestamp.

Used by