21. Анализ плана закупок — метрики и рекомендации для фин. директора
Date: 2026-02-08
Status
Accepted
Context
Требование: построить метрики для анализа работы отдела закупки и предложить рекомендации на основе расчётов.
Decision
Метрики (блок metrics в analize):
- budget — planned_sum (сумма по we_buy офферам плана), ordered_sum (заказы по tree_id), supplied_sum (поставки по tree_id).
- overdue — количество просроченных дат поставки, общее количество дат, доля просроченных (%).
- concentration — число контрагентов по принятым офферам, доля топ-1 и топ-3 по сумме (%).
- offer_conversion_percent — доля принятых (we_buy) офферов от всех офферов по плану.
Рекомендации (массив строк по порогам):
- Исполнение плана < 90% → «Увеличить исполнение плана: расширить пул поставщиков или сроки размещения заказов».
- Экономия < 0 (перерасход) → «Перерасход относительно исторической базы: ревизия цен и переговоры».
- Доля просроченных поставок ≥ 20% → «Улучшить контроль сроков поставки и приоритизацию».
- Доля топ-1 поставщика ≥ 50% → «Снизить риски: диверсифицировать поставщиков».
- Конверсия офферов < 30% → «Оптимизировать процесс согласования офферов или условия закупки».
- Если ни один порог не сработал → «Показатели в норме. Продолжать текущую практику.»
Пороги вынесены в константы класса сервиса (при необходимости можно перенести в настройки).
Обоснование
- Практика для фин. директора — бюджет, сроки, концентрация и конверсия покрывают основные риски закупок.
- Автоматизация выводов — рекомендации избавляют от ручной интерпретации порогов.
- Расширяемость — добавление новых метрик и правил не меняет контракт API, только содержимое блоков.
Consequences
- (+) Один ответ API даёт и цифры, и подсказки по действиям.
- (-) Пороги зашиты в код; при смене политики нужна правка констант или вынос в конфиг.
Источник: backend/narmak_v2/app/document/ADR.md (ADR-006)