---
metadata:
  - name: generator
    content: Diplodoc Platform v5.52.0
alternate:
  - https://yandex.kz/routing/doc/en/vrp/excel-fill-guide.md
  - https://yandex.kz/routing/doc/kk/vrp/excel-fill-guide.md
  - https://yandex.kz/routing/doc/ru/vrp/excel-fill-guide.md
  - https://yandex.kz/routing/doc/tr/vrp/excel-fill-guide.md
  - href: en/vrp/excel-fill-guide.md
    type: text/markdown
    title: Markdown version
  - href: llms.txt
    type: text/markdown
    title: llms.txt
title: RouteQ — instructions for filling in the XLS file for planning
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.kz/routing/doc/en/llms.txt


# Instructions for filling in Excel files

## General description  {#general-description}

You can download a sample Excel file in the [Sample planning](https://yandex.kz/routing/doc/en/vrp/example.md) section. Uploadable formats: `xls`, `xlsx`, `xlsm`.

To upload routing data correctly, the Excel workbook must contain the following sheets:

- [Orders](#orders): Information about orders.

- [Vehicles](#vehicles): Information about vehicles or couriers.

- [Depot](#depot-depots) or `Depots`: Information about the depot point(s).

Optionally, the Excel workbook can contain the following sheets:

- [Incompatible_order_types](#incompatible-order-types): Information about mutually incompatible order types.

- [Location_groups](#location-groups): Order group settings.

- [Options](#options): Routing options.

- [Routes](#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.

If there is a space at the end of a data cell, it will be automatically deleted when the solution is uploaded.

{% note info %}

Columns can be in any order.

{% endnote %}

## Using presets {#presets}

To implement a planning scenario or strategy, you can use presets. A preset is a set of parameters and their values in JSON format that are embedded into your request without changing the [integration](https://yandex.kz/routing/doc/en/vrp/integration-variants.md) settings. For more information, see [Using presets](https://yandex.kz/routing/doc/en/vrp/presets.md).

Set a preset type and add the `preset_id` field to one of the following sheets:

* [Orders](#orders)
* [Vehicles](#vehicles)
* [Depot or Depots](#depot-depots)
* [Options](#options)

As the field value, specify the name of your preset. For example: `public_minimize_mileage`.

## Orders sheet {#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.

{% note info %}

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.

{% endnote %}

Below, you can see the fields allowed on the Orders sheet.

### Basic order information {#orders-general}

#|
||**Excel field group**|**Attributes**|**Comments on entering data**|**Required field**||
||Order ID 

Order|`id`;

`ref` | We recommend that you specify the order number in `id` (you may leave `ref` blank or the same as `id`). [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-orders.md#order-id) | Yes (one of the fields)||
||Latitude 

Longitude| `point.lat`;

`point.lon` | Coordinates of the order location: latitude (`point.lat`), longitude (`point.lon`). [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-orders.md#order-coordinates) | No, if you specify the order address (when you upload the data via the interface, you can geocode the address)||
||Customer 

Description 

Address| `title`;

`description`;

`address`| Information fields that are afterwards displayed in the Planning interface. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-orders.md#order-id) | No (but if the order coordinates are not entered, then you must enter the address)||
||Comment| `comments` | [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-orders.md#order-comment) | No ||
||Phone number| `phone` | Used only when exporting planning results to [Track & Trace](https://yandex.kz/routing/doc/en/delivery/index.md). | No||
||Order type| `type` | [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-orders.md#order-type) | Should be filled in for correct routing (technically, this field is optional)||
||Drop penalty (units) | `penalty.drop`| We recommend leaving the default value (1,000,000) or entering nothing (in this case, the default value is used). [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-orders.md#penalties-not-delivering) | Should be filled in for correct routing (technically, this field is optional)||
|#

### Order characteristics {#orders-specs}

#|
||**Excel field group**|**Attributes**|**Comments on entering data**|**Required field**||
||Weight (kg) 

Number of units 

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](https://yandex.kz/routing/doc/en/vrp/properties-of-orders.md#order-weight) | Should be filled in for correct routing (technically, this field is optional)||
||Order volume, m³ | `shipment_size.volume_cbm` | The order volume in cubic meters. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-orders.md#order-weight) | No||
||Custom units of measurement: 

– Name 

– Quantity |
`shipment_size.custom.N.name`;

`shipment_size.custom.N.size` | Custom units for the order. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-orders.md#custom-units) | No||
||Cargo type | `shipment_size.volume.type` | Possible values: `bulk`, `rigid`, `fixed_bottom`. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-orders.md#order-dimensions) | No||
||Bulk cargo alignment | `shipment_size.volume.align` | Possible values: `all_axes`, `height`. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-orders.md#order-orientation-in-vehicle) | No||
||Extended properties: 

– Name 

– Value | `orders.custom_properties.N.name`;

`orders.custom_properties.N.value` | Custom units of order fulfillment cost. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-orders.md#drop-pickup) | No||
|#

### Delivery windows {#orders-time-windows}

#|
||**Excel field group**|**Attributes**|**Comments on entering data**|**Required field**||
||Time window| `time_window` | If the time window is relative (meaning that it has the 10:00–18:00 format), the shift of this time window relative to the planning date should be taken into account (the planning date is specified when running the routing task). Learn more [here](https://yandex.kz/routing/doc/en/vrp/properties-of-time-window.md#relative-time-windows) and [here](https://yandex.kz/routing/doc/en/vrp/properties-of-orders.md#order-time-window) | 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](https://yandex.kz/routing/doc/en/vrp/properties-of-orders.md#order-multiple-time-windows) | Yes (unless time_window is specified)||
||Hard window, TRUE/FALSE | `hard_window` | TRUE: The time window can't be violated under any circumstances. FALSE: The 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](https://yandex.kz/routing/doc/en/vrp/properties-of-orders.md#order-time-window)<br><br>**Please note**: the `hard_time_window` and `hard_window` fields are mutually exclusive. | No||
||Hard order delivery window | `hard_time_window` | If the main depot window is soft, you can set a hard time window around it. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-depot.md#depot-time-window)<br><br>**Please note**: the `hard_time_window` and `hard_window` fields are mutually exclusive. | No||
||Penalties: 

– Window violation penalty (per minute, units). 

– Window violation penalty (one‑time, units). 

– Early arrival penalty (one‑time, units). 

– Early arrival penalty (per minute, units). 

– Late arrival penalty (one‑time, units). 

– Late arrival penalty (per minute, units). | `penalty.out_of_time.minute`;

`penalty.out_of_time.fixed`;

`penalty.early.fixed`;

`penalty.early.minute`;

`penalty.late.fixed`;

`penalty.late.minute` | Penalties for violating 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](https://yandex.kz/routing/doc/en/vrp/properties-of-orders.md#penalties-time-window-violation) | Should be filled in for correct routing (technically, this field is optional)||
||Break during order handling| `can_have_rest_during_service` | Determines whether this break can overlap with the order handling time. Default value: TRUE. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles-rest-schedule.md#rest-during-service) | No ||
|#

### Time limits {#orders-time}

#|
||**Excel field group**|**Attributes**|**Comments on entering data**|**Required field**||
||Delivery time | `delivery_deadline` | The time before which a pickup order without an explicit delivery location must be delivered to any depot. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-orders.md#order-time-depot-delivery) | No||
||Penalties for failure to deliver a pickup order to the depot: 

– For the fact of violation (units). 

– Per minute of failure (units). | `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](https://yandex.kz/routing/doc/en/vrp/properties-of-orders.md#order-time-depot-delivery) | No||
||Order completion time| `depot_ready_time` | Time when the order is ready for issue at the depot. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-orders.md#order-time-depot-ready) | No||
||Order depot pick up deadline | `depot_expiring_time` | The time before the order must be picked up from the depot. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-orders.md#depot-expiring-time) | No||
||The limit on the time the order stays in the vehicle:

– Soft limit 

– Hard limit | `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](https://yandex.kz/routing/doc/en/vrp/properties-of-orders.md#transit-time) | No||
||Penalties for exceeding the soft limit on the time the order stays in the vehicle: 

– For the fact of violation, units. 

– Per minute, units. | `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](https://yandex.kz/routing/doc/en/vrp/properties-of-orders.md#transit-time) | No||
|#

### Handling time {#orders-service-time}

#|
||**Excel field group**|**Attributes**|**Comments on entering data**|**Required field**||
||Order reloading time at cross dock | `crossdock_service_duration_s` | Specified for orders delivered via cross docking. [Learn more](https://yandex.kz/routing/doc/en/vrp/supported-use-cases.md#cross-docking) | No||
||Service duration at depot (sec) | `depot_duration_s` | For orders with the "delivery" type, this is the time when the order is loaded at the depot. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-orders.md#order-service-duration-load) | No||
||Time to park the vehicle | `parking_service_duration_s` | Specified if the courier parks the vehicle and then delivers several orders nearby on foot. [Learn more](https://yandex.kz/routing/doc/en/vrp/supported-use-cases.md#vehicle-walking-courier) | No||
||Handling time at location (sec) 

Order handling time (sec) | `shared_service_duration_s`;

`service_duration_s` | The time that the vehicle\courier will spend at the order location (in seconds). Learn more [here](https://yandex.kz/routing/doc/en/vrp/properties-of-orders.md#multi-orders) and [here](https://yandex.kz/routing/doc/en/vrp/properties-of-orders.md#order-service-duration-delivery) | Should be filled in for correct routing (technically, this field is optional)||
|#

### Combining and splitting orders {#orders-parts}

#|
||**Excel field group**|**Attributes**|**Comments on entering data**|**Required field**||
||Can be combined into a multi‑order, TRUE/FALSE | `can_be_merged` | By default, TRUE (the order can be combined into a multi-order). Learn more [here](https://yandex.kz/routing/doc/en/vrp/properties-of-orders.md#multi-orders) and [here](https://yandex.kz/routing/doc/en/vrp/properties-of-orders.md#order-service-duration-delivery) | No||
||Split, TRUE/FALSE | `can_be_split `| If FALSE (that is default), the order can only be delivered in its entirety. If TRUE: The order can be delivered in parts. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-orders.md#split-parts) | 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](https://yandex.kz/routing/doc/en/vrp/properties-of-orders.md#split-parts) | No||
||Divider: 

– Proportion 

– Kilos 

– Unit 

– m³| `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](https://yandex.kz/routing/doc/en/vrp/properties-of-orders.md#split-parts) | 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](https://yandex.kz/routing/doc/en/vrp/properties-of-orders.md#split-parts) | No||
||Fixed penalty for dropping part of the order 

Penalty proportional to the undelivered 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](https://yandex.kz/routing/doc/en/vrp/properties-of-orders.md#split-parts-penalty) | Should be filled in for correct routing (technically, this field is optional)||
|#

### Assigning an order to a depot or other locations {#orders-binding}

#|
||**Excel field group**|**Attributes**|**Comments on entering data**|**Required field**||
||Assigned to depots | `depot_id` | Depots that the order can be picked from. You can specify multiple depots for one order, separated by commas. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-depot.md#depot-start-from-any) | 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. Note: the ID entered in `delivery_to` should be unique for each `pickup` order. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-orders.md#pickup-and-delivery) | No||
||Possible destinations (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. Note: the ID entered in `delivery_to_any` may be the same for different "pickup" orders. | No||
||Return ID (for orders with the delivery type) | `return_to`|Only used in scenarios with orders where a container return is planned. In this field, specify the `id` of the associated order with the `return` type. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-orders.md#return) | No||
||Order pickup at one of the locations available | `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](https://yandex.kz/routing/doc/en/vrp/properties-of-orders.md#pickup-from-any) | No||
||Pickup order delivery to the depot, TRUE/FALSE| `pickup_must_reach_depot` | If this option is enabled, the pickup order must be delivered to the depot in the current route. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-orders.md#pickup-must-reach-depot) | No||
||Cross docking mode| `crossdock_mode` | Accepts one of the following values: allow (default), deny, mandatory. [Learn more](https://yandex.kz/routing/doc/en/vrp/supported-use-cases.md#cross-docking) | No||
||Can be left at cross dock, TRUE/FALSE | `may_drop_in_crossdock` | Can only be set for `pickup` orders. If set to TRUE (used by default), then the order can be dropped at a cross-docking depot. If set to FALSE, the order can only be dropped at a regular depot. [Learn more](https://yandex.kz/routing/doc/en/vrp/supported-use-cases.md#cross-docking) | No||
|#

### Distribution and compatibility of orders {#orders-compatibility}

#|
||**Excel field group**|**Attributes**|**Comments on entering data**|**Required field**||
||Type of compatibility with other orders| `load_types` | Parameters of compatibility between the orders. For a single order, you can specify multiple "load_types" values separated by commas. `load_types` is any row that identifies a property of an order in a way that's understandable to a user. 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](https://yandex.kz/routing/doc/en/vrp/properties-of-orders.md#order-incompatibility) | No||
||Optional tags: 

– Vehicle requirements 

– Tag weight | `optional_tags.N.tag`;

`optional_tags.N.value` | Tags for optional requirements. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles.md#optional-tags) | 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 or 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](https://yandex.kz/routing/doc/en/vrp/properties-of-orders.md#order-vehicle-compatibility) | No||
|#

### Other order characteristics {#orders-other}

#|
||**Excel field group**|**Attributes**|**Comments on entering data**|**Required field**||
||Available for tractor‑trailer| `allow_trailers` | Default value: FALSE. [Learn more](https://yandex.kz/routing/doc/en/vrp/supported-use-cases.md#trailer) | No||
||LIFO | `in_lifo_order` | Default value: FALSE. You can use it for `pickup`/`delivery` order pairs<!-- а также для заказов типа `delivery`,--> when the sequence of loading and unloading is important. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-orders.md#order-reception-and-delivery) | No||
||Sequence order | `sequence_order` | The order of completing orders on a route. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-orders.md#sequence-order) | No||
||Tracking companies (id) | `shared_with_company_ids` | Company IDs are comma-separated. [Learn more](https://yandex.kz/routing/doc/en/delivery/functions/shared.md#excel-excel) | No||
||Action of route density options, TRUE/FALSE | `use_in_proximity` | The possibility to disable route density options for the order. TRUE by default (density options apply). [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-orders.md#grouping-options) | No||
||Handling time per customer| `client_service_duration_s` | Specified when determining the handling time for a multi-order. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-orders.md#multi-orders) | No ||
||Client ID| `client_id` | Orders with the same `client_id` are combined into a single multi-order, provided this doesn't make the solution suboptimal. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-orders.md#multi-orders) | No ||
|#

{% cut "Parameters that are not supported in Excel" %}

- `max_time_between_visits_s`
- `penalty.time_between_visits.fixed`
- `penalty.time_between_visits.minute`
- `garage_loading_mode`
- `preload_service_duration_s`
- `postload_service_duration_s`

{% endcut %}

## Vehicles sheet {#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.

{% note info %}

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.

{% endnote %}

Below, you can see the fields allowed on the Vehicles sheet.

### Basic information about the courier or vehicle {#vehicles-general}

#|
||**Excel field group**|**Attributes**|**Comments on entering data**|**Required field**||
||Vehicle ID 

License plate 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 the `id` field is empty, then when you upload the data from Excel and send the task for routing, the field 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](https://yandex.kz/routing/doc/en/delivery/index.md). [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles.md#vehicle-id) | 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]((../delivery/index.md)). [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles.md#vehicle-imei) | No||
||Maximum trips | `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](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles-routes.md#vehicle-max-runs) | No||
||Phone number | `phone` | The phone number for contacting the courier in Track & Trace. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles.md#vehicle-id) | 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](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles.md#routing-mode) | No||
|#

### Courier or vehicle characteristics {#vehicles-specs}

#|
||**Excel field group**|**Attributes**|**Comments on entering data**|**Required field**||
||Carrying capacity (kg) 

Max load (% of weight) 

Capacity, items 

Max load (% of units) 

Size of cargo space for cargo unit, m (width, depth, height) 

CC (m³) 

Max load (% of volume) | `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.volume_cbm`;

`capacity.limits.volume_perc` | Parameters of the vehicle/courier capacity. `capacity.weight_kg`: Load capacity in kg. `capacity.units`: Load capacity in cargo units. `capacity.volume_cbm`: Vehicle capacity in cubic meters. 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](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles.md#vehicle-capacity) | Should be filled in for correct routing (technically, this field is optional)||
||Custom capacity units: 

– Name 

– Quantity | `capacity.custom.N.name`;

`capacity.custom.N.size` | Vehicle capacity in custom units. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles.md#capacity-custom-units) | 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](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles.md#vehicle-properties) | No||
||Minimum total order weight at one location| `min_stop_weight` | The minimum total weight that a vehicle can deliver to one location. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles.md#min-stop-dimensions) | No||
||Penalty for violation of the minimum order weight: 

– Fixed. 

– For each kg| `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](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles.md#min-stop-dimensions) | No||
|#

### Assigning to a depot {#vehicles-binding}

#|
||**Excel field group**|**Attributes**|**Comments on entering data**|**Required field**||
||Allow visiting depots for reloading | `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](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles-depot.md#visit-additional-depot) | No||
||Cross docking mode| `crossdock_mode` | Accepts one of the following values: allow (default), deny, mandatory. [Learn more](https://yandex.kz/routing/doc/en/vrp/supported-use-cases.md#cross-docking) | No||
||Depot IDs | `depot_id` | You can specify multiple depots for one courier, separated by commas. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles-depot.md#start-from-any) | No||
||Start location 

Visit depot at the start of the route, 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](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles-depot.md#vehicle-start-at) | No||
||Can visit the depot at the beginning | `can_visit_depot_at_start` | Default value: FALSE. Works only when `visit_depot_at_start` = `false`. The courier can visit the depot at the beginning of the route, if necessary. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles-depot.md#visit-depot-at-start) | No||
||Return to the depot? TRUE/FALSE 

Destination| `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](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles-depot.md#vehicle-finish-at) | No||
||Depot IDs for route start | `starting_depot_id` | Depots where the courier can start the route. You can specify multiple depots for one courier, separated by commas. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles-depot.md#start-from-any) | No||
||Intermediate depot IDs | `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](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles-depot.md#visit-additional-depot) | No||
||Maximum number of intermediate depots in the route| `max_middle_depots` | Maximum number of intermediate depots that a courier can visit in the entire planning. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles-depot.md#visit-additional-depot) | No||
||Depot IDs for route finish | `ending_depot_id` | Depots where the courier can end the route. You can specify multiple depots for one courier, separated by commas. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles-depot.md#return-to-depot) | No||
|#

### Time limits {#vehicles-time}

#|
||**Excel field group**|**Attributes**|**Comments on entering data**|**Required field**||
||Loading time, depending of the vehicle, s | `depot_extra_service_duration_s` | The time needed for loading in addition to the depot's general handling time. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles-depot.md#depot-extra-service-duration) | No||
||Time spent at the first destination | `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](https://yandex.kz/routing/doc/en/vrp/planned-route.md) 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](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles.md#as-soon-as-possible) | No||
|#

### Distribution by zone and compatibility {#vehicles-compatibility}

#|
||**Excel field group**|**Attributes**|**Comments on entering data**|**Required field**||
||Properties 

Incompatible properties| `tags`;

`excluded_tags` | Order and vehicle compatibility parameters. 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 or courier clearly for the user. Only the vehicle having all the tags specified for the order can be selected for the order. 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](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles.md#tags) | No||
||Allowed geofences | `allowed_zones` | Geofences where the vehicle or courier can deliver orders. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles.md#geozones) | No||
||Forbidden geofences| `forbidden_zones` | Geofences where the vehicle or courier can't deliver orders. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles.md#geozones) | No||
||Optional zones: 

– Name 

– Value | `optional_zones.N.zone`;

`optional_zones.N.value` | Geofences that carry bonuses or penalties for vehicles/couriers. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles.md#optional-geozones) | No||
||Incompatible geofences | `incompatible_zones` | Geofences that can't be in the same courier run. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles.md#incompatible-geozones) | No||
|#

### Cost and payouts {#vehicles-cost}

#|
||**Excel field group**|**Attributes**|**Comments on entering data**|**Required field**||
||Cost of using a vehicle: 

– Per km (units). 

– Per address (units). 

– Per hour (units). 

– Per use (units). 

– Of transporting one ton‑kilometer (units). 

– Per order‑kilometer (units). 

– Per unit‑kilometer (units). 

– Per run| `cost.km`;

`cost.location`;

`cost.hour`;

`cost.fixed`;

`cost.tonne_km`;

`cost.order_km`;

`cost.unit_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 `cost.km` and `cost.hour` must not be equal to 0. If you don't know what to enter in those fields, we recommend leaving the default value (`cost.fixed` = 3000, `cost.hour` = 100, `cost.km` = 8) or leaving them empty (in this case, the default values apply). [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles-cost.md#cost) | Yes||
||Calculate cost or calculate cost:

– Per route 

– Per shift 

– Per run| `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](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles-cost.md#custom-route-cost) | No||
||Calculating payouts to courier or calculate courier payouts:

– Per route 

– Per shift 

– Per run| `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](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles-cost.md#payout) | No||
|#

### Restrictions for walking couriers or parts of the route {#vehicles-walking}

#|
||**Excel field group**|**Attributes**|**Comments on entering data**|**Required field**||
||Maximum number of units per courier| `walking_courier.capacity.units` | Used in delivery scenarios where the vehicle is parked before the walking part of the route. [Learn more](https://yandex.kz/routing/doc/en/vrp/supported-use-cases.md#vehicle-walking-courier) | No||
||Cost of delivery:

– By walking couriers, km. 

– By walking couriers, hour. | `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](https://yandex.kz/routing/doc/en/vrp/supported-use-cases.md#vehicle-walking-courier) | No||
||Maximum allowed distance between two locations within the walking parts of the route 

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](https://yandex.kz/routing/doc/en/vrp/supported-use-cases.md#vehicle-walking-courier) | No||
||Maximum allowed distance that can be traveled in one parking session 

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](https://yandex.kz/routing/doc/en/vrp/supported-use-cases.md#vehicle-walking-courier) | No||
||Maximum allowed duration of one parking session 

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](https://yandex.kz/routing/doc/en/vrp/supported-use-cases.md#vehicle-walking-courier) | No||
|#


### Trailers {#trailers}

#|
||**Excel field group**|**Attributes**|**Comments on entering data**|**Required field**||
||Trailer capacity, kg| `trailer.capacity.weight_kg` | Carrying capacity of the trailer, in kilograms. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles.md#coupling) | No||
||Trailer capacity, units| `trailer.capacity.units` | Carrying capacity of the trailer, in units. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles.md#coupling) | No||
||Maximum difference between trailer and truck load, units| `trailer.max_capacity_difference.units` | The number of units the trailer can fit compared to the truck. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles.md#coupling) | No||
||Maximum difference between trailer and truck load, kg| `trailer.max_capacity_difference.weight_kg` | The number of kilograms the trailer can fit compared to the truck. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles.md#coupling) | No||
||Trailer cost, fixed| `trailer.cost.fixed` | The fixed cost-of-use for the trailer. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles.md#coupling) | No||
||Trailer decoupling time, sec| `trailer.decoupling_time_s` | Time to decouple the trailer in seconds. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles.md#coupling) | No||
||Time to connect the trailer, sec| `trailer.coupling_time_s` | Time to couple the trailer in seconds. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles.md#coupling) | No||
||Reloading time, sec| `trailer.rolling_time.fixed_time_s` | Fixed time for reloading the cargo from the trailer to the truck, in seconds. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles.md#coupling) | No||
|#

### Other characteristics of couriers and vehicles {#vehicles-other}

#|
||**Excel field group**|**Attributes**|**Comments on entering data**|**Required field**||
||Leave the planned route unchanged | `fixed_planned_route` |The need to leave the route from planned_route unchanged. Default value: FALSE. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles-routes.md#planned-route) | No||
||Order service duration coefficient 

Address service duration coefficient | `service_duration_multiplier`;

`shared_service_duration_multiplier` | The coefficient of acceleration or deceleration of vehicles or couriers relative to the handling time. We only recommend this option for more experienced users. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles.md#service-duration) | No||
||Speed adjustment factor | `travel_time_multiplier` | The coefficient of acceleration (deceleration) of a vehicle or courier relative to their speed calculated from statistics. The maximum value is 1000. We don't recommend using this option for your first routing tasks. You can try it after you gain some experience using the service. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles.md#travel-time) | No||
|#


### Shifts {#vehicles-shifts}

You can specify multiple shifts for one vehicle or courier. Enter the values in one 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.

{% note info %}

At least one shift must be defined.

{% endnote %}

#|
||**Excel field group**|**Attributes**|**Comments on entering data**|**Required field**||
||Shift window 

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 account for the time at the beginning of the route and the time at the end of the route, because the algorithm considers these times to be included in the vehicle or courier's working hours. If the vehicle or courier returns to the depot, this time is also taken into account in the vehicle or courier working hours (and should be reflected in the shift's time window). [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles-routes.md#shifts).
**Please note**: the `hard_time_window` and `hard_window` fields are mutually exclusive. | 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](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles-routes.md#shifts).
**Please note**: the `hard_time_window` and `hard_window` fields are mutually exclusive. | No||
||Maximum trips | `shifts.N.max_runs` | The maximum number of runs that can be performed per shift. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles-routes.md#vehicle-max-runs) | No||
||Service duration (sec)| `shifts.N.service_duration_s` | We recommend specifying this time only when a vehicle has several consecutive shifts, even with overlapping time windows. For example, let's say that Shift 1 is from 9:00 to 14:00 and Shift 2 is from 13:00 to 18:00. This 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](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles-routes.md#shifts) | No||
||Penalties for the violation of shift window: 

– Per minute. 

– For the fact of violation. 

– 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 violating 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](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles-routes.md#shift-duration). [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles-routes.md#shifts) | No||
||Maximum shift duration (sec): 

– Soft restriction. 

– Hard restriction | `shifts.N.max_duration_s`;

`shifts.N.hard_max_duration_s` | We recommend leaving it blank for your first routing runs. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles-routes.md#shift-duration) | No||
||Maximum shift duration, s: 

– Soft restriction. 

– Hard restriction.

– For the fact of violation the shift duration.

– Per minute of violation. | `shifts.N.max_working_duration_s`;

`shifts.N.hard_max_working_duration_s`;

`shifts.N.penalty.working_overtime.fixed`;

`shifts.N.penalty.working_overtime.minute` | We recommend leaving it blank for your first routing runs. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles-routes.md#shift-duration) | No||
||Minimum number of stops per shift 

Penalty for each stop under the minimum number (units) 

Penalty for not reaching the minimum number of stops (units)| `shifts.N.minimal_stops`;

`shifts.N.penalty.stop_lack.per_stop`;

`shifts.N.penalty.stop_lack.fixed` | We recommend leaving it blank for your first routing runs. You can make it mandatory for your own vehicles later. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles-routes.md#shift-stops) | No||
||Maximum number of stops per shift. 

Penalties for: 

– Each stop over the maximum number.

– Exceeding the maximum number of stops (units).| `shifts.N.maximal_stops`;

`shifts.N.penalty.stop_excess.per_stop`;

`shifts.N.penalty.stop_excess.fixed` | We recommend leaving it blank for your first routing runs. You can later use it to limit the number of locations on a route: for heavy vehicles (if you can't limit it by other parameters, for example, handling time); for setting limits on the number of locations on a route (for example, if you know for sure that the courier can't complete a route of more than a certain number of locations without violations because of contingencies). [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles-routes.md#shift-stops) | No||
||Maximum shift distance (km). 

Penalties for violation of the maximum shift distance:

– For the fact of violation.

– Per kilometer.| `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](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles-routes.md#shift-mileage) | No||
||Balanced group ID| `shifts.N.balanced_group_id` | We recommend leaving it blank for your first routing runs. If you need to get more uniform routes, you can fill out the balanced groups on the **Options** sheet and specify the ID of the balanced group in this field. [Learn more](https://yandex.kz/routing/doc/en/vrp/balanced-groups.md) | No||
||Completed orders| `shifts.N.visited_locations` | In the `shifts.N.visited_locations` field, you can list the `id`s of the orders that have already been assigned to this vehicle. The sequence is critical in this list. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles-routes.md#visited-locations) | No||
|#

### Breaks {#vehicles-rest}

You can describe simple or complex patterns of rest and maintenance breaks and other activities:

- For couriers, use the `vehicles.rest_schedule.breaks` object.

- For shifts, use the `vehicles.shifts.N.rest_schedule.breaks` object. Shift-level breaks have priority over courier-level ones.

You can specify multiple breaks for one vehicle or courier. Enter the values in one 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.

#|
||**Excel field group**|**Attributes**|**Comments on entering data**|**Required field**||
||Break ID | `rest_schedule.breaks.N.work_break_id` | [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles-rest-schedule.md#rest-schedule) | No||
||Break preset | `rest_schedule_preset` | Possible parameter values:

`public_transport`: You can divide the break into multiple parts, each at least 10 minutes.

`private_transport`: You can divide the break into two parts: 15 and 30 minutes.

`multiday_private_transport`: The `private_transport` mode for multi-day routes. Besides regular breaks, you can also add:

   Daily break: the last 11 hours of each weekday.

   Weekly break: the last 45 hours of each week.

[Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles-rest-schedule.md#rest-schedule-presets) | No||
||Breaks from the preset can be split | `can_split_preset_work_breaks` | Default value: TRUE. [Learn more](https://yandex.ru/routing/doc/ru/vrp/properties-of-vehicles-rest-schedule#rest-schedule-presets) | No||
||Break schedule template | `rest_schedule_id` | Used to describe breaks for each courier separately or create templates for multiple couriers or for a shift. Moreover, you can combine individual and template schedules. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles-rest-schedule.md#template-rest-shedule) | No||
||Break duration (sec) | `rest_schedule.breaks.N.rest_duration_s` | Break duration in seconds. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles-rest-schedule.md#rest-duration-s) | No||
||Break start conditions:

- soft time window;

- hard time window;

- preferred time before the break starts | `rest_schedule.breaks.N.soft_time_range`

`rest_schedule.breaks.N.hard_time_range`

`rest_schedule.breaks.N.desired_work_duration` | A soft `soft_time_range` and hard `hard_time_range` time windows are independent of each other and can be used separately. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles-rest-schedule.md#time-range-new) | No||
||An option to rest at a `rest_place` location | `rest_schedule.breaks.N.at_rest_place` | An option to have a break in a location with the `rest_place` type. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles-rest-schedule.md#time-range-rest-place) | No||
||Break type | `rest_schedule.breaks.N.break_type` | Possible values:
 
`from_start`: Working hours from the start of the route.

`from_last`: Working hours from the last break (or from the start of the route if it's the first break).

`travel`: Travel time and waiting time from the start of the route.

`continuous`: Travel time and waiting time from the completion of the previous order.

`driving`: Travel time from the start of the route.

`exact`: Break start time.

`before_first`: A break before the start of the first order.

`after_last`: A break after completing the last order.
 
[Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles-rest-schedule.md#types-breaks) | No||
||Splitting breaks:

- can be split;

- maximum number of parts;

- minimum duration of parts, sec;

- minimum duration of the first part, sec;

- minimum duration of the last part, sec | `rest_schedule.breaks.N.can_be_split`

`rest_schedule.breaks.N.max_split_parts`

`rest_schedule.breaks.N.min_split_part_duration_s`

`rest_schedule.breaks.N.min_first_split_part_duration_s`

`rest_schedule.breaks.N.min_last_split_part_duration_s` | Enables you to split the break into smaller parts. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles-rest-schedule.md#shared-rests) | No||
||Apply the break to the handling time at the location | `rest_schedule.breaks.N.can_rest_during_service` | Determines whether this break can overlap with the handling time of the order or the depot. Default value: TRUE. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles-rest-schedule.md#rest-during-service) | No||
||Penalties for:

– An early break, units.

– Every minute of an early break, units.

– A late break, units.

– Every minute of a late break, units. | `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](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles-rest-schedule.md#penalty) | No||
||Repeats until the shift ends | `rest_schedule.breaks.N.repeatable` | The parameter specifies that the break should be repeated. The quantity and order of repeated breaks within a shift can vary. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles-rest-schedule.md#repeatable) | No||
|#

{% cut "Parameters that are not supported in Excel" %}

- `shifts.N.penalty.unique_stop_lack.fixed`
- `shifts.N.penalty.unique_stop_lack.per_stop`
- `minimal_unique_stops`
- `shifts.N.run_restrictions.max_mileage_km.penalty.fixed`
- `shifts.N.run_restrictions.max_mileage_km.penalty.km`
- `shifts.N.run_restrictions.minimal_stops.value`
- `trailer.rolling_cost`
- `onboard_incompatible_load_types`
- `planned_runs_first`
- `close_locations.routing_mode`
- `close_locations.search_radius_m`
- `close_locations.soft_search_radius_m`
- `close_locations.duration_till_service_s.value`
- `close_locations.duration_till_service_s.penalty`
- `close_locations.distance_till_service_m.value`
- `close_locations.distance_till_service_m.penalty`
- `entire_route_incompatible_load_types`
- `max_wait_at_location_hour`
- `max_wait_at_starting_depot_hour`
- `penalty.wait_at_location`
- `penalty.wait_at_starting_depot`
- `custom_value`
- `shifts.N.cost`

{% endcut %}

## Depot or Depots sheet {#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](https://yandex.kz/routing/doc/en/vrp/properties-of-depot.md#depot-start-from-any), 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.

{% note info %}

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.

{% endnote %}

The table below describes the acceptable fields on the **Depot**/**Depots** sheet.

### Basic depot information {#depots-general}

#|
||**Excel field group**|**Attributes**|**Comments on entering data**|**Required field**||
||Depot number| `id` | The depot `id` must not repeat any order `id`s (that is, the order `id` and depot id must be unique). If `id` is empty, then when you upload the data from Excel and send the task for routing, "id" is filled in as 0. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-depot.md#depot-id) | Yes||
||Depot name

Depot title

Comment | `ref`;

`title`;

`description` | The depot's numeric or string ID to be displayed in the **Planning** interface; depot name; depot description. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-depot.md#depot-id) | No||
||Latitude 

Longitude | `point.lat`;

`point.lon` | Coordinates of the depot point: latitude (`point.lat`), longitude (`point.lon`). [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-depot.md#depot-coordinates) | 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](https://yandex.kz/routing/doc/en/vrp/properties-of-depot.md#depot-coordinates) | No (but if the depot coordinates aren't entered, you must enter the address)||
|#

### Depot time windows {#depots-time}

#|
||**Excel field group**|**Attributes**|**Comments on entering data**|**Required field**||
||Working hours | `time_window` | If you don't have any special requirements for the time when vehicles should return to the depot or for the depot's throughput capacity, 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](https://yandex.kz/routing/doc/en/vrp/properties-of-depot.md#depot-time-window) | Yes (if `time_windows` aren't specified)||
||Multiple time window | `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](https://yandex.kz/routing/doc/en/vrp/properties-of-depot.md#depot-multiple-time-windows) | Yes (unless `time_window` is specified)||
||Hard order delivery window | `hard_time_window` | If the main depot window is soft, you can set a hard time window around it. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-depot.md#depot-time-window).
**Please note**: the `hard_time_window` and `hard_window` fields are mutually exclusive. | No||
||Hard 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](https://yandex.kz/routing/doc/en/vrp/properties-of-depot.md#depot-time-window).
**Please note**: the `hard_time_window` and `hard_window` fields are mutually exclusive. | 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](https://yandex.kz/routing/doc/en/vrp/properties-of-depot.md#additional-time-windows) | No||
||Penalties for time window violations: 

– Per minute. 

– For the fact the violation. 

– For early arrival. 

– Per minute of early arrival. 

– 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 violating 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](https://yandex.kz/routing/doc/en/vrp/properties-of-depot.md#penalties-time-window-violation) | No||
|#
<!-- ||Time before the start of each run until the order is ready at the depot, s | `preliminary_service_duration_s` | Указывается, если до готовности заказа необходимо выполнить предварительные операции на складе. [Подробнее](https://yandex.kz/routing/doc/en/vrp/properties-of-depot.md#depot-service-duration) | Нет|| -->


### Handling time at depot {#depots-service-time}

#|
||**Excel field group**|**Attributes**|**Comments on entering data**|**Required field**||
||Service duration at start of route (sec) 

Service duration at end of route (sec) | `service_duration_s`;

`finish_service_duration_s` | When you fill it out, you have to take into account the time window of the [shift](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles-routes.md#shifts). 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, drivers work from 9:00 to 17:00. You need to allow 30 minutes for loading between runs. At the start of the route, the vehicles are already loaded. If the drivers depart at 9:00, schedule a shift from 8:30 to 17:00 and set `service_duration_s` to 1800 (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](https://yandex.kz/routing/doc/en/vrp/properties-of-depot.md#depot-service-duration) | No||
||Time allowance for reloading at cross dock | `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](https://yandex.kz/routing/doc/en/vrp/supported-use-cases.md#cross-docking) | No||
|#

### Depot throughput capacity {#depots-throughput}

#|
||**Excel field group**|**Attributes**|**Comments on entering data**|**Required field**||
||Depot capacity: 

– Kg/hour 

– 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](https://yandex.kz/routing/doc/en/vrp/properties-of-depot.md#depot-throughput) | No||
||Depot capacity (vehicles/hour) | `throughput.vehicle_count` or `throughput.vehicle_count.N.value`;

`throughput.vehicle_count.N.time_window` | You can use it to take into account the number of units available 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](https://yandex.kz/routing/doc/en/vrp/properties-of-depot.md#depot-throughput) | No||
||Penalties for the capacity violation: 

– Fixed penalty. 

– Per kg of excess depot capacity. 

– Per location where depot capacity is exceeded. 

– For breaching the number of vehicles during loading or unloading. | `penalty.throughput.fixed`;

`penalty.throughput.kg`;

`penalty.throughput.unit`;

`penalty.throughput.vehicle` | We recommend leaving these fields blank for your first routing runs. As you gain more experience, try using 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](https://yandex.kz/routing/doc/en/vrp/properties-of-depot.md#depot-throughput) | No||
|#
<!-- ||Staging throughput capacity, kg/hour | `package_throughput.kg_per_hour` или `package_throughput.kg_per_hour.N.value`; `package_throughput.kg_per_hour.N.time_window` | Задает максимальный вес, который можно подготовить к погрузке на складе за один час. Если максимальный вес зависит от времени, можно задавать разное значение параметра для временных окон. [Подробнее](https://yandex.kz/routing/doc/en/vrp/properties-of-depot.md#package-throughput) | Нет|| -->
<!-- ||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` | Для начальных запусков маршрутизации рекомендуется оставить эти поля пустыми. Далее можно использовать значения по умолчанию (`penalty.package_throughput.fixed` = 1000, `penalty.package_throughput.kg` = 50, `penalty.package_throughput.unit` = 100) и корректировать их, исходя из получаемых результатов. | Нет|| -->
<!-- ||Staging throughput capacity, cargo units/hour | `package_throughput.unit_per_hour` или `package_throughput.unit_per_hour.N.value`; `package_throughput.unit_per_hour.N.time_window` | Задает максимальное количество грузовых единиц, которое можно подготовить к погрузке на складе за один час. Можно задавать разное значение параметра для временных окон. [Подробнее](https://yandex.kz/routing/doc/en/vrp/properties-of-depot.md#сpackage-throughput) | Нет|| -->

### Other depot settings {#depots-other}

#|
||**Excel field group**|**Attributes**|**Comments on entering data**|**Required field**||
||Flexible route starting 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](https://yandex.kz/routing/doc/en/vrp/properties-of-depot.md#depot-flexible-start-time) | No||
||Behavior of route density settings | `use_in_proximity` | Taking depot into account when plotting dense routes. [Learn more](https://yandex.kz/routing/doc/en/vrp/grouping-routes.md) | No||
|#

{% cut "Parameters that are not supported in Excel" %}

- `preliminary_service_duration_s`
- `load_service_duration_s`
- `unload_service_duration_s`
- `preload_service_duration_s`
- `postload_service_duration_s`
- `package_throughput.kg_per_hour`
- `penalty.package_throughput.fixed`
- `package_throughput.units_per_hour.1.time_window`
- `penalty.package_throughput.unit`
- `package_throughput.kg_per_hour.1.time_window`
- `penalty.package_throughput.kg`
- `package_throughput.unit_per_hour`
- `package_throughput.unit_per_unit`
- `package_throughput.kg_per_hour.1.value`
- `package_throughput.units_per_hour.1.value`

{% endcut %}

## Incompatible_order_types sheet {#incompatible-order-types}

This sheet contains settings for [incompatible order types](https://yandex.kz/routing/doc/en/vrp/properties-of-orders.md#order-incompatibility). If you don't use order incompatibility (the `load_types` field on the **Orders** sheet), 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.

{% note info %}

If you list order types in the **incompatible_load_types** column as numbers separated by commas, make sure to add a space after each comma (for example, `1, 2`). Without the space, the `1,2` value may be interpreted as a decimal number. The compatibility rule won't work in this case.    

{% endnote %}

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 ||
|#

## Location_groups sheet {#location-groups}

This sheet contains settings for order groups. If you don't use order groups (the [options.location_groups](https://yandex.kz/routing/doc/en/vrp/grouping-locations.md) field), you may leave this sheet blank.

#|
||**Excel field group**|**Attributes**|**Comments on entering data**|**Required field**||
||Name of the order group | `title` | Name of the group. Doesn't affect planning and only serves for convenience when working with multiple groups | No||
||List of order IDs belonging to the group | `location_ids` | List of `IDs` of orders included in the group. Separated by commas. One order can only belong to 1 group | Yes||
||Solid group | `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](https://yandex.kz/routing/doc/en/vrp/grouping-locations.md) | No||
||Dependent group | `dependent` | Default value: FALSE. The TRUE value specifies that the group cannot be split: all orders in it must either be completed or (if at least one order can't be delivered) set to unassigned together. [Learn more](https://yandex.kz/routing/doc/en/vrp/grouping-locations.md) | No||
|#

## Options sheet {#options}

This sheet contains routing options. Options are entered in one 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 unassigned orders {#options-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](https://yandex.kz/routing/doc/en/vrp/routes-with-drops.md) | 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](https://yandex.kz/routing/doc/en/vrp/routes-with-drops.md) | No||
||Proportional drop penalty | `weighted_drop_penalty` | Default value: FALSE. We recommend using TRUE in scenarios where orders have significantly different weight or volume, and you use vehicles of different capacities (in particular, when the size of your fleet requires a high vehicle utilization rate if you want all orders to be delivered). | No||
||Penalty for service later than the time window | `penalize_late_service` | Default value: FALSE. We recommend setting the value to TRUE to increase the chances of the handling time fitting within the order window. [Learn more](https://yandex.kz/routing/doc/en/vrp/penalize-late.md) | No||
||Detailed information on the reasons for unassigned orders | `detailed_drop_reasons` | Default value: FALSE. If set to TRUE, the response returns detailed information on unassigned orders. [Learn more](https://yandex.kz/routing/doc/en/vrp/routes-with-drops.md#detailed-drop-reasons) | No||
|#

### For multi-orders {#options-multiorders}

#|
||**Excel field group**|**Attributes**|**Comments on entering data**|**Required field**||
||Combine orders into multi‑orders, TRUE/FALSE | `merge_multiorders` | We recommend setting it to TRUE: in most cases, that's the expected use case. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-orders.md#multi-orders) | No||
||Multi‑order waiting, TRUE/FALSE | `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](https://yandex.kz/routing/doc/en/vrp/grouping-locations.md#multi-orders) | No||
||Penalty for repeat multi‑order visits:

– Per address. 

– Per repeat multi‑order visit. 

– For repeat multi‑order visits per courier.| `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](https://yandex.kz/routing/doc/en/vrp/grouping-locations.md#multi-orders) | No||
|#

### For split orders {#options-split}

#|
||**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](https://yandex.kz/routing/doc/en/vrp/properties-of-orders.md#max-split-orders-percentage) | 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](https://yandex.kz/routing/doc/en/vrp/properties-of-orders.md#max-split-orders-percentage) | No||
|#

### For depots {#options-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 getting ready, set the TRUE value and specify the time when ready (`location.depot_ready_time`) along with the loading time (`location.depot_duration_s`). [Learn more](https://yandex.kz/routing/doc/en/vrp/load-when-ready.md) | No||
||Penalty for each unused starting, middle and ending depot|
`penalty.unused_depot.starting`;

`penalty.unused_depot.middle`;

`penalty.unused_depot.ending` | Penalty for each visited depot with no loaded and unloaded orders. | No||
|#

### For other locations {#options-points}

#|
||**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](https://yandex.kz/routing/doc/en/vrp/points-throughputs.md) | 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](https://yandex.kz/routing/doc/en/vrp/points-throughputs.md) | 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. As you gain more experience, try using 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||
|#

### For couriers and vehicles {#options-vehicles}

#|
||**Excel field group**|**Attributes**|**Comments on entering data**|**Required field**||
||Excluded geofences | `avoid_zones` | Areas that no courier is allowed to visit. [Learn more](https://yandex.kz/routing/doc/en/vrp/options-geozones.md#avoid-zones) | No||
||Excluded zones with time windows:

– Name of excluded zone.

– Time window for visit restrictions. | `avoid_zones_schedule.N.id`

`avoid_zones_schedule.N.schedule.N` | Areas that no courier is allowed to visit within the specified time periods. [Learn more](https://yandex.kz/routing/doc/en/vrp/options-geozones.md#avoid-zones) | No||
||Enable vehicle classes for trucks| `enable_vehicle_classes` | If enabled, class 21 specifications are used to calculate the truck capacity. Default value: TRUE. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles.md#vehicle-properties) | No||
||Fix planned shifts | `fix_planned_shifts` | You can use it to fix the courier shifts that are set in `planned_route`. Default value: FALSE. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles-routes.md#planned-route) | No||
||Allocation of problem orders | `haversine_fallback` | With this option enabled, orders in an excluded geofence are planned, but the route segment length is calculated as five times the direct distance. Default value: FALSE. [Learn more](https://yandex.kz/routing/doc/en/vrp/options-geozones.md#haversine-fallback) | No||
||Take into account the minimum number of stops only for vehicles in use | `ignore_min_stops_for_unused` | Use it when you need to optimize the number of vehicles on the route and if there's a requirement for a minimum number of stops. Default value: FALSE. [Learn more](https://yandex.kz/routing/doc/en/vrp/optimization-count.md) | No||
||Incompatible geofences | `incompatible_zones.N` | Geofences that the vehicle or courier can't visit on the same run. [Learn more](https://yandex.kz/routing/doc/en/vrp/options-geozones.md#incompatible-zones) | No||
||Transportation method for all couriers | `routing_mode` | Entered only if all vehicles/couriers use the same transportation method. If different transportation methods are used, the respective parameter is set separately for each vehicle. [Learn more](https://yandex.kz/routing/doc/en/vrp/routing-mode.md) | No||
||Break template | `template_rest_schedules.N.` | Enables you to describe breaks for each courier separately or create templates for multiple couriers or for a shift. To create a template, specify an array of schedules in the `template_rest_schedules` parameter. [Learn more](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles-rest-schedule.md#template-rest-shedule) | No||
|#

### For routes {#options-routes}

#|
||**Excel field group**|**Attributes**|**Comments on entering data**|**Required field**||
||Group ID. 

Penalties:

– Per hour of deviation from the average route time. 

– For deviation from the average number of stops. 

– For deviating from the average route for `custom_value`. 

– Per kilometer of deviation from the average route length. 

– For deviation from the average number of orders. 

– For deviation from the average number of units on the route. 

– For deviation from the average route mass. 

– Ignore unused vehicles for penalty calculations. |
 `balanced_groups.N.penalty.hour`;

`balanced_groups.N.penalty.stop`;

`balanced_groups.N.penalty.custom_value`;

`balanced_groups.N.penalty.km`;

`balanced_groups.N.penalty.served_order`;

`balanced_groups.N.penalty.unit`;

`balanced_groups.N.penalty.weight_kg`;

`balanced_groups.N.penalty.ignore_unused_vehicles` | We recommend that you leave the default values and don't use these settings in your first routing runs. If you need routes with a more even distribution, you can fill out the balanced groups using the default values at first. Then you can gradually change the settings based on the results. You can specify multiple balanced groups. Enter the values in one row as follows: first, the field group with the `balanced_groups.0` prefix, then `balanced_groups.1`, `balanced_groups.2`, and so on. [Learn more](https://yandex.kz/routing/doc/en/vrp/balanced-groups.md) | No||
||Minimize risk of delays | `minimize_lateness_risk` | We recommend leaving it as FALSE (default value) and not using it for initial routing runs. [Learn more](https://yandex.kz/routing/doc/en/vrp/minimize-lateness-risk.md) | No||
||Global route density factor | `global_proximity_factor` | We recommend leaving it as 0 (default value) and not using it in your first routing runs. Value range: 0 to 10. The higher the value, the denser the routes. [Learn more](https://yandex.kz/routing/doc/en/vrp/grouping-routes.md) | No||
||Order location proximity factor | `proximity_factor` | We recommend leaving it as 0 (default value) and not using it in your first routing runs. If you need to achieve higher grouping on your routes, you can gradually increase this value by a small step (for example, 0.1). If the geography of locations is naturally spread out (for example, a city and the outlying region), we don't recommend using values over 0.5. [Learn more](https://yandex.kz/routing/doc/en/vrp/grouping-routes.md) | No||
|#

### Other options {#options-other}

#|
||**Excel field group**|**Attributes**|**Comments on entering data**|**Required field**||
||Matrix route builder | `matrix_router` | Defines the algorithm used for planning routes. Default value: `main` in Russia, Turkey, and CIS countries. For other countries, the value is `global`. To calculate the distance directly, without taking traffic into account, use `geodesic`. | No||
||Post‑optimization| `post_optimization` | Default value: FALSE. We recommend changing the value to TRUE when using balancing with high penalties or geographic grouping with a high `global_proximity_factor`. [Learn more](https://yandex.kz/routing/doc/en/vrp/post-optimization.md) | No||
||Re-optimization for allocated orders if there are unallocated orders | `restart_on_drop` | Restart the planning task if many orders remain unassigned. Default value: FALSE. [Learn more](https://yandex.kz/routing/doc/en/vrp/routes-with-drops.md#restart-on-drop) | No||
|#


{% cut "Parameters that are not supported in Excel" %}

- `close_location_groups_radius_m`
- `penalty.close_location_groups.per_extra_point`
- `penalty.close_location_groups.per_extra_vehicle`
- `penalty.close_location_groups.per_extra_visit`
- `close_locations_during_post_optimization_only`
- `template_rest_schedules.breaks`
- `template_rest_schedules.breaks.penalty.early.fixed`
- `template_rest_schedules.breaks.penalty.late.fixed`
- `template_rest_schedules.breaks.penalty.early.minute`
- `template_rest_schedules.breaks.penalty.late.minute`
- `penalty.small_order_part_before_big.scaled`
- `ignore_zones`
- `max_depot_load_range_days`
- `max_total_vehicles_custom_value`
- `penalty.vehicles_custom_values_excess.fixed`
- `penalty.vehicles_custom_values_excess.per_value`

{% endcut %}

## Routes sheet {#routes} 

Fill this sheet out in the following situations:

- When you need to use the results of previous planning in current planning (see [Additional route planning](https://yandex.kz/routing/doc/en/vrp/supported-use-cases.md)). This sheet repeats the situation with additional planning, when the vehicles haven't left the depot yet.

- When you need to simulate a planning that is already ready, such as a logistics planning, or calculate the metrics for the planning. Note that by default, the algorithm will optimize the order sequence specified for this vehicle ID.

If you need to take the order sequence into account, use the `vehicle.fixed_planned_route` = `true` option (see the section [Planned route](https://yandex.kz/routing/doc/en/vrp/properties-of-vehicles-routes.md#planned-route)). Then the order of the rows will be important: for this vehicle ID, it will be assumed that orders are delivered in the same sequence as they are listed: from top to bottom.

#|
||**Excel field group**|**Attributes**|**Comments on entering data**|**Required field**||
||Vehicle ID | `vehicle_id` | ID of the vehicle/courier for which the set of assigned orders is defined. | Yes (if the Routes sheet is used)||
||Shift number | `shift_index` | The number of the shift that is used in the Excel template (0, 1, 2…) | Yes (if the Routes sheet is used)||
||Order ID  | `location_id` | ID of the order that was assigned to this vehicle or courier. | Yes (if the Routes sheet is used)||
||Route starting time | `start_time` | Filled out only for the first order. The start time to be used for this route. You may leave it blank, then the time is selected based on the other planning parameters. | No||
|#

<!-- source: en/vrp/_includes/feedback.md -->
<a href="feedback">
  <span class="button">Contact support</span>
</a>


<!-- endsource: en/vrp/_includes/feedback.md -->
