[v2.6] DemandPriority

Overview

The Demand Priority feature is at the core of Orchestrate's value.

It categorizes demand lines and prioritizes which of those lines receives inventory. It also ensures that constraints, such as budgets, safety nets, and pre-allocations, are respected.

If you submit several random demand lines, Orchestrate displays them in a clear and prioritized sequence. It does not make those reservations in the host system, but provides them as suggestions via a Response JSON.

Just as Sourcing uses inventory awareness to determine whether a warehouse is a viable sourcing option, Demand Priority utilizes inventory awareness to determine:

  • how much inventory can be used to fulfill a demand line
  • how much inventory has been consumed as part of a budget and therefore the maximum that can be consumed for a demand line
  • how much inventory must be set aside, or soft-locked, for channel safety nets or customer pre-allocations

Outside of Sourcing, Demand Priority is likely the first step in the Orchestrate process. It helps inform other functions downstream which demand is acted on.


POST /DemandPriority


 Request Body
PropertyData TypeNotes
reservationPriorityTemplate Namestring

Determines the priority of demand channels.

In scenarios where supply is less than the quantity demanded for a given item, the highest-sequenced channels are allocated inventory and vice versa.


 demandLines
PropertyData TypeNotes
demandLineRecordIdstring

Unique identifier for the demand line.

Note

Orchestrate operates on a per line basis.

Each line is evaluated on its own, independent of the order or header information, unless specified otherwise by the feature.

itemNumberstringUnique identifier for the item demanded.
quantitynumber

Quantity of the item being demanded.

  • decimal
unitOfMeasurestring

Unit of measure as defined by the host system.

Note

Orchestrate does not define nor execute unit of measure conversions. 

shipDatestring

Requested ship date for the demand.

  • date-time
profitMarginnumber

Profit margin as defined by the host system.

  • decimal
createdDateTimestring

The date and time the line was created.

  • date-time
partialFulfillmentboolean

Yes: The line can be partially fulfilled. Where there are 10 requested units, and there are only 5 units remaining in the given warehouse, the line will be partially fulfilled for 5 units.

No: The line must be entirely fulfilled. Where there are 10 requested units, and there are only 5 units remaining in the given warehouse, the line will not be allocated any units.

warehousestringThe outbound warehouse for the demand quantity.
customerstringThe customer requesting the inventory.
sitestringThe site containing the warehouse.


 attributes
PropertyData TypeNotes
namestringName of the given attribute attached to the requested demand line.
valuestringWhere applicable, the value of the given attribute.



 Response
PropertyData TypeNotes
errorMessagesstringAny errors encountered during the priority logic appear here.


 orderedDemandLines
PropertyData TypeNotes
demandLineRecordIdstringUnique identifier for the demand line, matching the corresponding request line.
channelAssignmentstringBased on the attributes of the demand line, the channel it was assigned to.
priorityinteger

Within the channel, what priority ranking the line received.

Note

The priority displayed is within the specified channel.

This means that while each channel is prioritized against all other channels, this priority is in relation to other demand lines in the same channel.

  • int32
itemNumberstringUnique identifier for the item demanded.
requestedQuantitynumber

The quantity requested by the demand line.

  • decimal
satisfiedQuantitynumber

The quantity fulfilled based on the logic of the demand priority configurations (i.e., How much inventory can be allocated to this customer given the configured constraints?).

  • decimal
quantityFulfillmentStatusenum
  • Fulfilled: All requested quantity was able to be satisfied.
  • Partially Fulfilled: At least one, but not all, requested units were able to be satisfied.
  • Unfulfilled: None of the requested quantity were satisfied.
unitOfMeasurestring

Unit of measure as defined by the host system.

Note

Orchestrate does not define nor execute unit of measure conversions. 

shipDatestring

Requested ship date for the demand.

  • date-time
profitMarginnumber

Profit margin as defined by the host system.

  • decimal
customerstringThe customer requesting the inventory.
budgetItemGroup
stringIf the item belongs to a budget group, that group is referenced here.
budgetScopeenum

The budget scope dictates the category of demand lines that the budget encompasses.

  • Attribute: Where the demand line has a specific attribute, the budget will be consumed for the corresponding scope (e.g., Customer Group, Mode of Delivery, Region).
  • Customer: Where the demand line is requested by a given customer, the budget will be consumed.
  • Total Channel: Where the demand line requested belongs to a given channel, the budget will be consumed.

Note

Where budget scopes are defined, they are calculated as a sum for the entire scope.

This means if a Customer Budget Scope is set to 100 and 5 customers consume 10 units each of the budget, a total of 50 units will be consumed.

The budget quantity corresponds to the total budgeted, not each.

budgetNamestringThe unique identifier for the budget.
budgetQuantityRemainingnumber

If a budget was interacted with, how much is remaining after calculating the consumed inventory?

  • decimal
preAllocationNamestringIf a pre-allocation was consumed, the name of said pre-allocation.
attributestringIf the pre-allocation was attribute based, the name of said attribute.
preAllocationQuantitynumber

The amount of pre-allocated inventory remaining.

  • decimal

Feedback

Submit feedback.