Order Priorities


Short description

Order priority planning is a feature for users to specify strong preferences which orders should be planned if not all orders can be served by the fleet.


By providing order priorities the user can specify which orders are more important to plan than others.

Examples for scenarios that can be modeled by order priorities:

  • Premium orders:

    Premium orders must be served as fast as possible. Therefore, premium orders get a higher priority than non-premium orders. As a consequence, premium orders are more likely to be served in the current planning.

  • Continuous daily planning:

    Suppose every order must be served within 4 days upon receipt of the order. When planning for the next day, orders which were not yet served in the last 3 days must be served the next day. Those orders get the highest priority, the next priority is given to orders which must be served in the next 2 days and so on.

Detailed Consideration

If the global switch consider order priorities is switched on, the order priorities will be considered for a PlanToursRequest. In this case the priorities will always be considered even if a lot of lower prioritized orders could be planned by removing one higher prioritized order from the plan.


We consider 4 orders:

Imagine that you can either plan order 4 or order 2 and order 3. A proper result of a PlanToursRequest without considering order priorities would be to plan order 1-3 in a tour and to leave order 4 unplanned. However since order 4 is the most important order, the result of a PlanToursRequest with considering order priorities would be to plan order 1 and order 4 in a tour and to leave order 2 and order 3 unplanned.

Priority planning can increase the number of unplanned orders in order to plan higher prioritized orders.

How to use order priorities

If the global switch consider order priorities is switched on, each Order must have a priority set, otherwise an exception is thrown. 0 is the lowest priority, 9 the highest.

The order priorities will only have an impact on the result if multiple distinct priorities are used.


Generally the computational effort is higher when using order priorities, since the flow of the algorithm is different. Therefore we name this algorithm prioritiy planning.

The priority planning will first check whether every order can be planned without considering order priorities. If this is the case, the calculation will not take longer. However if there are some unplanned orders, the solution is found iteratively and this will take more computation time than planning without order priorities.

Input Plan

Orders in the InputPlan always remain planned after automatic planning. I.e., if a high prioritized order can only be planned by removing a low prioritized order of an input tour, this high prioritized order will remain unplanned. If you want to avoid this, first delete some low prioritized orders from the InputPlan.

There are no violations concerning order priorities and an InputPlan may contain less prioritized orders even though higher prioritized orders are unplanned.

Change Tours

Actions of ChangeToursRequests are always performed regardless of order priorities.

Good to know

Since we solve the priority planning hierarchically, the calculation will take more computation time than without order priorities.

Technical Concept Unscheduled Orders
Technical Concept Change Tours