Publish Production Schedule

Beta
PUT/v1/operations/production-schedules/{id}/actions/publish

This endpoint is idempotent. Learn more

Publishes a draft schedule, freezing its first weeks.

Publishing is what makes a plan a commitment: the frozen weeks' lines are marked frozen, the frozen line count and quantity are captured onto the version, and any published version whose horizon overlaps this one's is superseded rather than rewritten. After this, a change inside the frozen window has to state a reason.

Only a draft can be published. How many weeks freeze comes from the account's frozen-weeks setting as it stood when the version was generated, and a version generated with zero frozen weeks publishes without committing to anything.

The frozen counts are snapshotted here and never recomputed, so adherence keeps the denominator it was committed to.

Permissions requiredValues:production_schedules:update
The role behind your API key or agent must grant every one of these permissions.
idstring

ID of the production schedule.

idstring

Schedule ID.

objectstringenumValues:production_schedule

Resource type identifier.

versioninteger

Sequential version number within the account.

Regenerating a draft re-solves it in place and keeps its number; only generating a new plan takes the next one.

statusstringenumValues:draftgeneratingpublished

Where this version is in its lifecycle.

  • draft: still editable and commits to nothing.
  • generating: a scheduled solve is still building this version.
  • published: live, with its leading weeks frozen as a commitment to the floor.
  • superseded: a later version was published over an overlapping horizon.
  • archived: retired without being replaced.
  • failed: the solver could not produce a plan; error_message says why.
namestringnullable

Label for the version, such as the planning cycle it was generated for.

planning_as_of_atstring (date-time)

The instant the plan was calculated against.

horizon_starts_atstring (date-time)

First instant of the horizon.

horizon_ends_atstring (date-time)

First instant of the last day of the horizon.

horizon_weeksinteger

Length of the horizon in weeks.

frozen_weeksinteger

How many leading weeks freeze on publish.

Publishing freezes every campaign that starts inside the window; changing one afterwards requires a reason and is recorded in the deviation log.

frozen_through_atstring (date-time)nullable

The last day the frozen window covers, set when the version is published.

demand_basisstringenumValues:trailing_12seasonal_ema

Which demand basis produced the plan.

  • trailing_12: demand is taken from the trailing twelve months of orders.
  • seasonal_ema: demand is a seasonal exponential moving average, which follows a season arriving earlier or later than usual.
generation_sourcestringenumValues:manualscheduled

What triggered the generation.

  • manual: someone asked for this version.
  • scheduled: the account's generation cadence produced it on its own.
solver_versionstring

Version of the solver that produced the plan.

settings_snapshotobject

The planning assumptions used, frozen at generation so the plan stays explainable after settings change.

diagnosticsobject

What the solver could not do, frozen at generation.

eoq_capped_skusarray of string

Items whose economic lot size was reduced to fit one machine-week, meaning shorter and more frequent campaigns.

unschedulable_skusarray of string

Items that cannot fit even a single lot into a machine-week and are therefore never scheduled.

capacity_starved_skusarray of string

Items 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 string

Items with no measured run rate, which cannot be scheduled because their machine time is unknown.

excluded_item_countinteger

Number of items the merchant has excluded from planning.

constraint_machine_countinteger

Machines the constraint department contributed to this solve.

measured_batch_countinteger

Batches 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_stepinteger

Machines in the constraint department with no production step.

Their campaigns derive no downstream department work.

changeover_slope_minutesnumber

Minutes 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_addednumber

Average inputs a product transition introduces, measured from history.

applied_overrideslistnullable

Every demand override that moved a number.

objectstringenumValues:list

Resource type identifier.

page_infoobject

Pagination metadata.

next_page_urlstringnullable

Relative URL that fetches the next page of results.

previous_page_urlstringnullable

Relative URL that fetches the previous page of results.

has_next_pageboolean

Whether more results exist after this page.

has_prev_pageboolean

Whether results exist before this page.

dataarray of object

Resources in this page.

overrideentitynullable

The override that was applied.

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).

itementitynullable

The item whose demand changed.

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).

month_starts_atstring (date-time)

The first instant of the month the override applied to.

beforenumber

Demand before the override.

afternumber

Demand after the override.

adjustmentstringenumValues:absolutedelta_unitsdelta_percent

How 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_accountpromotion

Why the override exists.

firm_demand_unitsnumber

Outstanding 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_countinteger

Open 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_countinteger

Planned items built only against the order book rather than to a forecast.

at_risk_orderslistnullable

Commitments this plan does not meet.

