Skip to content

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% → «Оптимизировать процесс согласования офферов или условия закупки».
  • Если ни один порог не сработал → «Показатели в норме. Продолжать текущую практику.»

Пороги вынесены в константы класса сервиса (при необходимости можно перенести в настройки).

Обоснование

  1. Практика для фин. директора — бюджет, сроки, концентрация и конверсия покрывают основные риски закупок.
  2. Автоматизация выводов — рекомендации избавляют от ручной интерпретации порогов.
  3. Расширяемость — добавление новых метрик и правил не меняет контракт API, только содержимое блоков.

Consequences

  • (+) Один ответ API даёт и цифры, и подсказки по действиям.
  • (-) Пороги зашиты в код; при смене политики нужна правка констант или вынос в конфиг.

Источник: backend/narmak_v2/app/document/ADR.md (ADR-006)