{
  "proof": {
    "id": 45,
    "buyerLabel": "Оптовикам — разработка планирования запасов",
    "deliverableTitle": "Рекомендация закупки с упаковками",
    "deliverableDescription": "Потребность периода, своевременные поступления и округление до кратности.",
    "pilotInputs": [
      "Потребность за согласованный период",
      "Свободные остатки и подтверждённые даты поставок",
      "Кратности упаковок и минимумы поставщика"
    ],
    "pilotAcceptance": "Рекомендация сверяется с ручным расчётом; поздняя поставка не уменьшает дефицит периода.",
    "scenario": {
      "title": "Поступление к нужной дате",
      "before": "ЗП-045: нужно 60, свободно 18, подтверждено к сроку 24, кратность 6.",
      "conflict": "Поступление к сроку уменьшилось до 12: дефицит вырос с 18 до 30.",
      "decision": "Пересчитать закупку: 30 единиц, то есть 5 упаковок по 6.",
      "after": "Рекомендация 30 вместо 18; период и учтённые поступления раскрыты."
    }
  },
  "version": "0.4",
  "status": "Проект для согласования",
  "solutionId": 45,
  "slug": "stock-replenishment",
  "title": "Планирование пополнения запасов",
  "goal": "Планируйте закупку с учётом запасов и ожидаемых поставок",
  "buyer": "Руководитель закупок оптовика или сети.",
  "system": "Товарный учёт / CRM",
  "reviewer": "Менеджер и ответственный за справочники",
  "entities": "Артикул, единица, количество",
  "phases": [
    {
      "title": "Разобрать ваш процесс",
      "description": "Ходовой товар заканчивается, а бюджет занят медленными позициями.",
      "work": "Сверяем исходные примеры, роли и исключения. Фиксируем один сценарий пилота.",
      "result": "Схема процесса и согласованный состав первой версии."
    },
    {
      "title": "Собрать рабочий прототип",
      "description": "Проверка исходных данных.",
      "work": "Показываем интерфейс и правила на согласованной выборке. Проверяем неоднозначные случаи с вашей командой.",
      "result": "Объяснимые рекомендации."
    },
    {
      "title": "Подключить данные",
      "description": "История продаж и остатков.",
      "work": "Сначала проверяем доступные выгрузки и интерфейсы. Если обмен возможен, согласуем поля, направления и права записи.",
      "result": "Подтверждённый способ обмена либо согласованный импорт. Если интерфейса нет — зафиксированное ограничение и решение о следующем шаге."
    },
    {
      "title": "Проверить в работе",
      "description": "Результат воспроизводится по формуле.",
      "work": "Проводим контрольные сценарии, обучаем ответственных, передаём документацию и порядок восстановления.",
      "result": "Проект закупки с корректировками."
    }
  ],
  "mapping": [
    {
      "field": "Потребность за выбранный учебный период",
      "type": "number",
      "unit": "шт.",
      "example": "60",
      "rule": "Правило и обязательность подтверждаются на ваших исходниках."
    },
    {
      "field": "Свободный остаток на начало периода",
      "type": "number",
      "unit": "шт.",
      "example": "18",
      "rule": "Правило и обязательность подтверждаются на ваших исходниках."
    },
    {
      "field": "Подтверждённое поступление к нужной дате периода",
      "type": "number",
      "unit": "шт.",
      "example": "24",
      "rule": "Правило и обязательность подтверждаются на ваших исходниках."
    },
    {
      "field": "Кратность",
      "type": "number",
      "unit": "шт.",
      "example": "6",
      "rule": "Правило и обязательность подтверждаются на ваших исходниках."
    }
  ],
  "flow": [
    {
      "label": "Ваши исходники",
      "text": "История продаж и остатков."
    },
    {
      "label": "Правила и интерфейс",
      "text": "Сроки и сезонность"
    },
    {
      "label": "Проверка сотрудником",
      "text": "Менеджер и ответственный за справочники"
    },
    {
      "label": "Результат в работе",
      "text": "Проект закупки с корректировками."
    }
  ],
  "scope": [
    "Проверка исходных данных.",
    "Объяснимые рекомендации.",
    "Проект закупки с корректировками."
  ],
  "inputs": [
    "История продаж и остатков.",
    "Поступления, резервы и сроки.",
    "Минимумы, кратность и сезонные события."
  ],
  "acceptance": [
    "Результат воспроизводится по формуле.",
    "Кратность соблюдается или отмечается.",
    "Отсутствие товара и пробелы данных видны."
  ],
  "boundary": "Будущий спрос не гарантируется; новинки и акции проверяет закупщик.",
  "budgets": [
    [
      50,
      100
    ],
    [
      160,
      350
    ],
    [
      350,
      700
    ]
  ],
  "group": "process",
  "openQuestions": [
    "Есть история продаж и отсутствия товара?",
    "Как учитываете поставки в пути?",
    "Какие системы, версии и способы выгрузки используются сейчас?",
    "Кто подтверждает результат и кому разрешено менять правила?"
  ],
  "failureCases": [
    "Неполные или некорректные вводные: показать конкретные поля, не выдавать успешный результат.",
    "Неоднозначное соответствие или редакция: передать ответственному на проверку.",
    "Повторная отправка: исключить повторное создание по согласованному идентификатору.",
    "Недоступный внешний источник: сохранить состояние, показать ошибку и согласованный повтор.",
    "Изменение подтверждённых вводных: новая редакция и повторное подтверждение."
  ],
  "rights": [
    "Просмотр — только разрешённые записи и результаты.",
    "Исполнение — ввод и исправление в пределах назначенных задач.",
    "Согласование — подтверждение результата и возврат с причиной.",
    "Администрирование — пользователи, справочники и версии правил."
  ],
  "custom": "Возможна разработка отдельного решения под уникальный процесс, собственные правила, интерфейсы и инфраструктуру компании."
}