objectstringenumValues:list

Resource type identifier.

page_infoobject

Pagination metadata.

next_page_urlstringnullable

Relative URL that fetches the next page of results.

previous_page_urlstringnullable

Relative URL that fetches the previous page of results.

has_next_pageboolean

Whether more results exist after this page.

has_prev_pageboolean

Whether results exist before this page.

dataarray of schedule_at_risk_order

Resources in this page.

objectstringenumValues:schedule_at_risk_order

Resource type identifier.

sales_orderentitynullable

The order at risk.

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).

itementitynullable

The item that has to be produced to meet it.

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).

skustring

SKU of that item.

unitsnumber

Outstanding quantity still owed.

due_weekinteger

Horizon week the constraint stage has to finish in for the order to ship on time.

reasonstringenumValues:past_dueundatedshort

Why 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.
finishingobject

How the second stage — the rest of the factory — fared against the plan the constraint produced.

weekly_capacity_hoursnumber

Hours the second stage can work in one week.

planned_hours_by_weekarray of number

Hours the plan asks of it, week by week.

utilisation_by_weekarray of number

Those hours as a fraction of capacity, week by week.

greige_starved_skusarray of string

Finished goods that wanted building across the whole horizon and never had greige to build from.

capacity_starved_skusarray of string

Finished goods that had greige and never had hours.

items_without_run_ratearray of string

Finished goods with no measured finishing rate, which cannot be levelled because the hours they cost are unknown.

unused_greige_unitsnumber

Constraint 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_unitsnumber

Total finished units the stage plans across the horizon.

line_countinteger

How many finishing lines the plan holds.

finishing_machine_countinteger

Machines 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_estimatedboolean

Whether the second stage's capacity was estimated rather than counted from machines.

error_messagestringnullable

Why generation failed, when it did.

frozen_line_countinteger

Number of lines that were frozen at publish.

Captured once and never recomputed, because frozen-week adherence measures against what was committed to.

frozen_planned_quantitynumber

Total quantity frozen at publish.

generated_byactornullable

The actor that generated this version.

idstring

Unique identifier of the actor.

objectstringenumValues:actor

Resource type identifier.

typestringenumValues:userapi_keyagent

Actor type.

  • user: a human user account.
  • api_key: a programmatic caller authenticating with an API key.
  • agent: an automated agent acting on the account's behalf.
  • group: a shared group identity, such as a "Customer Service" persona, rather than a single individual.
namestringnullable

The actor's display name.

handlestringnullable

Human-readable handle identifying the actor.

  • For user actors: the user's email address.
  • For api_key actors: the redacted key value.

Other actor types carry no handle.

avatar_urlstringnullable

URL of the actor's profile photo, if one is set.

Only populated for user actors.

rolerolenullable

The role the actor holds in the account, which determines what it is permitted to do.

idstring

Role ID.

objectstringenumValues:role

Resource type identifier.

namestring

Display name of the role.

Unique within the account.

typestringenumValues:adminuserscanner

The kind of role.

The type gates behavior that individual permissions do not cover, and some actions are reserved for a single role type.

  • admin: full administrative access. Sensitive areas such as API keys, billing, and third-party integrations are restricted to admins no matter what permissions another role holds.
  • user: a custom role tailored to a specific need, with its permissions defined explicitly. Roles created through the API always have this type.
  • scanner: the role used by shop-floor scanning stations, assigned automatically when a scanning-station user is created.
  • sales_rep: a role for sales representatives. Order analytics are scoped to the rep's own orders.
  • agent: a role assigned to an automated agent rather than a person.
ownerownernullable

Provenance of this role.

System-owned roles are platform-provided defaults shared across all accounts and cannot be updated or deleted; account-owned roles are custom to your account.

objectstringenumValues:owner

Resource type identifier.

typestringenumValues:systemaccount

Where this resource came from.

  • system: a platform-provided default shared across all accounts; not editable.
  • account: created and owned by a specific account; the account field identifies which.
accountaccountnullable

The account that owns this resource.

Present only when type is account; system-owned resources have no owning account.

idstring

Account ID.

objectstringenumValues:account

Resource type identifier.

namestring

The account's display name.

default_billing_addressaddressnullable

The address billed by default on orders for this account.

idstring

Address ID.

objectstringenumValues:address

Resource type identifier.

namestring

Display name of the address.

phonestringnullable

Phone number associated with the address.

emailstringnullable

Email address associated with the address.

typestringenumValues:standarddrop_ship

