Preview Production Schedule
Beta/v1/operations/production-schedules/actions/previewThis endpoint is idempotent. Learn more
Runs the production scheduling solver and returns the plan without saving it.
This is the inspection surface for the scheduler: it takes the same path a generated schedule will take, minus the write, so a plan can be reviewed and compared before anything depends on it. No version is created and nothing is numbered, so this can be called as often as needed.
The solver plans the constraint department — the room that sets the pace of the factory — so production schedule settings must name one and it must have machines that are included in planning. Without that there is nothing to schedule and the request is rejected rather than returning an empty plan.
planning_as_ofoptional string (date-time)The instant to plan against, which is what stock, demand history and active demand overrides are read as of.
Left unset, the preview is solved against the moment the request arrives. The horizon starts on the account's configured week-start day on or before this instant, so backdating this shifts the whole week grid.
horizon_weeksoptional integerNumber of weeks the plan should cover, overriding the account's configured horizon for this preview only.
demand_basisoptional stringenumValues:trailing_12seasonal_emaHow future demand is derived, overriding the account's configured basis for this preview only.
trailing_12: demand is the trailing twelve months of orders.seasonal_ema: demand is a seasonal exponential moving average, which follows a season arriving early or late rather than flattening it.
objectstringenumValues:production_schedule_previewResource type identifier.
solver_versionstringVersion of the solver that produced this plan.
planning_as_of_atstring (date-time)The instant the plan was calculated against.
The computed inventory policy per item, ordered by constraint run hours descending.
objectstringenumValues:listResource type identifier.
page_infoobjectPagination metadata.
next_page_urlstringnullableRelative URL that fetches the next page of results.
previous_page_urlstringnullableRelative URL that fetches the previous page of results.
has_next_pagebooleanWhether more results exist after this page.
has_prev_pagebooleanWhether results exist before this page.
dataarray of objectResources in this page.
itementitynullableThe item this policy is for.
idstringUnique identifier for the entity.
objectstringenumValues:entityResource type identifier.
typestringenumValues:accountactorentityThe 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.
namestringnullableHuman-readable display name for the entity (e.g. a user's full name, a sales order number).
handlestringnullableSecondary human-readable identifier (e.g. email address, username, redacted API key value).
skustringSKU of the item.
fulfillment_policystringenumValues:make_to_stockmake_to_orderHow this item was planned.
make_to_stock: built to the forecast, holding a safety stock against its variability.make_to_order: built only against orders already on the book, holding no buffer, so its safety stocks and reorder point are all zero.
policy_sourcestringenumValues:itemproduct_lineaccount_defaultWhich rule decided that policy: the item itself, its product line, or the account default.
firm_demand_unitsnumberOutstanding quantity the order book already owed for this item over the horizon.
forecast_demand_unitsnumberQuantity the forecast projected for the same window.
annual_demandnumberDemand used for planning, annualized.
weekly_demandnumberDemand used for planning, per week.
seconds_per_unitnumberHow long one unit occupies the constraint.
unit_costnumberStandard cost per unit.
setup_costnumberCost of one changeover, used as the setup cost in the lot-size calculation.
holding_costnumberAnnual cost of holding one unit.
eoq_unitsnumberEconomic order quantity: the campaign size that balances the cost of a changeover against the cost of holding what it produces.
constraint_lead_time_weeksnumberObserved or default lead time at the constraint.
finish_lead_time_weeksnumberLead time from the constraint to sellable stock.
safety_stock_primarynumberBuffer held at the constraint, pooled across the finished goods it feeds.
safety_stock_downstreamnumberBuffer held as finished goods.
reorder_pointnumberStock position at which a campaign is triggered.
order_up_tonumberCeiling on how far ahead this item is built.
on_hand_echelonnumberStock on hand at the constraint plus everything downstream of it.
on_hand_greigenumberStock sitting at the constraint stage on its own.
average_greige_inventorynumberWhat the constraint stage holds on average: its buffer plus half a campaign.
max_greige_inventorynumberWhat the constraint stage holds at its peak: its buffer plus a whole campaign.
weeks_of_covernumberWeeks of demand the current stock covers.
abc_classstringnullableenumValues:abcABC class by share of constraint run hours.
a: consumes the largest share of constraint capacity.b: moderate constraint consumption.c: consumes little constraint capacity.
annual_run_hoursnumberConstraint hours this item's annual demand consumes.
The planned production blocks.
objectstringenumValues:listResource type identifier.
page_infoobjectPagination metadata.
next_page_urlstringnullableRelative URL that fetches the next page of results.
previous_page_urlstringnullableRelative URL that fetches the previous page of results.
has_next_pagebooleanWhether more results exist after this page.
has_prev_pagebooleanWhether results exist before this page.
dataarray of objectResources in this page.
itementitynullableThe item to produce.
idstringUnique identifier for the entity.
objectstringenumValues:entityResource type identifier.
typestringenumValues:accountactorentityThe 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.
namestringnullableHuman-readable display name for the entity (e.g. a user's full name, a sales order number).
handlestringnullableSecondary human-readable identifier (e.g. email address, username, redacted API key value).
skustringSKU of the item.
machineentitynullableThe machine assigned to the campaign.
idstringUnique identifier for the entity.
objectstringenumValues:entityResource type identifier.
typestringenumValues:accountactorentityThe 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.
namestringnullableHuman-readable display name for the entity (e.g. a user's full name, a sales order number).
handlestringnullableSecondary human-readable identifier (e.g. email address, username, redacted API key value).
week_indexintegerZero-based week offset from the start of the horizon.
unitsnumberQuantity to produce.
lotsintegerWhole lots the quantity rounds to.
run_hoursnumberConstraint hours the campaign consumes.
Projected stock position per item across the horizon.
objectstringenumValues:listResource type identifier.
page_infoobjectPagination metadata.
next_page_urlstringnullableRelative URL that fetches the next page of results.
previous_page_urlstringnullableRelative URL that fetches the previous page of results.
has_next_pagebooleanWhether more results exist after this page.
has_prev_pagebooleanWhether results exist before this page.
dataarray of objectResources in this page.
itementitynullableThe item the projection is for.
idstringUnique identifier for the entity.
objectstringenumValues:entityResource type identifier.
typestringenumValues:accountactorentityThe 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.
namestringnullableHuman-readable display name for the entity (e.g. a user's full name, a sales order number).
handlestringnullableSecondary human-readable identifier (e.g. email address, username, redacted API key value).
on_hand_by_weekarray of numberProjected stock at the end of each week of the horizon.
diagnosticsobjectWhat the solver could not do.
eoq_capped_skusarray of stringItems whose economic lot size was reduced to fit one machine-week, meaning shorter and more frequent campaigns.
unschedulable_skusarray of stringItems that cannot fit even a single lot into a machine-week and are therefore never scheduled.
capacity_starved_skusarray of stringItems below their reorder point that never won a slot in the horizon.
This is the signal that the plant is short of capacity.
items_without_run_ratearray of stringItems with no measured run rate, which cannot be scheduled because their machine time is unknown.
excluded_item_countintegerNumber of items the merchant has excluded from planning.
constraint_machine_countintegerMachines the constraint department contributed to this solve.
measured_batch_countintegerBatches found on those machines in the demand window.
Zero means nothing has been scanned there, which is why a plan can be empty even with machines configured.
machines_without_stepintegerMachines in the constraint department with no production step.
Their campaigns derive no downstream department work.
changeover_slope_minutesnumberMinutes of changeover the model adds for each new input a product transition introduces.
Calibrated from measured production against average_inputs_added, so the modelled changeover lands on the time the floor actually reports rather than on a fixed allowance.
average_inputs_addednumberAverage inputs a product transition introduces, measured from history.
Every demand override that moved a number.
objectstringenumValues:listResource type identifier.
page_infoobjectPagination metadata.
next_page_urlstringnullableRelative URL that fetches the next page of results.
previous_page_urlstringnullableRelative URL that fetches the previous page of results.
has_next_pagebooleanWhether more results exist after this page.
has_prev_pagebooleanWhether results exist before this page.
dataarray of objectResources in this page.
overrideentitynullableThe override that was applied.
idstringUnique identifier for the entity.
objectstringenumValues:entityResource type identifier.
typestringenumValues:accountactorentityThe 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.
namestringnullableHuman-readable display name for the entity (e.g. a user's full name, a sales order number).
handlestringnullableSecondary human-readable identifier (e.g. email address, username, redacted API key value).
itementitynullableThe item whose demand changed.
idstringUnique identifier for the entity.
objectstringenumValues:entityResource type identifier.
typestringenumValues:accountactorentityThe 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.
namestringnullableHuman-readable display name for the entity (e.g. a user's full name, a sales order number).
handlestringnullableSecondary human-readable identifier (e.g. email address, username, redacted API key value).
month_starts_atstring (date-time)The first instant of the month the override applied to.
beforenumberDemand before the override.
afternumberDemand after the override.
adjustmentstringenumValues:absolutedelta_unitsdelta_percentHow the override was expressed.
absolute: the override replaced the forecast for the month outright.delta_units: the override was added to the forecast.delta_percent: the override scaled the forecast.
reasonstringnullableenumValues:new_customerlost_accountpromotionWhy the override exists.
firm_demand_unitsnumberOutstanding order quantity this plan owes, expressed in the constraint item's own unit.
Zero means nothing is on order and the plan is driven purely by the forecast.
undated_firm_order_countintegerOpen orders carrying no ship-by commitment, dated at the front of the horizon because they are issued and unshipped.
A non-zero count means orders placed before commitments were tracked still need a ship-by date.
make_to_order_item_countintegerPlanned items built only against the order book rather than to a forecast.
Commitments this plan does not meet.
objectstringenumValues:listResource type identifier.
page_infoobjectPagination metadata.
next_page_urlstringnullableRelative URL that fetches the next page of results.
previous_page_urlstringnullableRelative URL that fetches the previous page of results.
has_next_pagebooleanWhether more results exist after this page.
has_prev_pagebooleanWhether results exist before this page.
dataarray of schedule_at_risk_orderResources in this page.
objectstringenumValues:schedule_at_risk_orderResource type identifier.
sales_orderentitynullableThe order at risk.
idstringUnique identifier for the entity.
objectstringenumValues:entityResource type identifier.
typestringenumValues:accountactorentityThe 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.
namestringnullableHuman-readable display name for the entity (e.g. a user's full name, a sales order number).
handlestringnullableSecondary human-readable identifier (e.g. email address, username, redacted API key value).
itementitynullableThe item that has to be produced to meet it.
idstringUnique identifier for the entity.
objectstringenumValues:entityResource type identifier.
typestringenumValues:accountactorentityThe 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.
namestringnullableHuman-readable display name for the entity (e.g. a user's full name, a sales order number).
handlestringnullableSecondary human-readable identifier (e.g. email address, username, redacted API key value).
skustringSKU of that item.
unitsnumberOutstanding quantity still owed.
due_weekintegerHorizon week the constraint stage has to finish in for the order to ship on time.
reasonstringenumValues:past_dueundatedshortWhy the commitment is at risk.
past_due: production needed to start before this plan begins.undated: the order carries no ship-by commitment, so it is treated as owed now.short: the plan projects less stock than the order needs in the week it is needed.
finishingobjectHow the second stage — the rest of the factory — fared against the plan the constraint produced.
weekly_capacity_hoursnumberHours the second stage can work in one week.
planned_hours_by_weekarray of numberHours the plan asks of it, week by week.
utilisation_by_weekarray of numberThose hours as a fraction of capacity, week by week.
greige_starved_skusarray of stringFinished goods that wanted building across the whole horizon and never had greige to build from.
capacity_starved_skusarray of stringFinished goods that had greige and never had hours.
items_without_run_ratearray of stringFinished goods with no measured finishing rate, which cannot be levelled because the hours they cost are unknown.
unused_greige_unitsnumberConstraint output the horizon never converts into anything.
A large figure means the two stages are planned against different demand, which is worth looking at rather than leaving as an unexplained pile of greige.
total_planned_unitsnumberTotal finished units the stage plans across the horizon.
line_countintegerHow many finishing lines the plan holds.
finishing_machine_countintegerMachines outside the constraint department that the second stage was sized from.
Zero means its capacity was estimated from the shift pattern alone rather than counted.
finishing_capacity_is_estimatedbooleanWhether the second stage's capacity was estimated rather than counted from machines.
Responses
Successful response for Preview Production Schedule