# Логика прогнозов

### <span style="color: rgb(0, 0, 0);">Прогноз для последней мили:</span>

<span style="color: rgb(0, 0, 0);">Прогнозы по сборке и доставке строятся с шагом 1 час и охватывают период в 14 дней вперёд.</span>

##### <span style="color: rgb(0, 0, 0);">Обычный прогноз.</span>

<span style="color: rgb(0, 0, 0);">Основан на данных о сборке и доставке, где каждый заказ привязан к ТТ.</span>

<span style="color: rgb(0, 0, 0);">Данные загружаются в БД Ally из БД MS SQL через **Node-RED**.</span>

##### <span style="color: rgb(0, 0, 0);">Зональный прогноз.</span>

<span style="color: rgb(0, 0, 0);">Основан на данных о сборке и доставке, где каждый заказ привязан к ТТ, и на статистике распределения адресов по зонам той или иной ТТ.</span>

<span style="color: rgb(0, 0, 0);">На основе геозон ТТ формируются сводные буферы, по которым рассчитываются вероятности выполнения заказов конкретной ТТ, исходя из статистики за последние 7 дней.</span>

<span style="color: rgb(0, 0, 0);">Вся история заказов автоматически сопоставляется с текущими геозонами, что позволяет обучать модель так, как будто эти зоны всегда были такими. Это также даёт возможность строить прогнозы для новых ТТ с недостаточной историей данных.</span>

---

### <span style="color: rgb(0, 0, 0);">Прогноз для розницы</span>

<span style="color: rgb(0, 0, 0);">Прогноз по трудоёмкости строится с шагом 1 день и охватывает 21 день вперёд.</span>

<span style="color: rgb(0, 0, 0);">Основан на оценке трудоёмкости, которая загружается во временной ряд 51 через **Node-RED**.</span>

---

### Расчёт требуемого количества сборщиков

Прогноз трудоёмкости сборщиков автоматически пересчитывается в требуемое количество сборщиков. Расчёт выполняется по следующему алгоритму:

1. **Оценка скорости сборки сотрудников**  
    Для каждого сотрудника рассчитывается средняя скорость сборки на основе фактических данных за последний месяц. Скорость выражается в количестве строк, которые сотрудник собирает в час.
2. **Расчёт плановой производительности**  
    Для каждого часа прогнозируемого периода рассчитывается ожидаемое количество собранных строк на основе списка запланированных сборщиков и их индивидуальной скорости работы.
3. **Сравнение с прогнозом**  
    Вычисляется разность между прогнозируемым количеством строк на сборку и плановой производительностью сборщиков.
4. **Корректировка численности**  
    Разность преобразуется в дополнительное или избыточное количество сотрудников. Для этого используется средняя скорость сборки по всем сборщикам на данной торговой точке.
5. **Вывод итогового количества**  
    Полученное число используется для формирования рекомендаций: сколько сотрудников необходимо добавить или убрать из смены в конкретный час.

Для подсчета скорости сборки заказов используется подход средней скорости сборки которая рассчитывается как количество собранных строк в течение одного часа (строки / час).

---

### Расчет требуемого количества курьеров

Прогноз по требуемому количеству курьеров можно описать формулой:

<span style="font-size: 12.0pt; line-height: 115%; font-family: 'Calibri',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: RU; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">![](https://bookstack.ally.software/uploads/images/gallery/2025-08/embedded-image-0kqglfmf.png)</span>

Где:

<span style="font-size: 12.0pt; line-height: 115%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: RU; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">t — Конкретный час, о котором идёт речь</span>

<span style="font-size: 12.0pt; line-height: 115%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: RU; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">Dt — Сколько заказов на доставку ожидается в этот час</span>

<span style="font-size: 12.0pt; line-height: 115%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: RU; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">Nt — Сколько людей уже поставили смену на этот час</span>

**![](https://bookstack.ally.software/uploads/images/gallery/2025-08/embedded-image-im2x2hgz.png)** — <span style="font-size: 12.0pt; line-height: 115%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: RU; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">Средняя скорость работы i-го человека, записавшегося в смену</span>

![](https://bookstack.ally.software/uploads/images/gallery/2025-08/embedded-image-qbkb5ame.png)— <span style="font-size: 12.0pt; line-height: 115%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: RU; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">Средняя скорость по всем курьерам на точке</span>

<span style="font-size: 12.0pt; line-height: 115%; font-family: 'Aptos',sans-serif; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: RU; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;">Rt — Сколько работников нужно вывести в итоге в этот час</span>