{
  "proof": {
    "id": 61,
    "buyerLabel": "Кафе и столовым — разработка расчёта сырьевой стоимости",
    "deliverableTitle": "Изменение сырьевой стоимости порции",
    "deliverableDescription": "Масса ингредиента, источник закупочной цены и вклад изменения по техкарте.",
    "pilotInputs": [
      "Техкарты одной группы блюд",
      "Закупочные цены с датами и единицами",
      "Правила массы и учитываемых затрат"
    ],
    "pilotAcceptance": "Сырьевая стоимость совпадает с ручным расчётом; труд и накладные явно исключены.",
    "scenario": {
      "title": "Рост цены одного ингредиента",
      "before": "БЛ-061: 0,1 кг ×40 ₽/кг +20 ₽ другого сырья =24 ₽/порция.",
      "conflict": "При 60 ₽/кг сырьевая стоимость становится 26 ₽, рост 2 ₽.",
      "decision": "Открыть строку ингредиента, массу и дату цены; передать изменение технологу.",
      "after": "Видны 26 ₽ сырья на порцию; полная себестоимость и прибыль не рассчитаны."
    }
  },
  "version": "0.4",
  "status": "Проект для согласования",
  "solutionId": 61,
  "slug": "menu-cost",
  "title": "Себестоимость меню",
  "goal": "Проверяйте влияние закупочных цен на себестоимость блюда",
  "buyer": "Собственник кафе, шеф-повар или управляющий небольшой ресторанной сети.",
  "system": "Учёт размещения / заказов",
  "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": "0.1",
      "rule": "Правило и обязательность подтверждаются на ваших исходниках."
    },
    {
      "field": "Старая цена",
      "type": "number",
      "unit": "₽/кг",
      "example": "40",
      "rule": "Правило и обязательность подтверждаются на ваших исходниках."
    },
    {
      "field": "Новая цена",
      "type": "number",
      "unit": "₽/кг",
      "example": "50",
      "rule": "Правило и обязательность подтверждаются на ваших исходниках."
    },
    {
      "field": "Прочее сырьё",
      "type": "number",
      "unit": "₽/порция",
      "example": "20",
      "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": "Возможна разработка отдельного решения под уникальный процесс, собственные правила, интерфейсы и инфраструктуру компании."
}