Instructions for filling out Excel file
General description
You can download a sample Excel file here. Uploadable formats: xls, xlsx, xlsm.
To upload routing data correctly, the Excel workbook must contain the following sheets:
Orders
: Information about orders.Vehicles
: Information about vehicles/couriers.Depot
orDepots
: Information about the depot point.
Optionally, the Excel workbook can contain the following sheets:
Incompatible_order_types
: Information about mutually incompatible order types.Location_groups
: Order group settings.Options
: Routing options.Routes
: Data on predefined routes (routes of logistics coordinators or routes from past planning that need to be preserved in the current planning).
The Excel workbook can also contain sheets with other names and additional information for the user: this won't affect the upload.
To avoid upload errors, don't change the table header on the sheet (the first few rows with the field name and the technical name of the attribute). You can delete optional columns (or add other columns with reserved names), provided that there are no empty columns between the ones filled in.
Columns can be in any order.
Description of Excel sheets
Orders
This sheet contains information about orders. Strictly speaking, each row on this sheet is not an order but a location. Therefore:
If a simple delivery is made from a depot point, then each row corresponds to an order.
If a delivery is made from point A to point B, this order is split into 2 rows: one row corresponds to the pickup point and the other row corresponds to the delivery point.
If the start or end point of the route differs from the depot point, this point will be entered in a separate row on the sheet.
For the Orders sheet, you only need to fill in the following minimum set of fields (if you deliver from a depot):
Order number.
Coordinates and/or address of the order.
Time window of the order.
Volume and weight characteristics of the order (weight and/or volume and/or number of cargo units).
In the other fields, you can leave the default (or empty) values and it will work for the first run of the routing task.
Below, you can see the fields allowed on the Orders sheet.
Basic order information
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Order number; additional order number | id; ref | We recommend specifying the order number in id (you can leave ref empty or fill it in the same as id ). Learn more. | Yes (one of the fields) |
Latitude; longitude | point.lat; point.lon | Coordinates of the delivery location: latitude (point.lat ), longitude (point.lon ). Learn more. | No, if you specify the order address (when you upload the data via the interface, you can geocode the address) |
Client name; brief description of the order point; client address; order comments | title; description; address; comments | Information fields that are afterwards displayed in the planning interface. Learn more | No (but if the order coordinates are not entered, then you must enter the address) |
Client phone number | phone | Used only when exporting planning results to Track & Trace. | No |
Location type | type | Learn more | Must be filled in for correct routing (technically, this field is optional) |
Undelivery penalty | penalty.drop | We recommend leaving the default value (1,000,000) or entering nothing (in this case, the default value is used). Learn more | Must be filled in for correct routing (technically, this field is optional) |
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Order number; additional order number | id; ref | We recommend specifying the order number in id (you can leave ref empty or fill it in the same as id ). Learn more. | Yes (one of the fields) |
Latitude; longitude | point.lat; point.lon | Coordinates of the delivery location: latitude (point.lat ), longitude (point.lon ). Learn more. | No, if you specify the order address (when you upload the data via the interface, you can geocode the address) |
Client name; brief description of the order point; client address; order comments | title; description; address; comments | Information fields that are afterwards displayed in the planning interface. Learn more | No (but if the order coordinates are not entered, then you must enter the address) |
Client phone number | phone | Used only when exporting planning results to Track & Trace. | No |
Location type | type | Learn more | Must be filled in for correct routing (technically, this field is optional) |
Undelivery penalty | penalty.drop | We recommend leaving the default value (1,000,000) or entering nothing (in this case, the default value is used). Learn more | Must be filled in for correct routing (technically, this field is optional) |
Order characteristics
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Weight (gross), kg; number of cargo units used; dimensions, m (Width, Depth, Height) | shipment_size.weight_kg; shipment_size.units; shipment_size.volume.width_m; shipment_size.volume.depth_m; shipment_size.volume.height_m | Volume and weight characteristics of the order. Learn more | Must be filled in for correct routing (technically, this field is optional) |
Volume, cbm | shipment_size.volume_cbm | The order volume in cubic meters. Learn more | No |
Custom units: name; number of units | shipment_size.custom.N.name; shipment_size.custom.N.size | Custom units for the order. Learn more | No |
Cargo type | shipment_size.volume.type | Possible values: bulk , rigid , fixed_bottom . Learn more. | No |
Alignment | shipment_size.volume.align | Possible values: all_axes , height . Learn more. | No |
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Weight (gross), kg; number of cargo units used; dimensions, m (Width, Depth, Height) | shipment_size.weight_kg; shipment_size.units; shipment_size.volume.width_m; shipment_size.volume.depth_m; shipment_size.volume.height_m | Volume and weight characteristics of the order. Learn more | Must be filled in for correct routing (technically, this field is optional) |
Volume, cbm | shipment_size.volume_cbm | The order volume in cubic meters. Learn more | No |
Custom units: name; number of units | shipment_size.custom.N.name; shipment_size.custom.N.size | Custom units for the order. Learn more | No |
Cargo type | shipment_size.volume.type | Possible values: bulk , rigid , fixed_bottom . Learn more. | No |
Alignment | shipment_size.volume.align | Possible values: all_axes , height . Learn more. | No |
Delivery windows
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Time window | time_window | If the time window is relative (that is, it's in the format 10:00 – 18:00), it is important to account for a shift of this time window relative to the planning date (which is specified when running the routing task). Read more here and here | Yes (if time_windows aren't specified) |
Multiple time windows | time_windows.N.time_window | Use if the window has “breaks” during the day or the windows are different on different days. Can't be used together with time_window. Learn more | Yes (unless time_window is specified) |
Flag of hard time window, TRUE/FALSE | hard_window | TRUE: The time window can't be violated under any circumstances. FALSE: The time window can be violated (if this helps to allocate resources better). You may leave this field empty: in this case, the time window is soft (it may be violated). Learn more Please note: the | No |
Hard time window | hard_time_window | If the main depot window is soft, you can set a hard time window around it. Learn more Please note: the | No |
Penalties: per minute of time window violation; for violation of time window; for early delivery; per minute of early delivery; for late arrival; per minute of late arrival | penalty.out_of_time.minute; penalty.out_of_time.fixed; penalty.early.fixed; penalty.early.minute; penalty.late.fixed; penalty.late.minute | Penalties for violation of the order time window. We recommend that you leave the default values (fixed = 1000, minute = 17) or empty values (in this case, the default value is used). Change this field only when it's clear how that would affect routing. You may need to change it in the following use cases: late arrivals are not allowed (but it's possible to arrive before the time window starts), or vice versa; time window violation is acceptable, if it helps to optimize resources. Learn more | Must be filled in for correct routing (technically, this field is optional) |
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Time window | time_window | If the time window is relative (that is, it's in the format 10:00 – 18:00), it is important to account for a shift of this time window relative to the planning date (which is specified when running the routing task). Read more here and here | Yes (if time_windows aren't specified) |
Multiple time windows | time_windows.N.time_window | Use if the window has “breaks” during the day or the windows are different on different days. Can't be used together with time_window. Learn more | Yes (unless time_window is specified) |
Flag of hard time window, TRUE/FALSE | hard_window | TRUE: The time window can't be violated under any circumstances. FALSE: The time window can be violated (if this helps to allocate resources better). You may leave this field empty: in this case, the time window is soft (it may be violated). Learn more Please note: the | No |
Hard time window | hard_time_window | If the main depot window is soft, you can set a hard time window around it. Learn more Please note: the | No |
Penalties: per minute of time window violation; for violation of time window; for early delivery; per minute of early delivery; for late arrival; per minute of late arrival | penalty.out_of_time.minute; penalty.out_of_time.fixed; penalty.early.fixed; penalty.early.minute; penalty.late.fixed; penalty.late.minute | Penalties for violation of the order time window. We recommend that you leave the default values (fixed = 1000, minute = 17) or empty values (in this case, the default value is used). Change this field only when it's clear how that would affect routing. You may need to change it in the following use cases: late arrivals are not allowed (but it's possible to arrive before the time window starts), or vice versa; time window violation is acceptable, if it helps to optimize resources. Learn more | Must be filled in for correct routing (technically, this field is optional) |
Time limits
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Time of pickup order delivery to the depot | delivery_deadline | The time before which a pickup order without an explicit delivery location must be delivered to any depot. Learn more | No |
Penalties: for violation of the pickup order delivery time to the depot; per minute of violation of the pickup order delivery time to the depot | penalty.delivery_deadline.fixed; penalty.delivery_deadline.minute | Penalties for late delivery of the order to the depot. We recommend that you leave the default values (fixed = 1000, minute = 17) or empty values (in this case, the default value is used). Only edit these fields if it is important for your purpose. Learn more | No |
Time when the order is ready at the depot | depot_ready_time | Time when the order is ready for issue at the depot. Learn more | No |
Order depot pick up deadline | depot_expiring_time | The time before the order must be picked up from the depot. Learn more | No |
Limitation of the time the order can be in the vehicle | transit_time.limit_s transit_time.hard_limit_s | A soft and hard limitation of the time the order can stay in the vehicle. Learn more | No |
Penalties: for the violation of the time the order can be in the vehicle; per minute of violation of the time the order can be in the vehicle | penalty.transit_time.fixed penalty.transit_time.minute | Penalty for the violation of the soft limitation of the time the order can be in the vehicle. Learn more | No |
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Time of pickup order delivery to the depot | delivery_deadline | The time before which a pickup order without an explicit delivery location must be delivered to any depot. Learn more | No |
Penalties: for violation of the pickup order delivery time to the depot; per minute of violation of the pickup order delivery time to the depot | penalty.delivery_deadline.fixed; penalty.delivery_deadline.minute | Penalties for late delivery of the order to the depot. We recommend that you leave the default values (fixed = 1000, minute = 17) or empty values (in this case, the default value is used). Only edit these fields if it is important for your purpose. Learn more | No |
Time when the order is ready at the depot | depot_ready_time | Time when the order is ready for issue at the depot. Learn more | No |
Order depot pick up deadline | depot_expiring_time | The time before the order must be picked up from the depot. Learn more | No |
Limitation of the time the order can be in the vehicle | transit_time.limit_s transit_time.hard_limit_s | A soft and hard limitation of the time the order can stay in the vehicle. Learn more | No |
Penalties: for the violation of the time the order can be in the vehicle; per minute of violation of the time the order can be in the vehicle | penalty.transit_time.fixed penalty.transit_time.minute | Penalty for the violation of the soft limitation of the time the order can be in the vehicle. Learn more | No |
Handling time
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Time for reloading order in a cross-dock, s | crossdock_service_duration_s | Specified for orders delivered via cross docking. Learn more | No |
Time spent on loading the order at the depot | depot_duration_s | For orders with the "delivery" type, this is the time when the order is loaded at the depot. Learn more | No |
Time for parking, s | parking_service_duration_s | Specified if the courier parks the vehicle and then delivers several orders nearby on foot. Learn more | No |
Service time per location, s; service time per order, s | shared_service_duration_s; service_duration_s | The time that the vehicle\courier will spend at the order location (in seconds). Learn more here and here | Must be filled in for correct routing (technically, this field is optional) |
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Time for reloading order in a cross-dock, s | crossdock_service_duration_s | Specified for orders delivered via cross docking. Learn more | No |
Time spent on loading the order at the depot | depot_duration_s | For orders with the "delivery" type, this is the time when the order is loaded at the depot. Learn more | No |
Time for parking, s | parking_service_duration_s | Specified if the courier parks the vehicle and then delivers several orders nearby on foot. Learn more | No |
Service time per location, s; service time per order, s | shared_service_duration_s; service_duration_s | The time that the vehicle\courier will spend at the order location (in seconds). Learn more here and here | Must be filled in for correct routing (technically, this field is optional) |
Combining and splitting orders
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Can be merged into multi-order, TRUE/FALSE | can_be_merged | By default, TRUE (the order can be combined into a multi-order). Learn more here and here | No |
Split | can_be_split | If FALSE (default): The order can only be delivered in its entirety. If TRUE: The order can be delivered in parts. Learn more | No |
Maximum number of parts to split into | max_split_parts | The maximum number of parts that an order can be split into. Learn more | No |
Divider, proportion; divider, kilos; divider, unit; divider, cubic meters | quant; quant.weight_kg; quant.units; quant.volume_cbm | Sets the size of the minimum split part in proportions, kilograms, cargo units, cubic meters. Learn more | No |
Fill the entire vehicle | split_parts_must_fill_whole_vehicle | If TRUE: The part split from the order must fill the entire vehicle. Default value: FALSE. Learn more | No |
Fixed penalty for not delivering part of the order; penalty for not delivering part of the order | penalty.drop.fixed; penalty.drop.scaled | If the order is split into parts, you can set a fixed part of the penalty and a variable one that depends on the size (percentage) of the unassigned part of the order. Learn more | Must be filled in for correct routing (technically, this field is optional) |
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Can be merged into multi-order, TRUE/FALSE | can_be_merged | By default, TRUE (the order can be combined into a multi-order). Learn more here and here | No |
Split | can_be_split | If FALSE (default): The order can only be delivered in its entirety. If TRUE: The order can be delivered in parts. Learn more | No |
Maximum number of parts to split into | max_split_parts | The maximum number of parts that an order can be split into. Learn more | No |
Divider, proportion; divider, kilos; divider, unit; divider, cubic meters | quant; quant.weight_kg; quant.units; quant.volume_cbm | Sets the size of the minimum split part in proportions, kilograms, cargo units, cubic meters. Learn more | No |
Fill the entire vehicle | split_parts_must_fill_whole_vehicle | If TRUE: The part split from the order must fill the entire vehicle. Default value: FALSE. Learn more | No |
Fixed penalty for not delivering part of the order; penalty for not delivering part of the order | penalty.drop.fixed; penalty.drop.scaled | If the order is split into parts, you can set a fixed part of the penalty and a variable one that depends on the size (percentage) of the unassigned part of the order. Learn more | Must be filled in for correct routing (technically, this field is optional) |
Assigning an order to a depot or other locations
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Depot inventory availability | depot_id | Depots that the order can be picked from. You can specify multiple depots for one order, separated by commas. Learn more | No |
Destination (for orders with the pickup type) | delivery_to | Used only for use cases with the "pickup" orders. This field is only filled out for orders with the "pickup" type. In this field, specify the "id" of the associated order with the "delivery" type. The "id" entered in "delivery_to" must be unique for each pickup order. Learn more | No |
Delivery to any point (for orders with the pickup type) | delivery_to_any | Used only for use cases with the "pickup" orders. This field is only filled out for orders with the "pickup" type. In this field, specify the "id" of the associated order with the "drop off" type. Please note that the identifier defined in "delivery_to_any" must be the same for different pickup orders. | No |
Pick up from any of the specified points | pickup_from_any | Specified only for orders with the "delivery" type. It's used in scenarios when cargo for delivery can be picked up from any number of points. Learn more | No |
Mandatory pickup order delivery to the depot in the current route | pickup_must_reach_depot | If this option is enabled, the pickup order must be delivered to the depot in the current route. Learn more | No |
Can be delivered through cross docking | crossdock_mode | Accepts one of the following values: allow (default), deny, mandatory. Learn more | No |
Can be dropped in a cross-dock, TRUE/FALSE | may_drop_in_crossdock | Can only be set for pickup orders. If TRUE (by default), then the order can be dropped in cross docking, and if FALSE, it can only be dropped at a regular depot. Learn more | No |
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Depot inventory availability | depot_id | Depots that the order can be picked from. You can specify multiple depots for one order, separated by commas. Learn more | No |
Destination (for orders with the pickup type) | delivery_to | Used only for use cases with the "pickup" orders. This field is only filled out for orders with the "pickup" type. In this field, specify the "id" of the associated order with the "delivery" type. The "id" entered in "delivery_to" must be unique for each pickup order. Learn more | No |
Delivery to any point (for orders with the pickup type) | delivery_to_any | Used only for use cases with the "pickup" orders. This field is only filled out for orders with the "pickup" type. In this field, specify the "id" of the associated order with the "drop off" type. Please note that the identifier defined in "delivery_to_any" must be the same for different pickup orders. | No |
Pick up from any of the specified points | pickup_from_any | Specified only for orders with the "delivery" type. It's used in scenarios when cargo for delivery can be picked up from any number of points. Learn more | No |
Mandatory pickup order delivery to the depot in the current route | pickup_must_reach_depot | If this option is enabled, the pickup order must be delivered to the depot in the current route. Learn more | No |
Can be delivered through cross docking | crossdock_mode | Accepts one of the following values: allow (default), deny, mandatory. Learn more | No |
Can be dropped in a cross-dock, TRUE/FALSE | may_drop_in_crossdock | Can only be set for pickup orders. If TRUE (by default), then the order can be dropped in cross docking, and if FALSE, it can only be dropped at a regular depot. Learn more | No |
Distribution and compatibility of orders
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Type of compatibility with other orders | load_types | Parameters of compatibility between the orders. You can specify multiple comma-separated values of "load_types" for an order. Load_types can include any string explaining the required order property in a user-friendly way. The "Load_types" parameter is case-sensitive. If you enter "load_types", fill out the incompatible order types on the sheet Incompatible_order_types. You can't assign incompatible order types when you plan a single run for a single vehicle or courier. Learn more | No |
Optional vehicle requirements: tag name; tag weight | optional_tags.N.tag; optional_tags.N.value | Tags for optional requirements. Learn more | No |
Vehicle requirements | required_tags | Order and vehicle compatibility parameters. You can specify multiple comma-separated tags for one order. A tag is any string that identifies the necessary properties of the vehicle/courier clearly for the user. Only the vehicle that has all the tags specified for the order can be selected for such an order. Tags are case-sensitive. Learn more | No |
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Type of compatibility with other orders | load_types | Parameters of compatibility between the orders. You can specify multiple comma-separated values of "load_types" for an order. Load_types can include any string explaining the required order property in a user-friendly way. The "Load_types" parameter is case-sensitive. If you enter "load_types", fill out the incompatible order types on the sheet Incompatible_order_types. You can't assign incompatible order types when you plan a single run for a single vehicle or courier. Learn more | No |
Optional vehicle requirements: tag name; tag weight | optional_tags.N.tag; optional_tags.N.value | Tags for optional requirements. Learn more | No |
Vehicle requirements | required_tags | Order and vehicle compatibility parameters. You can specify multiple comma-separated tags for one order. A tag is any string that identifies the necessary properties of the vehicle/courier clearly for the user. Only the vehicle that has all the tags specified for the order can be selected for such an order. Tags are case-sensitive. Learn more | No |
Other order characteristics
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Location availability for vehicle with trailer | allow_trailers | Default value: FALSE. Learn more | No |
Order of reception and delivery | in_lifo_order | Default value: FALSE. You can use it for pickup/delivery order pairs when the sequence of loading and unloading is important. Learn more | No |
Order priority | sequence_order | The order of completing orders on a route. Learn more | No |
IDs of companies allowed to monitor the order | shared_with_company_ids | Company IDs are comma-separated. Learn more | No |
Proximity algorithms allowed, TRUE/FALSE | use_in_proximity | The possibility to disable route density options for the order. TRUE by default (density options are enabled). Learn more | No |
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Location availability for vehicle with trailer | allow_trailers | Default value: FALSE. Learn more | No |
Order of reception and delivery | in_lifo_order | Default value: FALSE. You can use it for pickup/delivery order pairs when the sequence of loading and unloading is important. Learn more | No |
Order priority | sequence_order | The order of completing orders on a route. Learn more | No |
IDs of companies allowed to monitor the order | shared_with_company_ids | Company IDs are comma-separated. Learn more | No |
Proximity algorithms allowed, TRUE/FALSE | use_in_proximity | The possibility to disable route density options for the order. TRUE by default (density options are enabled). Learn more | No |
Vehicles
This sheet contains information about available resources (vehicles or couriers). You don't need to enter specific vehicles or names. You can enter abstract resources and assign specific vehicles or couriers to the resulting routes separately and outside of the routing service.
Make sure that you correctly specified all the resources that are available at the time of planning:
If these are your own vehicles or couriers, list them taking into account planned unavailability for routes or shifts.
If these are hired vehicles or couriers and you don't know how many of them there are in advance, specify how many are usually involved for the given amount of orders. If the types vary, specify the maximum number of involved vehicles for each type. For example, you use hired vehicles with a 1.5-ton and 3-ton capacity, and each time you may use up to 10 vehicles but don't know the number of vehicles of each type in advance. In this case, you can enter 10 identical rows for 1.5-ton vehicles and 10 identical rows for 3-ton vehicles.
In the Vehicles sheet, fill out the following minimum of fields:
Number of the vehicle or courier.
Capacity of the vehicle or courier.
Working hours.
In the other fields, you can leave the default (or empty) values and it will work for the first run of the routing task.
Below, you can see the fields allowed on the Vehicles sheet.
Basic information about the courier or vehicle
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Courier ID; vehicle name or number | id; ref | We recommend that you specify the vehicle or courier number in "ref" (you can leave "id" blank). The "id" value must be unique for the entire sheet ("ref" may be non-unique). If "id" is blank, then when you upload the data from Excel and send the task for routing, "id" is set to 0, 1, 2… The "id" field is also important for exporting the planning results to Track & Trace. It's used as the courier's username in the mobile app. Learn more | Yes (one of the fields) |
GPS tracker number | imei | The number of the vehicle's GPS tracker. Used only when exporting the planning results in Track & Trace. Learn more | No |
Maximum number of runs | max_runs | The maximum number of runs during all the specified shifts. By default, 1. In the algorithm, a run is a departure from the depot and delivery of orders before returning to the depot (in this case, if the vehicle returns to a point with the coordinates of the depot, that's not counted as a run). Learn more | No |
Courier's phone number | phone | The phone number is used to keep contact with the courier in Track & Trace. Learn more | No |
Transportation method | routing_mode | Filled out only if the vehicles or couriers can use different methods of travel (for example, a car or public transit). If the transportation method is the same for everyone, you don't need to fill out this field. When you start a routing task, you can select the method of travel to be used by everyone. Learn more | No |
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Courier ID; vehicle name or number | id; ref | We recommend that you specify the vehicle or courier number in "ref" (you can leave "id" blank). The "id" value must be unique for the entire sheet ("ref" may be non-unique). If "id" is blank, then when you upload the data from Excel and send the task for routing, "id" is set to 0, 1, 2… The "id" field is also important for exporting the planning results to Track & Trace. It's used as the courier's username in the mobile app. Learn more | Yes (one of the fields) |
GPS tracker number | imei | The number of the vehicle's GPS tracker. Used only when exporting the planning results in Track & Trace. Learn more | No |
Maximum number of runs | max_runs | The maximum number of runs during all the specified shifts. By default, 1. In the algorithm, a run is a departure from the depot and delivery of orders before returning to the depot (in this case, if the vehicle returns to a point with the coordinates of the depot, that's not counted as a run). Learn more | No |
Courier's phone number | phone | The phone number is used to keep contact with the courier in Track & Trace. Learn more | No |
Transportation method | routing_mode | Filled out only if the vehicles or couriers can use different methods of travel (for example, a car or public transit). If the transportation method is the same for everyone, you don't need to fill out this field. When you start a routing task, you can select the method of travel to be used by everyone. Learn more | No |
Courier or vehicle characteristics
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Load capacity, kg; maximum load, weight %; number of available cargo units; maximum load, % of cargo units; size of cargo space for a cargo unit, m (Width, Depth, Height); maximum load, % of capacity | capacity.weight_kg; capacity.limits.weight_perc; capacity.units; capacity.limits.units_perc; capacity.volume.width_m; capacity.volume.depth_m; capacity.volume.height_m; capacity.limits.volume_perc | Parameters of the vehicle/courier capacity. capacity.weight_kg: load capacity in kg; capacity.units: capacity in cargo units. Volume capacity is calculated as the product of capacity.volume.width_m, capacity.volume.depth_m, capacity.volume.height_m. Therefore, you can specify the volume capacity in one of those fields, entering 1 in the other fields. Besides the nominal capacity, we recommend that you use the "limits" parameters to enter possible overloads or planned underloads of the vehicles (especially if you use those values to build routes manually or in other programs). Learn more | Must be filled in for correct routing (technically, this field is optional) |
Custom capacity units: name; number of units | capacity.custom.N.name; capacity.custom.N.size | The vehicle capacity according in custom units of measurement. Learn more | No |
Vehicle specifications: width, height, length, max weight in tons, max weight in kg | specs.width; specs.height; specs.length; specs.max_weight; specs.max_weight_kg | Vehicle characteristics are used to determine whether a vehicle can travel on roads with restrictions. Learn more | No |
Minimum order weight for a vehicle | min_stop_weight | The minimum total weight that a vehicle can deliver to one location. Learn more | No |
Penalty for violating the minimum total weight; penalty for each kg of total weight less than minimum | penalty.min_stop_weight.fixed; penalty.min_stop_weight.kg | The minimum order weight for a vehicle is a soft restriction. The algorithm takes into account the penalty for violating the minimum total weight of all orders at one location (1000 by default) and the penalty for each missing kilogram in the total weight of orders delivered to one location (50 by default). Learn more | No |
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Load capacity, kg; maximum load, weight %; number of available cargo units; maximum load, % of cargo units; size of cargo space for a cargo unit, m (Width, Depth, Height); maximum load, % of capacity | capacity.weight_kg; capacity.limits.weight_perc; capacity.units; capacity.limits.units_perc; capacity.volume.width_m; capacity.volume.depth_m; capacity.volume.height_m; capacity.limits.volume_perc | Parameters of the vehicle/courier capacity. capacity.weight_kg: load capacity in kg; capacity.units: capacity in cargo units. Volume capacity is calculated as the product of capacity.volume.width_m, capacity.volume.depth_m, capacity.volume.height_m. Therefore, you can specify the volume capacity in one of those fields, entering 1 in the other fields. Besides the nominal capacity, we recommend that you use the "limits" parameters to enter possible overloads or planned underloads of the vehicles (especially if you use those values to build routes manually or in other programs). Learn more | Must be filled in for correct routing (technically, this field is optional) |
Custom capacity units: name; number of units | capacity.custom.N.name; capacity.custom.N.size | The vehicle capacity according in custom units of measurement. Learn more | No |
Vehicle specifications: width, height, length, max weight in tons, max weight in kg | specs.width; specs.height; specs.length; specs.max_weight; specs.max_weight_kg | Vehicle characteristics are used to determine whether a vehicle can travel on roads with restrictions. Learn more | No |
Minimum order weight for a vehicle | min_stop_weight | The minimum total weight that a vehicle can deliver to one location. Learn more | No |
Penalty for violating the minimum total weight; penalty for each kg of total weight less than minimum | penalty.min_stop_weight.fixed; penalty.min_stop_weight.kg | The minimum order weight for a vehicle is a soft restriction. The algorithm takes into account the penalty for violating the minimum total weight of all orders at one location (1000 by default) and the penalty for each missing kilogram in the total weight of orders delivered to one location (50 by default). Learn more | No |
Assigning to a depot
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Allowed to visit multiple depots in one route | allow_different_depots_in_route | FALSE is the default value. The courier can only visit the depot where the route starts. If TRUE, the courier can visit multiple depots on the same route. Learn more | No |
Allowed to visit cross-docks | crossdock_mode | Accepts one of the following values: allow (default), deny, mandatory. Learn more | No |
Depots that the courier can visit | depot_id | You can specify multiple depots for one courier, separated by commas. Learn more | No |
Start point of route; visit depot after route start, TRUE/FALSE | start_at; visit_depot_at_start | Parameters of the starting point for vehicles\couriers before the route start. By default, everyone starts from the depot location. You can specify a different starting point and indicate the requirement to return to the depot after departure from the starting location. Learn more | No |
Return to depot at the end of the shift, TRUE/FALSE; end point of route | return_to_depot; finish_at | Parameters for the return of a vehicle or courier after the route is completed (1. to the depot, 2. to an arbitrary point, 3. first to the depot, then to an arbitrary point). By default, "return_to_depot" = true (it means that the vehicle returns to the depot). If you leave the field empty, the default value is used. Learn more | No |
Depots to start from | starting_depot_id | Depots where the courier can start the route. You can specify multiple depots for one courier, separated by commas. Learn more | No |
Depots for additional loading | middle_depot_id | Depots that a courier can visit while traveling along the route to reload delivery order or unload pickup orders. You can specify multiple depots for one courier, separated by commas. Learn more. | No |
Maximum number of depots for additional loading in one route | max_middle_depots | The maximum number of intermediate depots that a courier can visit while on the route. Learn more | No |
Depots to end the route at | ending_depot_id | Depots where the courier can end the route. You can specify multiple depots for one courier, separated by commas. Learn more | No |
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Allowed to visit multiple depots in one route | allow_different_depots_in_route | FALSE is the default value. The courier can only visit the depot where the route starts. If TRUE, the courier can visit multiple depots on the same route. Learn more | No |
Allowed to visit cross-docks | crossdock_mode | Accepts one of the following values: allow (default), deny, mandatory. Learn more | No |
Depots that the courier can visit | depot_id | You can specify multiple depots for one courier, separated by commas. Learn more | No |
Start point of route; visit depot after route start, TRUE/FALSE | start_at; visit_depot_at_start | Parameters of the starting point for vehicles\couriers before the route start. By default, everyone starts from the depot location. You can specify a different starting point and indicate the requirement to return to the depot after departure from the starting location. Learn more | No |
Return to depot at the end of the shift, TRUE/FALSE; end point of route | return_to_depot; finish_at | Parameters for the return of a vehicle or courier after the route is completed (1. to the depot, 2. to an arbitrary point, 3. first to the depot, then to an arbitrary point). By default, "return_to_depot" = true (it means that the vehicle returns to the depot). If you leave the field empty, the default value is used. Learn more | No |
Depots to start from | starting_depot_id | Depots where the courier can start the route. You can specify multiple depots for one courier, separated by commas. Learn more | No |
Depots for additional loading | middle_depot_id | Depots that a courier can visit while traveling along the route to reload delivery order or unload pickup orders. You can specify multiple depots for one courier, separated by commas. Learn more. | No |
Maximum number of depots for additional loading in one route | max_middle_depots | The maximum number of intermediate depots that a courier can visit while on the route. Learn more | No |
Depots to end the route at | ending_depot_id | Depots where the courier can end the route. You can specify multiple depots for one courier, separated by commas. Learn more | No |
Time limits
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Loading time, depending on the vehicle, s | depot_extra_service_duration_s | The time needed for loading in addition to the depot's general handling time. Learn more | No |
Time of the first order visited | first_visited_location_started_at | Optionally, you can specify the start time for the first order in the "first_visited_location_started_at" field. Use it in case of additional planning and when you want to lock part of the route (or the whole route) in a particular sequence. | No |
Deliver as soon as possible: need to start early; penalty for the average time of arrival after the time window | penalty.arrival_after_start.as_soon_as_possible; penalty.arrival_after_start.average_h | The fields are used together and specify the need to deliver all orders as early as possible. Learn more | No |
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Loading time, depending on the vehicle, s | depot_extra_service_duration_s | The time needed for loading in addition to the depot's general handling time. Learn more | No |
Time of the first order visited | first_visited_location_started_at | Optionally, you can specify the start time for the first order in the "first_visited_location_started_at" field. Use it in case of additional planning and when you want to lock part of the route (or the whole route) in a particular sequence. | No |
Deliver as soon as possible: need to start early; penalty for the average time of arrival after the time window | penalty.arrival_after_start.as_soon_as_possible; penalty.arrival_after_start.average_h | The fields are used together and specify the need to deliver all orders as early as possible. Learn more | No |
Distribution by zone and compatibility
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Vehicle properties; incompatible vehicle properties | tags, excluded_tags | Parameters for order and vehicle compatibility. For a single vehicle, you can specify multiple tags, the tags are separated by commas. A tag is any string that identifies the necessary properties of the vehicle/courier clearly for the user. Only the vehicle having all the tags specified for the order can be selected for the order. The tags are case-sensitive. Use "excluded_tags" when you have too many vehicles or tags and it's easier to use the "opt-out" method (that is, to specify the properties that the vehicles don't have). Learn more | No |
Allowed geofences | allowed_zones | Geofences where the vehicle/courier can complete orders. Learn more | No |
Prohibited geofences | forbidden_zones | Geofences where the vehicle/courier can't complete orders. Learn more | No |
Optional geofences | optional_zones.N.zone; optional_zones.N.value | Geofences that carry bonuses or penalties for vehicles/couriers. Learn more | No |
Incompatible geofences | incompatible_zones | Geofences that can't be in the same courier run. Learn more | No |
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Vehicle properties; incompatible vehicle properties | tags, excluded_tags | Parameters for order and vehicle compatibility. For a single vehicle, you can specify multiple tags, the tags are separated by commas. A tag is any string that identifies the necessary properties of the vehicle/courier clearly for the user. Only the vehicle having all the tags specified for the order can be selected for the order. The tags are case-sensitive. Use "excluded_tags" when you have too many vehicles or tags and it's easier to use the "opt-out" method (that is, to specify the properties that the vehicles don't have). Learn more | No |
Allowed geofences | allowed_zones | Geofences where the vehicle/courier can complete orders. Learn more | No |
Prohibited geofences | forbidden_zones | Geofences where the vehicle/courier can't complete orders. Learn more | No |
Optional geofences | optional_zones.N.zone; optional_zones.N.value | Geofences that carry bonuses or penalties for vehicles/couriers. Learn more | No |
Incompatible geofences | incompatible_zones | Geofences that can't be in the same courier run. Learn more | No |
Cost and payouts
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Cost of using a vehicle: per km; per location; per hour of work; for the fact of using a vehicle; per ton-kilometre; per run | cost.km; cost.location; cost.hour; cost.fixed; cost.tonne_km; cost.run | The cost of using the vehicle or courier for the algorithm (not a rate, but a reference point for the algorithm to select a particular routing option). The costs "cost.km" and "cost.hour" must not be equal to 0. If you don't know what values to enter in those fields, it's better to leave the default values (cost.fixed = 3000, cost.hour = 100, cost.km=8) or leave them empty (in this case, the default values are used). Learn more | Yes |
Formula for calculating the cost of using a vehicle | cost or cost.route, cost.shift, cost.run | A mathematical expression for calculating the cost of a route for the company. It is set for the route as a whole or separately for the route, shift, and run. Learn more | No |
Formula for calculating the courier's payout | payout or payout.route, payout.shift, payout.run | A mathematical expression for calculating the amount to be paid to the courier for the completed route. It is set for the route as a whole or separately for the route, shift, and run. Learn more | No |
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Cost of using a vehicle: per km; per location; per hour of work; for the fact of using a vehicle; per ton-kilometre; per run | cost.km; cost.location; cost.hour; cost.fixed; cost.tonne_km; cost.run | The cost of using the vehicle or courier for the algorithm (not a rate, but a reference point for the algorithm to select a particular routing option). The costs "cost.km" and "cost.hour" must not be equal to 0. If you don't know what values to enter in those fields, it's better to leave the default values (cost.fixed = 3000, cost.hour = 100, cost.km=8) or leave them empty (in this case, the default values are used). Learn more | Yes |
Formula for calculating the cost of using a vehicle | cost or cost.route, cost.shift, cost.run | A mathematical expression for calculating the cost of a route for the company. It is set for the route as a whole or separately for the route, shift, and run. Learn more | No |
Formula for calculating the courier's payout | payout or payout.route, payout.shift, payout.run | A mathematical expression for calculating the amount to be paid to the courier for the completed route. It is set for the route as a whole or separately for the route, shift, and run. Learn more | No |
Restrictions for walking couriers or parts of the route
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Maximum number of units that the walking courier can carry | walking_courier.capacity.units | Used in delivery scenarios where the vehicle is parked before the walking part of the route. Learn more | No |
Cost of walking delivery | walking_courier.cost.km; walking_courier.cost.hour | Used in delivery scenarios where the vehicle is parked before the walking part of the route. Learn more | No |
Maximum distance between two points of walking parts of the route, m; penalty for violating the restriction | walking_courier.restrictions.max_walking_edge_distance_m.value; walking_courier.restrictions.max_walking_edge_distance_m.penalty | Used in delivery scenarios where the vehicle is parked before the walking part of the route. Learn more | No |
Maximum walking distance in a parking session, m; penalty for violating the restriction | walking_courier.restrictions.max_parking_walking_distance_m.value; walking_courier.restrictions.max_parking_walking_distance_m.penalty | Used in delivery scenarios where the vehicle is parked before the walking part of the route. Learn more | No |
Maximum duration of a parking session, s; penalty for violating the restriction | walking_courier.restrictions.max_parking_duration_s.value; walking_courier.restrictions.max_parking_duration_s.penalty | Used in delivery scenarios where the vehicle is parked before the walking part of the route. Learn more | No |
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Maximum number of units that the walking courier can carry | walking_courier.capacity.units | Used in delivery scenarios where the vehicle is parked before the walking part of the route. Learn more | No |
Cost of walking delivery | walking_courier.cost.km; walking_courier.cost.hour | Used in delivery scenarios where the vehicle is parked before the walking part of the route. Learn more | No |
Maximum distance between two points of walking parts of the route, m; penalty for violating the restriction | walking_courier.restrictions.max_walking_edge_distance_m.value; walking_courier.restrictions.max_walking_edge_distance_m.penalty | Used in delivery scenarios where the vehicle is parked before the walking part of the route. Learn more | No |
Maximum walking distance in a parking session, m; penalty for violating the restriction | walking_courier.restrictions.max_parking_walking_distance_m.value; walking_courier.restrictions.max_parking_walking_distance_m.penalty | Used in delivery scenarios where the vehicle is parked before the walking part of the route. Learn more | No |
Maximum duration of a parking session, s; penalty for violating the restriction | walking_courier.restrictions.max_parking_duration_s.value; walking_courier.restrictions.max_parking_duration_s.penalty | Used in delivery scenarios where the vehicle is parked before the walking part of the route. Learn more | No |
Other characteristics of couriers and vehicles
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Need to leave the planned route unchanged | fixed_planned_route | The need to leave the route from planned_route unchanged. Default value: FALSE. Learn more | No |
Service time coefficient | service_duration_multiplier; shared_service_duration_multiplier | The coefficient of acceleration/deceleration of the vehicles/couriers relative to the service time. We only recommend this option for more experienced users. Learn more | No |
Speed coefficient | travel_time_multiplier | The coefficient of acceleration/deceleration of the vehicle/courier relative to the speed calculated from statistics. We only recommend this option for more experienced users. Learn more | No |
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Need to leave the planned route unchanged | fixed_planned_route | The need to leave the route from planned_route unchanged. Default value: FALSE. Learn more | No |
Service time coefficient | service_duration_multiplier; shared_service_duration_multiplier | The coefficient of acceleration/deceleration of the vehicles/couriers relative to the service time. We only recommend this option for more experienced users. Learn more | No |
Speed coefficient | travel_time_multiplier | The coefficient of acceleration/deceleration of the vehicle/courier relative to the speed calculated from statistics. We only recommend this option for more experienced users. Learn more | No |
Vehicle shifts and breaks
Multiple shifts can be specified for one vehicle/courier. The values are filled out one per row as follows: first, the field group with the shifts.0
prefix, then shifts.1
, shifts.2
, and so on. This number serves as the shift identifier for the route planning service.
At least one shift must be defined.
You can specify multiple breaks for one vehicle/courier. Values are entered one per row as follows: first, the field group with the rest_schedule.breaks.0
prefix, then rest_schedule.breaks.1
, rest_schedule.breaks.2
, and so on.
Shifts
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Start and end time of the shift; hard time window of the shift | shifts.N.time_window; shifts.N.hard_time_window | Driver's availability time for routing. If the regular working hours for vehicles/couriers are, for example, 9:00 to 17:00 (with some overtime on occasion), it's better to specify the available working hours right away, for example, 9:00 to 17:30). When setting the time window for the shift, it's critical to keep account of the time at the beginning of the route and the time at the end of the route, because the algorithm considers this time to be included into the vehicle or courier's working hours. Likewise, if the vehicle/courier returns to the depot, this time is also taken into account in the working hours of the vehicle/courier (and should be reflected in the shift's time window). Learn more Please note: the | Yes |
Hard time window, TRUE/FALSE | shifts.N.hard_window | TRUE: The shift's time window can't be violated under any circumstances. FALSE: The shift's time window can be violated (if this helps to allocate resources better). You may leave this field empty: in this case, the time window is soft (it may be violated). Learn more Please note: the | No |
Maximum number of runs per shift | shifts.N.max_runs | The maximum number of runs that can be performed per shift. Learn more | No |
Time between shifts, s | shifts.N.service_duration_s | You should specify this time only when a vehicle has several consecutive shifts, even with overlapping time windows (for example, Shift 1: 9:00 to 14:00, Shift 2: 13:00 to 18:00. It means that Shift 1 may end before 14:00, but never later than that. Likewise, Shift 2 may not begin before 13:00, but may begin later). If you need to use both shifts for routing, this parameter is added between those two shifts. Learn more | No |
Penalties: per minute of shift window violation; for the violation of the shift window; per minute of early shift start; for early shift start; per minute of late shift end; for late shift end | shifts.N.penalty.out_of_time. minute; shifts.N.penalty. out_of_time.fixed; shifts.N.penalty.early.minute; shifts.N.penalty.early.fixed; shifts.N.penalty.late.minute; shifts.N.penalty.late.fixed | Penalties for violation of the order time window. We recommend that you leave the default values (fixed = 1000, minute = 17) or empty values (in this case, the default value is used). Change this field only when it's clear how that would affect routing. Changes may be needed in the following scenarios: early start of the shift is not allowed (but late end of the shift is possible), or vice versa. Violation of the shift time window is acceptable if this results in better use of resources. A hard shift window and the Maximum shift duration. Learn more | No |
Maximum shift duration, s: soft restriction; hard restriction | shifts.N.max_duration_s; shifts.N.hard_max_duration_s | We recommend leaving it blank when you first start routing. Learn more | No |
Minimum number of stops per shift; penalty per each stop missing under the minimum number; penalty for not reaching the minimum number of stops | shifts.N.minimal_stops; shifts.N.penalty. stop_lack.per_stop; shifts.N.penalty.stop_lack.fixed | We recommend leaving it blank when you first start routing. You can make it mandatory for your own vehicles later. Learn more | No |
Maximum number of stops per shift; penalty per each stop in excess of the maximum number; penalty for exceeding the maximum number of stops | shifts.N.maximal_stops; shifts.N.penalty.stop_excess. per_stop; shifts.N.penalty. stop_excess.fixed | We recommend leaving it blank when you first start routing. You can later use it to limit the number of points on the route: for heavy vehicles (if you can't limit it by other parameters, for example, by service time ). You can also use it to set empirical limits on the number of points on the route (for example, if it's proven that the courier can't complete a route of more than a certain number of points without violations because of contingencies). Learn more | No |
Maximum mileage per shift, km; penalty for the fact that mileage exceeds maximum; penalty for each km of mileage in excess of maximum | shifts.N.max_mileage_km, shifts.N.penalty. max_mileage.fixed; shifts.N.penalty. max_mileage.km | Leave it blank when when you first start routing. You can use it to limit the mileage of vehicles or couriers per shift later. Learn more | No |
Balanced group ID | shifts.N.balanced_group_id | We recommend leaving it blank when you first start routing.If you need to get more uniform routes, you can fill out the balanced group s on the Options sheet and specify the ID of the balanced group in this field. Learn more | No |
Visited orders; time of the first order visited | shifts.N.visited_locations | In the "shifts.N.visited_locations" field, you can list the "id" of the orders that have already been assigned to this vehicle. The sequence is critical in this list. | No |
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Start and end time of the shift; hard time window of the shift | shifts.N.time_window; shifts.N.hard_time_window | Driver's availability time for routing. If the regular working hours for vehicles/couriers are, for example, 9:00 to 17:00 (with some overtime on occasion), it's better to specify the available working hours right away, for example, 9:00 to 17:30). When setting the time window for the shift, it's critical to keep account of the time at the beginning of the route and the time at the end of the route, because the algorithm considers this time to be included into the vehicle or courier's working hours. Likewise, if the vehicle/courier returns to the depot, this time is also taken into account in the working hours of the vehicle/courier (and should be reflected in the shift's time window). Learn more Please note: the | Yes |
Hard time window, TRUE/FALSE | shifts.N.hard_window | TRUE: The shift's time window can't be violated under any circumstances. FALSE: The shift's time window can be violated (if this helps to allocate resources better). You may leave this field empty: in this case, the time window is soft (it may be violated). Learn more Please note: the | No |
Maximum number of runs per shift | shifts.N.max_runs | The maximum number of runs that can be performed per shift. Learn more | No |
Time between shifts, s | shifts.N.service_duration_s | You should specify this time only when a vehicle has several consecutive shifts, even with overlapping time windows (for example, Shift 1: 9:00 to 14:00, Shift 2: 13:00 to 18:00. It means that Shift 1 may end before 14:00, but never later than that. Likewise, Shift 2 may not begin before 13:00, but may begin later). If you need to use both shifts for routing, this parameter is added between those two shifts. Learn more | No |
Penalties: per minute of shift window violation; for the violation of the shift window; per minute of early shift start; for early shift start; per minute of late shift end; for late shift end | shifts.N.penalty.out_of_time. minute; shifts.N.penalty. out_of_time.fixed; shifts.N.penalty.early.minute; shifts.N.penalty.early.fixed; shifts.N.penalty.late.minute; shifts.N.penalty.late.fixed | Penalties for violation of the order time window. We recommend that you leave the default values (fixed = 1000, minute = 17) or empty values (in this case, the default value is used). Change this field only when it's clear how that would affect routing. Changes may be needed in the following scenarios: early start of the shift is not allowed (but late end of the shift is possible), or vice versa. Violation of the shift time window is acceptable if this results in better use of resources. A hard shift window and the Maximum shift duration. Learn more | No |
Maximum shift duration, s: soft restriction; hard restriction | shifts.N.max_duration_s; shifts.N.hard_max_duration_s | We recommend leaving it blank when you first start routing. Learn more | No |
Minimum number of stops per shift; penalty per each stop missing under the minimum number; penalty for not reaching the minimum number of stops | shifts.N.minimal_stops; shifts.N.penalty. stop_lack.per_stop; shifts.N.penalty.stop_lack.fixed | We recommend leaving it blank when you first start routing. You can make it mandatory for your own vehicles later. Learn more | No |
Maximum number of stops per shift; penalty per each stop in excess of the maximum number; penalty for exceeding the maximum number of stops | shifts.N.maximal_stops; shifts.N.penalty.stop_excess. per_stop; shifts.N.penalty. stop_excess.fixed | We recommend leaving it blank when you first start routing. You can later use it to limit the number of points on the route: for heavy vehicles (if you can't limit it by other parameters, for example, by service time ). You can also use it to set empirical limits on the number of points on the route (for example, if it's proven that the courier can't complete a route of more than a certain number of points without violations because of contingencies). Learn more | No |
Maximum mileage per shift, km; penalty for the fact that mileage exceeds maximum; penalty for each km of mileage in excess of maximum | shifts.N.max_mileage_km, shifts.N.penalty. max_mileage.fixed; shifts.N.penalty. max_mileage.km | Leave it blank when when you first start routing. You can use it to limit the mileage of vehicles or couriers per shift later. Learn more | No |
Balanced group ID | shifts.N.balanced_group_id | We recommend leaving it blank when you first start routing.If you need to get more uniform routes, you can fill out the balanced group s on the Options sheet and specify the ID of the balanced group in this field. Learn more | No |
Visited orders; time of the first order visited | shifts.N.visited_locations | In the "shifts.N.visited_locations" field, you can list the "id" of the orders that have already been assigned to this vehicle. The sequence is critical in this list. | No |
Breaks
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Duration of the break, s | rest_schedule.breaks.N. rest_duration_s | Duration of the break (in seconds). Learn more | No |
Penalties: for an early break start, per minute of an early break start, for a late break start, per minute of a late break start | rest_schedule.breaks.N. penalty.early.fixed; rest_schedule.breaks.N.penalty. early.minute; rest_schedule.breaks.N.penalty. late.fixed; rest_schedule.breaks.N.penalty. late.minute | The break is a soft restriction: in some cases, it may start earlier or later than the range defined in the "work_time_range_till_rest" field. The algorithm takes penalties into account: "early", if a break started before the range; "late", if the break started later than the range. The higher are the penalties, the more severe is the restriction violation. We recommend that you use the default values (fixed = 1000, minute = 17) or empty values (then the default values are used). Learn more | No |
Working hours from the start of the route | rest_schedule.breaks.N.work_time_range_from_start | Minimum and maximum working hours from the start of the route. It takes into account the travel time, waiting time, and handling time at order locations and at the depots. Set as a time range in the relative format. Learn more | No |
Working hours from the last break | rest_schedule.breaks.N.work_time_range_till_rest | The minimum and maximum working hours from the last break (or from the start of the route if it's the first break). It takes into account the travel time, waiting time, and handling time at order locations and at the depots. Set as a time range in the relative format. Learn more | No |
Driving time and waiting time from the start of the route | rest_schedule.breaks.N.travel_time_range | The minimum and maximum travel time and waiting time from the start of the route. Handling time is not taken into account. Set as a time range in the relative format. Learn more | No |
Driving time and waiting time from the previous order | rest_schedule.breaks.N.continuous_travel_time_range | The minimum and maximum travel time and waiting time from the completion of the previous order. Handling time is not taken into account. Set as a time range in the relative format. Learn more | No |
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Duration of the break, s | rest_schedule.breaks.N. rest_duration_s | Duration of the break (in seconds). Learn more | No |
Penalties: for an early break start, per minute of an early break start, for a late break start, per minute of a late break start | rest_schedule.breaks.N. penalty.early.fixed; rest_schedule.breaks.N.penalty. early.minute; rest_schedule.breaks.N.penalty. late.fixed; rest_schedule.breaks.N.penalty. late.minute | The break is a soft restriction: in some cases, it may start earlier or later than the range defined in the "work_time_range_till_rest" field. The algorithm takes penalties into account: "early", if a break started before the range; "late", if the break started later than the range. The higher are the penalties, the more severe is the restriction violation. We recommend that you use the default values (fixed = 1000, minute = 17) or empty values (then the default values are used). Learn more | No |
Working hours from the start of the route | rest_schedule.breaks.N.work_time_range_from_start | Minimum and maximum working hours from the start of the route. It takes into account the travel time, waiting time, and handling time at order locations and at the depots. Set as a time range in the relative format. Learn more | No |
Working hours from the last break | rest_schedule.breaks.N.work_time_range_till_rest | The minimum and maximum working hours from the last break (or from the start of the route if it's the first break). It takes into account the travel time, waiting time, and handling time at order locations and at the depots. Set as a time range in the relative format. Learn more | No |
Driving time and waiting time from the start of the route | rest_schedule.breaks.N.travel_time_range | The minimum and maximum travel time and waiting time from the start of the route. Handling time is not taken into account. Set as a time range in the relative format. Learn more | No |
Driving time and waiting time from the previous order | rest_schedule.breaks.N.continuous_travel_time_range | The minimum and maximum travel time and waiting time from the completion of the previous order. Handling time is not taken into account. Set as a time range in the relative format. Learn more | No |
Depot, Depots
The Depot sheet contains information about the depot that the shipment is going to be made from. Only one row is filled out on this sheet.
If you use multiple depots, you need the Depots sheet, where any number of depots can be specified.
You have to fill out at least one depot row. If the vehicles or couriers don't start from the depot and don't return to the depot at the end of the route (there's no location that they could be assigned to), you can specify the coordinates of any point as a depot, for example, the coordinates of the office or city center.
Depot and Depots sheets are mutually exclusive, so you can use only one of them.
On the Depot/Depots sheet, you only have to fill out the following fields:
Depot name (you can just enter “Depot”).
Depot coordinates or address.
Depot working hours (you can set the maximum time window: 00:00–23:59 for the current planning day or 00:00–1.23:59 for the current and next planning days).
In the other fields, you can leave the default (or empty) values and it will work for the first run of the routing task.
The table below describes the acceptable fields on the Depot/Depots sheet.
Basic depot information
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Depot number | id | The depot "id" must not repeat any order "id" (it means that the order "id" and depot "id" must be unique). If "id" is blank, then when you upload the data from Excel and send the task for routing, "id" is set to 0. Learn more | Yes |
Depot name; depot title; depot description | ref; title; description | The depot's numeric or string ID to be displayed in the Planning interface; depot name; depot description. Learn more | No |
Latitude; longitude | point.lat; point.lon | Coordinates of the depot point: latitude (point.lat), longitude (point.lon). Learn more | No, if you specify the depot address (when you upload data from the interface, you can geocode the address) |
Depot address | address | Address for geocoding. Learn more | No (but if the depot coordinates aren't entered, you must enter the address) |
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Depot number | id | The depot "id" must not repeat any order "id" (it means that the order "id" and depot "id" must be unique). If "id" is blank, then when you upload the data from Excel and send the task for routing, "id" is set to 0. Learn more | Yes |
Depot name; depot title; depot description | ref; title; description | The depot's numeric or string ID to be displayed in the Planning interface; depot name; depot description. Learn more | No |
Latitude; longitude | point.lat; point.lon | Coordinates of the depot point: latitude (point.lat), longitude (point.lon). Learn more | No, if you specify the depot address (when you upload data from the interface, you can geocode the address) |
Depot address | address | Address for geocoding. Learn more | No (but if the depot coordinates aren't entered, you must enter the address) |
Depot time windows
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Depot working hours | time_window | If you don't have any special requirements for the time when vehicles should return to the depot or depot throughput, we recommend that you specify the broadest possible time window for the depot (for example, 00:00–23:59 for single-day planning or 00:00–1.23:59 for 2-day planning). Learn more | Yes (if time_windows aren't specified) |
Multiple time windows | time_windows.N.time_window | Use if the window has “breaks” during the day or the windows are different on different days. Can't be used together with time_window. Learn more | Yes (unless time_window is specified) |
Hard time window interval | hard_time_window | If the main depot window is soft, you can set a hard time window around it. Learn more Please note: the | No |
Hard time window, TRUE/FALSE | hard_window | TRUE: The depot's time window can't be violated under any circumstances. FALSE: The depot's time window may be violated (if this helps to allocate resources better). You may leave this field empty: in this case, the time window is soft (it may be violated). Learn more Please note: the | No |
Time windows (soft and hard) for loading, additional loading, or unloading orders at the depot | time_windows_loading.time_window; time_windows_loading.hard_time_window; time_windows_refilling.time_window; time_windows_refilling.hard_time_window; time_windows_unloading.time_window; time_windows_unloading.hard_time_window | One window or an array of windows can be set for each window type. If a window of some type is not set, the general depot time window is used for the corresponding operation. Learn more | No |
Time before the start of each run until the order is ready at the depot, s | preliminary_service_duration_s | Specified if it's necessary to perform preliminary operations at the depot before the order is ready. Learn more | No |
Penalties for time window violations: per minute of violation of depot's time window; for the violation of depot's time window; for the violation of the depot's time window (early arrival); per minute of violation of the depot's time window (early arrival); for the violation of the depot's time window (late arrival); per minute of violation of the depot's time window (late arrival) | penalty.out_of_time.minute; penalty.out_of_time.fixed; penalty.early.fixed; penalty.early.minute; penalty.late.fixed; penalty.late.minute | Penalties for violation of the order time window. Leave the default values (fixed = 1000, minute = 17) or empty values (in this case, the default value is used). Only edit these fields if it is important for your purpose. Learn more | No |
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Depot working hours | time_window | If you don't have any special requirements for the time when vehicles should return to the depot or depot throughput, we recommend that you specify the broadest possible time window for the depot (for example, 00:00–23:59 for single-day planning or 00:00–1.23:59 for 2-day planning). Learn more | Yes (if time_windows aren't specified) |
Multiple time windows | time_windows.N.time_window | Use if the window has “breaks” during the day or the windows are different on different days. Can't be used together with time_window. Learn more | Yes (unless time_window is specified) |
Hard time window interval | hard_time_window | If the main depot window is soft, you can set a hard time window around it. Learn more Please note: the | No |
Hard time window, TRUE/FALSE | hard_window | TRUE: The depot's time window can't be violated under any circumstances. FALSE: The depot's time window may be violated (if this helps to allocate resources better). You may leave this field empty: in this case, the time window is soft (it may be violated). Learn more Please note: the | No |
Time windows (soft and hard) for loading, additional loading, or unloading orders at the depot | time_windows_loading.time_window; time_windows_loading.hard_time_window; time_windows_refilling.time_window; time_windows_refilling.hard_time_window; time_windows_unloading.time_window; time_windows_unloading.hard_time_window | One window or an array of windows can be set for each window type. If a window of some type is not set, the general depot time window is used for the corresponding operation. Learn more | No |
Time before the start of each run until the order is ready at the depot, s | preliminary_service_duration_s | Specified if it's necessary to perform preliminary operations at the depot before the order is ready. Learn more | No |
Penalties for time window violations: per minute of violation of depot's time window; for the violation of depot's time window; for the violation of the depot's time window (early arrival); per minute of violation of the depot's time window (early arrival); for the violation of the depot's time window (late arrival); per minute of violation of the depot's time window (late arrival) | penalty.out_of_time.minute; penalty.out_of_time.fixed; penalty.early.fixed; penalty.early.minute; penalty.late.fixed; penalty.late.minute | Penalties for violation of the order time window. Leave the default values (fixed = 1000, minute = 17) or empty values (in this case, the default value is used). Only edit these fields if it is important for your purpose. Learn more | No |
Handling time at depot
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Handling time at the start of the run, s; handling time at the end of the run, s | service_duration_s; finish_service_duration_s | When you fill it out, you have to take into account the time window of the shift. For example, if you only need to fill out the time that should only be added between the runs, you can do the following: 1. Use only service_duration_s. 2. Bring forward the start of the first shift by service_duration_s. For example: if drivers work from 9:00 to 17:00, allow for 30 minutes between the runs for loading. At the beginning of the route the vehicles are already loaded, and the drivers depart at 9:00. Hence, schedule a shift from 8:30 to 17:00 and set service_duration_s to 1800 (then the algorithm will assume that the working hours begin at 8:30, half an hour is allowed for loading, and departure is possible at 9:00. In the future, this half-hour will be added between runs). Learn more | No |
Time interval from unloading order at cross-dock till loading for next route, s | crossdock_safety_waiting_duration_s | Time buffer for cross docking: The minimum amount of time that must pass after unloading the order at the cross-dock and before this order can be picked up for delivery to the client. Learn more | No |
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Handling time at the start of the run, s; handling time at the end of the run, s | service_duration_s; finish_service_duration_s | When you fill it out, you have to take into account the time window of the shift. For example, if you only need to fill out the time that should only be added between the runs, you can do the following: 1. Use only service_duration_s. 2. Bring forward the start of the first shift by service_duration_s. For example: if drivers work from 9:00 to 17:00, allow for 30 minutes between the runs for loading. At the beginning of the route the vehicles are already loaded, and the drivers depart at 9:00. Hence, schedule a shift from 8:30 to 17:00 and set service_duration_s to 1800 (then the algorithm will assume that the working hours begin at 8:30, half an hour is allowed for loading, and departure is possible at 9:00. In the future, this half-hour will be added between runs). Learn more | No |
Time interval from unloading order at cross-dock till loading for next route, s | crossdock_safety_waiting_duration_s | Time buffer for cross docking: The minimum amount of time that must pass after unloading the order at the cross-dock and before this order can be picked up for delivery to the client. Learn more | No |
Depot throughput capacity
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Throughput, kg/hour; throughput, cargo units/hour | throughput.kg_per_hour; throughput.units_per_hour | We recommend leaving these fields blank for your first routing runs. Before using the throughput parameters, we recommend using flexible_start_time. In practice, it has the same effect as distributing the vehicle start time over time. Learn more | No |
Throughput, vehicles/hour | throughput.vehicle_count or throughput.vehicle_count.N.value; throughput.vehicle_count.N.time_window | This lets you take into account the number of available loading docks at a depot for loading or unloading (throughput.vehicle_count). If the number of available docks depends on the time, you can set a different value for the throughput.vehicle_count.N.value parameter for throughput.vehicle_count.N.time_window time windows. Learn more | No |
Penalties for the throughput violation: fixed penalty; per kilogram of excess throughput; for each cargo unit in excess of throughput; for each vehicle in excess of throughput | penalty.throughput.fixed; penalty.throughput.kg; penalty.throughput.unit; penalty.throughput.vehicle | We recommend leaving these fields blank for your first routing runs. Next, you can use the default values (penalty.throughput.fixed = 1000, penalty.throughput.kg = 50, penalty.throughput. unit = 100, penalty.throughput.vehicle = 100000) and adjust them based on the results. Learn more | No |
Staging throughput capacity, kg/hour | package_throughput.kg_per_hour or package_throughput.kg_per_hour.N.value; package_throughput.kg_per_hour.N.time_window | Sets the maximum weight that can be staged at the depot in one hour. If the maximum weight depends on the time, you can set different values for time windows. Learn more | No |
Staging throughput capacity, cargo units/hour | package_throughput.unit_per_hour or package_throughput.unit_per_hour.N.value; package_throughput.unit_per_hour.N.time_window | Sets the maximum number of cargo units that can be staged at the depot in one hour. You can set different values for time windows. Learn more | No |
Fixed penalty for staging throughput capacity violation; penalty per kilogram over staging throughput capacity; penalty for every cargo unit over the staging throughput capacity | penalty.package_throughput.fixed; penalty.package_throughput.kg; penalty.package_throughput.unit | We recommend leaving these fields blank for your first routing runs. Next, you can use the default values (penalty.package_throughput.fixed = 1000, penalty.package_throughput.kg = 50, penalty.package_throughput.unit = 100) and adjust them based on the results. | No |
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Throughput, kg/hour; throughput, cargo units/hour | throughput.kg_per_hour; throughput.units_per_hour | We recommend leaving these fields blank for your first routing runs. Before using the throughput parameters, we recommend using flexible_start_time. In practice, it has the same effect as distributing the vehicle start time over time. Learn more | No |
Throughput, vehicles/hour | throughput.vehicle_count or throughput.vehicle_count.N.value; throughput.vehicle_count.N.time_window | This lets you take into account the number of available loading docks at a depot for loading or unloading (throughput.vehicle_count). If the number of available docks depends on the time, you can set a different value for the throughput.vehicle_count.N.value parameter for throughput.vehicle_count.N.time_window time windows. Learn more | No |
Penalties for the throughput violation: fixed penalty; per kilogram of excess throughput; for each cargo unit in excess of throughput; for each vehicle in excess of throughput | penalty.throughput.fixed; penalty.throughput.kg; penalty.throughput.unit; penalty.throughput.vehicle | We recommend leaving these fields blank for your first routing runs. Next, you can use the default values (penalty.throughput.fixed = 1000, penalty.throughput.kg = 50, penalty.throughput. unit = 100, penalty.throughput.vehicle = 100000) and adjust them based on the results. Learn more | No |
Staging throughput capacity, kg/hour | package_throughput.kg_per_hour or package_throughput.kg_per_hour.N.value; package_throughput.kg_per_hour.N.time_window | Sets the maximum weight that can be staged at the depot in one hour. If the maximum weight depends on the time, you can set different values for time windows. Learn more | No |
Staging throughput capacity, cargo units/hour | package_throughput.unit_per_hour or package_throughput.unit_per_hour.N.value; package_throughput.unit_per_hour.N.time_window | Sets the maximum number of cargo units that can be staged at the depot in one hour. You can set different values for time windows. Learn more | No |
Fixed penalty for staging throughput capacity violation; penalty per kilogram over staging throughput capacity; penalty for every cargo unit over the staging throughput capacity | penalty.package_throughput.fixed; penalty.package_throughput.kg; penalty.package_throughput.unit | We recommend leaving these fields blank for your first routing runs. Next, you can use the default values (penalty.package_throughput.fixed = 1000, penalty.package_throughput.kg = 50, penalty.package_throughput.unit = 100) and adjust them based on the results. | No |
Other depot settings
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Flexible start time, TRUE/FALSE | flexible_start_time | Use this parameter if you need to get the required start time for the vehicle or courier. If the courier's working hours are counted from the shift start, you don't need to enable this parameter. Learn more | No |
Proximity algorithms allowed, TRUE/FALSE | use_in_proximity | Whether or not depot proximity is taken into account when grouping routes. Learn more | No |
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Flexible start time, TRUE/FALSE | flexible_start_time | Use this parameter if you need to get the required start time for the vehicle or courier. If the courier's working hours are counted from the shift start, you don't need to enable this parameter. Learn more | No |
Proximity algorithms allowed, TRUE/FALSE | use_in_proximity | Whether or not depot proximity is taken into account when grouping routes. Learn more | No |
Incompatible_order_types
This sheet contains settings for incompatible order types. If you don't use order incompatibility (load_types field), you can leave this sheet blank.
There are only 2 columns on this sheet: in the type column, specify one load_types value. In the incompatible_load_types column, list incompatible load_types separated by commas. You only need to specify each pair of incompatible "load_types" once.
For example, if types 1, 2, 3, and 4 are incompatible, the following rows are enough:
type | incompatible_load_types |
---|---|
1 | 2,3,4 |
2 | 3,4 |
3 | 4 |
type | incompatible_load_types |
---|---|
1 | 2,3,4 |
2 | 3,4 |
3 | 4 |
Location_groups
This sheet contains settings for order groups. If you don't use order groups (the options.location_groups field), you may leave this sheet blank.
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Name of order group | title | Name of the group. Does not affect scheduling, needed only for ease of use of multiple groups | No |
IDs of orders | location_ids | List of IDs of orders included in the group. Separated by commas. One order can only belong to 1 group | Yes |
Group can't be broken up | solid | Default value: FALSE. The TRUE value specifies that the group can't be broken up: orders in it must be delivered without other orders between them. Order sequence within the group isn't fixed. Learn more | No |
Group is indivisible | dependent | Default value: FALSE. The TRUE value specifies that the group cannot be divided: all orders in it must either be completed or (if at least one order can't be delivered) set to unallocated together. Learn more | No |
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Name of order group | title | Name of the group. Does not affect scheduling, needed only for ease of use of multiple groups | No |
IDs of orders | location_ids | List of IDs of orders included in the group. Separated by commas. One order can only belong to 1 group | Yes |
Group can't be broken up | solid | Default value: FALSE. The TRUE value specifies that the group can't be broken up: orders in it must be delivered without other orders between them. Order sequence within the group isn't fixed. Learn more | No |
Group is indivisible | dependent | Default value: FALSE. The TRUE value specifies that the group cannot be divided: all orders in it must either be completed or (if at least one order can't be delivered) set to unallocated together. Learn more | No |
Options
This sheet contains routing options. Options are filled out one per row. For the first run of the routing, you may leave the values in this sheet blank.
The table below describes the acceptable fields on the Options sheet.
For late arrivals and undistributed orders
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Maximum share of dropped orders | max_drop_penalty_percentage | Default value: 100. Learn more | No |
Fixed penalty for violation of maximum share of dropped orders; penalty for each extra percentage of the ratio of the total penalty for dropped orders to the maximum possible | penalty.drop_penalty_percentage.fixed; penalty.drop_penalty_percentage.per_percent | Penalties are only imposed when using the max_drop_penalty_percentage parameter. Learn more | No |
Penalty for non-delivery is proportional to the weight/volume of orders | weighted_drop_penalty | Default value: FALSE. Use TRUE in the scenarios where orders have significantly different weight/volume and you use vehicles of different capacities (and the number of vehicles is such that their utilization must be high to deliver all the orders). | No |
Penalize for a service that's later than the time window | penalize_late_service | Default value: FALSE. The TRUE value is recommended for increasing matches between service time and order windows. Learn more | No |
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Maximum share of dropped orders | max_drop_penalty_percentage | Default value: 100. Learn more | No |
Fixed penalty for violation of maximum share of dropped orders; penalty for each extra percentage of the ratio of the total penalty for dropped orders to the maximum possible | penalty.drop_penalty_percentage.fixed; penalty.drop_penalty_percentage.per_percent | Penalties are only imposed when using the max_drop_penalty_percentage parameter. Learn more | No |
Penalty for non-delivery is proportional to the weight/volume of orders | weighted_drop_penalty | Default value: FALSE. Use TRUE in the scenarios where orders have significantly different weight/volume and you use vehicles of different capacities (and the number of vehicles is such that their utilization must be high to deliver all the orders). | No |
Penalize for a service that's later than the time window | penalize_late_service | Default value: FALSE. The TRUE value is recommended for increasing matches between service time and order windows. Learn more | No |
For multi-orders
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Combine orders into multi-orders? | merge_multiorders | We recommend setting it to TRUE: in most cases, that's the expected use case. Learn more | No |
Merge service time for multi-orders | wait_in_multiorders | If FALSE, then the client_service_duration_s time is accounted separately for each order in a multi-order. If TRUE, the maximum value of the client_service_duration_s parameter is taken into account from all orders in the multi-order. Default value: TRUE. Learn more. | No |
Penalty for each multi-order address that had to be visited again; for each repeated arrival at the multi-order address; for each courier that visits the multi-order address again | penalty.multiorders.per_extra_point; penalty.multiorders.per_extra_visit; penalty.multiorders.per_extra_vehicle | Penalties for return visits to multi-order points. Learn more | No |
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Combine orders into multi-orders? | merge_multiorders | We recommend setting it to TRUE: in most cases, that's the expected use case. Learn more | No |
Merge service time for multi-orders | wait_in_multiorders | If FALSE, then the client_service_duration_s time is accounted separately for each order in a multi-order. If TRUE, the maximum value of the client_service_duration_s parameter is taken into account from all orders in the multi-order. Default value: TRUE. Learn more. | No |
Penalty for each multi-order address that had to be visited again; for each repeated arrival at the multi-order address; for each courier that visits the multi-order address again | penalty.multiorders.per_extra_point; penalty.multiorders.per_extra_visit; penalty.multiorders.per_extra_vehicle | Penalties for return visits to multi-order points. Learn more | No |
For split orders
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Maximum share of split orders, % | max_split_orders_percentage | This determines the maximum percentage of orders that can be split. The value can range from 0 to 100 (100 by default). Learn more | No |
Penalties: for deviation from the maximum share of split orders; for each excess percent of splitting | penalty.split_orders_percentage.fixed; penalty.split_orders_percentage.per_percent | Penalties are only imposed when using the max_split_orders_percentage parameter. Learn more | No |
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Maximum share of split orders, % | max_split_orders_percentage | This determines the maximum percentage of orders that can be split. The value can range from 0 to 100 (100 by default). Learn more | No |
Penalties: for deviation from the maximum share of split orders; for each excess percent of splitting | penalty.split_orders_percentage.fixed; penalty.split_orders_percentage.per_percent | Penalties are only imposed when using the max_split_orders_percentage parameter. Learn more | No |
For depots
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Loading when ready | load_when_ready | Defines the scenario of loading orders at the depot. FALSE by default, loading after all orders are ready. If the courier should start loading orders as they are ready, specify the TRUE value, the ready time location.depot_ready_time , and the loading time location.depot_duration_s . Learn more. | No |
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Loading when ready | load_when_ready | Defines the scenario of loading orders at the depot. FALSE by default, loading after all orders are ready. If the courier should start loading orders as they are ready, specify the TRUE value, the ready time location.depot_ready_time , and the loading time location.depot_duration_s . Learn more. | No |
For other locations
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Coordinates of the location that throughput is set for | points_throughputs.N.point.lat; points_throughputs.N.point.lon | We don't recommend using it on initial routing runs. Learn more | No |
Location throughput: kg per hour; unit per hour; vehicle per hour | points_throughputs.N.throughput.kg_per_hour; points_throughputs.N.throughput.unit_per_hour; points_throughputs.N.throughput.vehicle_count | We don't recommend using it on initial routing runs. Learn more | No |
Penalties for violation of location throughput capacity: fixed; for each kilogram in excess of location throughput capacity; for each cargo unit in excess of location throughput capacity; for each vehicle simultaneously loaded or unloaded at the location over the throughput capacity | points_throughputs.N.penalty.throughput.fixed; points_throughputs.N.penalty.throughput.kg; points_throughputs.N.penalty.throughput.unit; points_throughputs.N.penalty.throughput.vehicle | We recommend leaving these fields blank for your first routing runs. Next, you can use the default values (penalty.throughput.fixed = 1000, penalty.throughput.kg = 50, penalty.throughput. unit = 100, penalty.throughput.vehicle = 100000) and adjust them based on the results. | No |
Excel field group | Attributes | Comments on entering data | Required field |
---|---|---|---|
Coordinates of the location that throughput is set for | points_throughputs.N.point.lat; points_throughputs.N.point.lon | We don't recommend using it on initial routing runs. Learn more | No |
Location throughput: kg per hour; unit per hour; vehicle per hour | points_throughputs.N.throughput.kg_per_hour; points_throughputs.N.throughput.unit_per_hour; points_throughputs.N.throughput.vehicle_count | We don't recommend using it on initial routing runs. Learn more | No |
Penalties for violation of location throughput capacity: fixed; for each kilogram in excess of location throughput capacity; for each cargo unit in excess of location throughput capacity; for each vehicle simultaneously loaded or unloaded at the location over the throughput capacity |