How the address is used.

  • standard: a normal shipping or billing address.
  • drop_ship: an address an order is shipped to directly, typically a third party or end customer rather than the account itself.
receive_calendar_idstringnullable

The operating calendar naming the days this dock accepts freight.

The most specific link in the receiving chain: set it when one of a customer's sites keeps different days from the rest. Null falls through to the customer, then their group, then the account default.

geolocationgeolocationnullable

Street-level location details for the address.

created_atstring (date-time)

Creation timestamp.

updated_atstring (date-time)

Last updated timestamp.

default_shipping_addressaddressnullable

The address shipped to by default on orders for this account.

idstring

Address ID.

objectstringenumValues:address

Resource type identifier.

namestring

Display name of the address.

phonestringnullable

Phone number associated with the address.

emailstringnullable

Email address associated with the address.

typestringenumValues:standarddrop_ship

How the address is used.

  • standard: a normal shipping or billing address.
  • drop_ship: an address an order is shipped to directly, typically a third party or end customer rather than the account itself.
receive_calendar_idstringnullable

The operating calendar naming the days this dock accepts freight.

The most specific link in the receiving chain: set it when one of a customer's sites keeps different days from the rest. Null falls through to the customer, then their group, then the account default.

geolocationgeolocationnullable

Street-level location details for the address.

created_atstring (date-time)

Creation timestamp.

updated_atstring (date-time)

Last updated timestamp.

brandingaccount_brandingnullable

Customer-facing branding for the account, such as the logo, support contacts, and social links.

idstring

Branding ID.

objectstringenumValues:account_branding

Resource type identifier.

support_emailstringnullable

The email address customers are directed to for support.

phone_numberstringnullable

The account's public contact phone number.

logo_urlstringnullable

Stored location of the account's logo image.

Logos uploaded through the API are stored as an object key rather than a fetchable link, so use the Get Account Logo URL endpoint to obtain a short-lived download URL.

favicon_urlstringnullable

Stored location of the account's customer-portal favicon.

Favicons uploaded through the API are stored as an object key rather than a fetchable link, so use the Get Account Favicon URL endpoint to obtain a short-lived download URL.

facebook_handlestringnullable

Facebook handle.

instagram_handlestringnullable

Instagram handle.

linkedin_handlestringnullable

LinkedIn handle.

twitter_handlestringnullable

Twitter handle.

website_urlstringnullable

The account's public website.

created_atstring (date-time)

Creation timestamp.

updated_atstring (date-time)

Last updated timestamp.

portalaccount_portalnullable

The account's customer portal settings, including the portal URL slug.

idstring

Portal ID.

objectstringenumValues:account_portal

Resource type identifier.

slugstring

URL slug that identifies the account's customer portal.

Unique across all accounts.

created_atstring (date-time)

Creation timestamp.

updated_atstring (date-time)

Last updated timestamp.

created_atstring (date-time)

Creation timestamp.

updated_atstring (date-time)

Last updated timestamp.

permissionsarray of stringnullable

Permissions granted by this role, in {permission}:{action} format, such as customers:read.

created_atstring (date-time)

Creation timestamp.

updated_atstring (date-time)

Last updated timestamp.

published_byactornullable

The actor that published this version.

idstring

Unique identifier of the actor.

objectstringenumValues:actor

Resource type identifier.

typestringenumValues:userapi_keyagent

Actor type.

  • user: a human user account.
  • api_key: a programmatic caller authenticating with an API key.
  • agent: an automated agent acting on the account's behalf.
  • group: a shared group identity, such as a "Customer Service" persona, rather than a single individual.
namestringnullable

The actor's display name.

handlestringnullable

Human-readable handle identifying the actor.

  • For user actors: the user's email address.
  • For api_key actors: the redacted key value.

Other actor types carry no handle.

avatar_urlstringnullable

URL of the actor's profile photo, if one is set.

Only populated for user actors.

rolerolenullable

The role the actor holds in the account, which determines what it is permitted to do.

idstring

Role ID.

objectstringenumValues:role

Resource type identifier.

namestring

Display name of the role.

Unique within the account.

typestringenumValues:adminuserscanner

The kind of role.

The type gates behavior that individual permissions do not cover, and some actions are reserved for a single role type.

  • admin: full administrative access. Sensitive areas such as API keys, billing, and third-party integrations are restricted to admins no matter what permissions another role holds.
  • user: a custom role tailored to a specific need, with its permissions defined explicitly. Roles created through the API always have this type.
  • scanner: the role used by shop-floor scanning stations, assigned automatically when a scanning-station user is created.
  • sales_rep: a role for sales representatives. Order analytics are scoped to the rep's own orders.
  • agent: a role assigned to an automated agent rather than a person.
