---
metadata:
  - name: generator
    content: Diplodoc Platform v5.52.0
alternate:
  - https://yandex.kz/routing/doc/kk/billing/calculations.md
  - https://yandex.kz/routing/doc/ru/billing/calculations.md
  - href: kk/billing/calculations.md
    type: text/markdown
    title: Markdown version
  - href: llms.txt
    type: text/markdown
    title: llms.txt
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.kz/routing/doc/kk/llms.txt

# Подсчет количества машин и заказов

## Мониторинг {#calc-monitoring}

Утром каждого дня анализируются все маршруты с&nbsp;датой `route.date`, равной вчерашнему дню.

При тарификации по&nbsp;машинам подсчитывается количество уникальных машин `vehicle.id` в&nbsp;этих маршрутах и&nbsp;формируется значение счетчика «Мониторинг: количество ТС».

При тарификации по&nbsp;заказам подсчитывается количество уникальных выполненных заказов `location.id` и&nbsp;формируется значение счетчика «Мониторинг: количество заказов».

Эти счетчики доступны в&nbsp;[Кабинете разработчика](https://developer.tech.yandex.ru/) в&nbsp;разделе «Статистика».

![](_images/statistics-monitoring.png).

## Планирование {#calc-planning}

Сервис Планирования решает два типа задач:

- оптимальное распределение заказов и&nbsp;планирование маршрутов для нескольких курьеров (задачи [MVRP](https://yandex.ru/routing/doc/ru/vrp/redoc/index.html#tag/Multiple-Vehicles-Routing-(MVRP)));
- оптимизация последовательности выполнения заказов на&nbsp;маршруте для одного курьера (задачи [SVRP](https://yandex.ru/routing/doc/ru/vrp/redoc/index.html#tag/SingleVehicleRouting)).

Подробнее см. в&nbsp;разделе [Сравнение групп методов MVRP и SVRP](https://yandex.kz/routing/doc/kk/vrp/mvrp-svrp-specifics.md). Тарифы на&nbsp;эти два вида задач могут различаться. Для тарификации подсчитывается и&nbsp;количество машин, и&nbsp;количество выполненных заказов в&nbsp;трех разрезах:

- для всех задач;
- только для задач MVRP;
- только для задач SVRP.

Результаты можно видеть в&nbsp;счетчиках «Планирование: количество ТС» и&nbsp;«Планирование: количество заказов» в&nbsp;[Кабинете разработчика](https://developer.tech.yandex.ru/) в&nbsp;разделе «Статистика».

![](_images/statistics-planning.png).

### Определение даты {#calc-dates}

Каждое утро выставляются счета по&nbsp;задачам с&nbsp;датой `options.date`, равной вчерашнему дню, за&nbsp;исключением следующих случаев:

- в&nbsp;момент запроса дата маршрута не&nbsp;была указана;
- в&nbsp;момент запроса была указана дата маршрута в&nbsp;прошлом;
- в&nbsp;момент запроса была указана дата маршрута в&nbsp;будущем более чем через 7 дней от&nbsp;даты запроса.

Такие задачи будут учтены биллингом на&nbsp;дату выполнения запроса.

Рекомендуется планировать задачи на&nbsp;сегодняшний или&nbsp;завтрашний день либо не&nbsp;более чем на&nbsp;7 дней вперед&nbsp;— в&nbsp;этом случае задачи будут учтены биллингом &nbsp;день, указанный в&nbsp;поле `options.date`.


{% note warning %}

Мы настоятельно рекомендуем указывать в&nbsp;поле `options.date` реальную дату поездки курьера. Это позволит не&nbsp;только избежать неправильно выставленных счетов, но и&nbsp;получать максимально корректные и&nbsp;оптимально спланированные маршруты, так как в&nbsp;разные дни маршруты могут существенно различаться.

{% endnote %}


### Подсчет количества заказов {#calc-orders}

При подсчете количества заказов в&nbsp;маршрутах анализируются все элементы массива `locations`. Из&nbsp;них исключаются все элементы с&nbsp;типами `garage`, `anchor` и&nbsp;`parking`. Затем исключаются одинаковые заказы&nbsp;— те, у&nbsp;которых совпадают координаты (с&nbsp;точностью до&nbsp;6 знака), поля `location.id` и&nbsp;`location.type`. Оставшееся количество заказов записывается в&nbsp;счетчик «Планирование: количество заказов».


{% note info %}

<!-- source: kk/billing/_includes/index/id-specifics/what-is-order.md -->
Сложные заказы `pickup&delivery` (необходимо сначала забрать заказ в&nbsp;одной или&nbsp;нескольких точках, а&nbsp;затем доставить в&nbsp;точку получения) тарифицируются как несколько заказов&nbsp;— по&nbsp;количеству разных точек.
<!-- endsource: kk/billing/_includes/index/id-specifics/what-is-order.md -->

{% endnote %}



{% note warning %}

Не&nbsp;рекомендуется использовать в&nbsp;поле `location.id` какие-либо теги или&nbsp;другие вставки, уникальные для конкретной задачи, иначе один и&nbsp;тот же заказ будет посчитан несколько раз.

{% endnote %}


### Подсчет количества машин {#calc-vehicles}

При подсчете количества машин в&nbsp;маршрутах анализируются все элементы массива `locations`. Из&nbsp;них исключаются все элементы с&nbsp;типами `garage`, `anchor` и&nbsp;`parking`. Задачи со&nbsp;схожими множествами заказов объединяются в&nbsp;кластеры&nbsp;— это позволяет не&nbsp;тарифицировать повторно задачи, которые решались несколько раз с&nbsp;различным набором условий (см. [Особенности тарификации](https://yandex.kz/routing/doc/kk/billing/index.md#specifics)).

Если задача меньшего размера (по&nbsp;числу заказов) хотя бы на 50% пересекается с&nbsp;большей, эти задачи будут отнесены в&nbsp;один кластер. При этом в&nbsp;итоге в&nbsp;один кластер могут быть отнесены задачи, вообще не&nbsp;имеющие общих точек. Например, на&nbsp;рисунке ниже задача 1 и&nbsp;задача 3 не&nbsp;имеют ни&nbsp;одного общего заказа, но при этом попадают в&nbsp;общий кластер с&nbsp;задачей 2.

![](_images/billing-clusters.svg)

В&nbsp;каждом кластере выбирается задача, в&nbsp;которой используется наибольшее количество машин. Эти значения суммируются по&nbsp;всем кластерам, и&nbsp;получившееся количество машин записывается в&nbsp;счетчик «Планирование: количество ТС».


{% note info %}

При подсчете учитываются именно используемые машины, а&nbsp;не&nbsp;все перечисленные в&nbsp;запросе.

{% endnote %}

<!-- source: kk/billing/_includes/style-for-page.md -->

<!-- endsource: kk/billing/_includes/style-for-page.md -->