ownerownernullable

Provenance of this role.

System-owned roles are platform-provided defaults shared across all accounts and cannot be updated or deleted; account-owned roles are custom to your account.

objectstringenumValues:owner

Resource type identifier.

typestringenumValues:systemaccount

Where this resource came from.

  • system: a platform-provided default shared across all accounts; not editable.
  • account: created and owned by a specific account; the account field identifies which.
accountaccountnullable

The account that owns this resource.

Present only when type is account; system-owned resources have no owning account.

idstring

Account ID.

objectstringenumValues:account

Resource type identifier.

namestring

The account's display name.

default_billing_addressaddressnullable

The address billed by default on orders for this account.

idstring

Address ID.

objectstringenumValues:address

Resource type identifier.

namestring

Display name of the address.

phonestringnullable

Phone number associated with the address.

emailstringnullable

Email address associated with the address.

typestringenumValues:standarddrop_ship

How the address is used.

  • standard: a normal shipping or billing address.
  • drop_ship: an address an order is shipped to directly, typically a third party or end customer rather than the account itself.
receive_calendar_idstringnullable

The operating calendar naming the days this dock accepts freight.

The most specific link in the receiving chain: set it when one of a customer's sites keeps different days from the rest. Null falls through to the customer, then their group, then the account default.

geolocationgeolocationnullable

Street-level location details for the address.

created_atstring (date-time)

Creation timestamp.

updated_atstring (date-time)

Last updated timestamp.

default_shipping_addressaddressnullable

The address shipped to by default on orders for this account.

idstring

Address ID.

objectstringenumValues:address

Resource type identifier.

namestring

Display name of the address.

phonestringnullable

Phone number associated with the address.

emailstringnullable

Email address associated with the address.

typestringenumValues:standarddrop_ship

How the address is used.

  • standard: a normal shipping or billing address.
  • drop_ship: an address an order is shipped to directly, typically a third party or end customer rather than the account itself.
receive_calendar_idstringnullable

The operating calendar naming the days this dock accepts freight.

The most specific link in the receiving chain: set it when one of a customer's sites keeps different days from the rest. Null falls through to the customer, then their group, then the account default.

geolocationgeolocationnullable

Street-level location details for the address.

created_atstring (date-time)

Creation timestamp.

updated_atstring (date-time)

Last updated timestamp.

brandingaccount_brandingnullable

Customer-facing branding for the account, such as the logo, support contacts, and social links.

idstring

Branding ID.

objectstringenumValues:account_branding

Resource type identifier.

support_emailstringnullable

The email address customers are directed to for support.

phone_numberstringnullable

The account's public contact phone number.

logo_urlstringnullable

Stored location of the account's logo image.

Logos uploaded through the API are stored as an object key rather than a fetchable link, so use the Get Account Logo URL endpoint to obtain a short-lived download URL.

favicon_urlstringnullable

Stored location of the account's customer-portal favicon.

Favicons uploaded through the API are stored as an object key rather than a fetchable link, so use the Get Account Favicon URL endpoint to obtain a short-lived download URL.

facebook_handlestringnullable

Facebook handle.

instagram_handlestringnullable

Instagram handle.

linkedin_handlestringnullable

LinkedIn handle.

twitter_handlestringnullable

Twitter handle.

website_urlstringnullable

The account's public website.

created_atstring (date-time)

Creation timestamp.

updated_atstring (date-time)

Last updated timestamp.

portalaccount_portalnullable

The account's customer portal settings, including the portal URL slug.

idstring

Portal ID.

objectstringenumValues:account_portal

Resource type identifier.

slugstring

URL slug that identifies the account's customer portal.

Unique across all accounts.

created_atstring (date-time)

Creation timestamp.

updated_atstring (date-time)

Last updated timestamp.

created_atstring (date-time)

Creation timestamp.

updated_atstring (date-time)

Last updated timestamp.

permissionsarray of stringnullable

Permissions granted by this role, in {permission}:{action} format, such as customers:read.

created_atstring (date-time)

Creation timestamp.

updated_atstring (date-time)

Last updated timestamp.

published_atstring (date-time)nullable

When this version was published.

superseded_byentitynullable

The version that replaced this one.

Set automatically when a later version is published over an overlapping horizon.

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).

created_atstring (date-time)

Creation timestamp.

updated_atstring (date-time)

Last updated timestamp.

Responses

200

Successful response for Publish Production Schedule