Skip to content

План: смета проекта целиком и разбор ТЗ нейросетью ​

Дата: 2026-09-30. Статус: ответы на вопросы получены (раздел 6, память проекта); этап 1 (разбор ТЗ) сделан 2026-09-30, дальше — полное ТЗ на смету, бюджет и документы.

Цель: в смету попадает всё, из чего складывается цена проекта для клиента — оборудование, перевозки, командировки, работа команды, подрядчики, произвольные строки, наценки, скидки, резерв и налоги. ТЗ клиента разбирает нейросеть: менеджер получает понятный разбор, заполненную форму ТЗ, файл для команды и предложенные строки сметы.


1. Почему сейчас в смету попадают только «какие-то статьи» ​

Отдельной сметы в системе нет. «Смета» — это плановые суммы статей бюджета (project_cost_items.planned_amount) по 12 категориям, сверху наценка markup_percent, УСН и НДС (GET /projects/:id/budget). Плановые статьи пишут только четыре механизма:

ЧтоПопадает ли в сметуПочему
Оборудование проекта (вкладка «Оборудование»)нетвкладка хранит потребность и цены (project_equipment_requirements), но статей бюджета не пишет; её итоги «по базовым ценам», «цены проекта», НДС считаются во фронте и с бюджетом не связаны
Своё оборудование со склада по ставке арендынетв бюджет попадают только закупка и субаренда, и то после согласования финансами
Перевозкитолько после согласования финансамипока проект в пресейле, в смете их нет
Командировкиплановая сумма только при созданииправка командировки плановую сумму не меняет
Работа командытолько часы из сметы по ТЗ × ставка отделафактические часы пишутся как факт без плана и в смету не идут; ставок по должности и персональных нет; процентов нет
Произвольные строкитолько статья целикомнет количества, единицы, цены за единицу, названия для клиента

Кроме того:

  • двойной счёт: плановые суммы разных источников складываются в одной категории — смета по ТЗ tech плюс закупка по логистике tech, смета по ТЗ logistics плюс перевозки;
  • три формулы аренды: в заявке на оборудование (коэффициенты по дням), в логистике (цена × количество без дней), во фронте (округлённые дни);
  • два смысла «наценки»: цена проекта минус базовая цена на вкладке оборудования и markup_percent бюджета — сервер может наценить дважды;
  • документ сметы для клиента показывает строку «Наценка», фактические суммы и заметки вида «4 ч × 2500»; сумма строк может не совпасть с итогом;
  • НДС берётся с реквизитов плательщика проекта; если плательщик не выбран — без НДС, даже если у нашей компании НДС есть;
  • УСН добавляется сверху процентом от суммы, а не «гроссапом», и не покрывает налог полностью;
  • плановый бюджет проекта (projects.planned_budget) вводится руками и с итогом сметы не связан.

2. Как должно быть ​

2.1 Смета — отдельный документ проекта с версиями ​

  • Смета (project_estimates): проект, номер версии, статус (черновик → отправлена клиенту → согласована / отклонена → архив), связь с версией ТЗ, настройки налогов на момент версии, итоги.
  • Строки сметы (project_estimate_lines):
    • раздел: оборудование, перевозки, командировки, команда, подрядчики, материалы, креатив, прочее, свои разделы;
    • источник: оборудование проекта, перевозка, командировка, строка сметы по ТЗ, участник команды, вручную;
    • название для клиента и внутренний комментарий;
    • количество, единица, дни или часы;
    • себестоимость за единицу и итого;
    • наценка строки (по умолчанию — наценка раздела);
    • цена для клиента;
    • флаги «скрыть от клиента» (внутренняя строка) и «зафиксировано вручную» (сбор из проекта её не перезапишет);
    • порядок.
  • Процентные строки: «агентское вознаграждение 10 % от суммы», «налоги на ФОТ 30 % от команды», «резерв на риски 15 %» — база процента выбирается (вся смета, раздел, строки).
  • Скидка клиенту — процентом или суммой, на смету или раздел.

2.2 Один расчётный движок на сервере ​

Порядок: себестоимость строк → наценки → процентные строки → скидка → резерв → УСН → НДС → итого клиенту. Считаются и показываются маржа в рублях и процентах.

Расчёт в money.Money, округление до копеек, одна реализация на сервере с тестами на примерах из практики. Фронт только показывает результат — никаких параллельных расчётов, как сейчас на вкладке оборудования.

2.3 «Собрать из проекта» ​

Кнопка заполняет черновик сметы из того, что уже есть в проекте:

  • Оборудование:
    • своё со склада — ставка аренды из каталога × дни с коэффициентами за длительность (одна формула на всю систему) × количество;
    • субаренда и закупка — цена поставщика;
    • сопоставление с каталогом, чего нет — строкой вручную.
  • Перевозки — плановая стоимость операций; если перевозок ещё нет — оценочная строка по тарифу («доставка на площадку и обратно»).
  • Командировки — плановая стоимость: билеты, жильё, суточные.
  • Команда — часы из сметы по ТЗ или состав команды × ставка; ставка по приоритету: персональная → должности → отдела.
  • Процентные строки и подрядчики — из шаблона сметы компании.

Повторный сбор показывает, что изменилось с прошлого раза, и не трогает строки, исправленные вручную.

2.4 Смета ↔ бюджет ​

Согласованная версия сметы становится планом бюджета:

  • плановые статьи по категориям пишутся из неё и заменяют текущие «смета из ТЗ → бюджет»;
  • у каждой плановой суммы ровно один источник — двойного счёта нет;
  • плановый бюджет проекта = итог сметы для клиента.

Факт по-прежнему приходит из перевозок, командировок, часов и платежей. Вкладка бюджета показывает план из сметы против факта по тем же разделам.

2.5 Документ для клиента ​

PDF и Excel из версии сметы:

  • разделы и названия для клиента;
  • без себестоимости и внутренних строк;
  • наценка — внутри цен (по настройке — отдельной строкой);
  • скидка и налоги по режиму: НДС отдельной строкой или «в том числе»;
  • реквизиты нашей компании и клиента.

Документ сохраняется за версией. Отправка клиенту переводит версию в «отправлена».

2.6 Налоги ​

  • НДС: режим и ставка проекта → реквизиты плательщика → основные реквизиты нашей компании.
  • УСН: на выбор — надбавка сверху (как сейчас) или гроссап, чтобы после уплаты осталась нужная сумма.
  • Статья «налоги» не облагается повторно.

2.7 ТЗ разбирает нейросеть ​

  1. Менеджер загружает ТЗ клиента — PDF, DOCX, XLSX, фото, скан — или вставляет текст письма. Файлы читаем тем же механизмом, что уже работает для реквизитов: текстовый слой, иначе страницы картинками.

  2. Разбор ТЗ — понятная карточка для менеджера:

    • мероприятие: цель, формат, даты, площадка, число гостей;
    • программа по дням;
    • оборудование списком с количеством, сопоставленное с каталогом: что есть на складе, чего нет;
    • персонал и подрядчики;
    • логистика и командировки;
    • особые требования;
    • неясности и вопросы клиенту — отдельным списком, их можно скопировать в письмо.
  3. Разбор заполняет форму новой версии ТЗ (цель, формат и площадка, оснащение, сроки монтажа, требования) и хранится вместе с версией.

  4. Файл «ТЗ для команды» (PDF/DOCX) — разбор в нашем оформлении, с исходным файлом клиента во вложении.

  5. Строки сметы из разбора:

    • оборудование, найденное в каталоге, — с количеством и днями;
    • работа команды — блоками с часами;
    • перевозки и командировки — оценкой.

    Менеджер принимает их построчно в черновик сметы.

Ошибки помощника — понятным текстом, что сделать («Мало данных: приложите файл ТЗ или опишите мероприятие»), без «ответил непонятно». Первая часть этого исправления уже выкачена 2026-09-30: ответы со списками больше не отбрасываются.


3. Права ​

  • Себестоимость, наценки и маржа видны при costs / earnings_margin.
  • Цены для клиента — при client_budget.
  • Сотрудник без прав на деньги видит смету без сумм, как сейчас бюджет.
  • Отправить смету клиенту и согласовать версию — менеджер проекта и финансы.

4. Этапы ​

ЭтапЧто получает менеджерОценка
1. Разбор ТЗ нейросетью ✅загрузил ТЗ — видит разбор, вопросы клиенту, заполненную форму ТЗ и файл «ТЗ для команды» (сделано 2026-09-30, AI-помощник → Разбор ТЗ)3–4 дня
2. Смета: модель и расчётсмета с версиями и разделами, строки с количеством и ценой, наценки по разделам и строкам, скидка, резерв, налоги, маржа; текущие статьи бюджета переносятся в смету v14–5 дней
3. «Собрать из проекта»оборудование (свой склад, субаренда, закупка), перевозки, командировки, команда со ставками, процентные строки — одной кнопкой, без двойного счёта5–6 дней
4. Экран сметытаблица по разделам: себестоимость, наценка, цена; итоги и маржа; версии и сравнение; фиксация ручных правок4–5 дней
5. Документ для клиента и бюджетPDF и Excel для клиента; согласованная версия — план бюджета и плановый бюджет проекта3–4 дня
6. Смета из ТЗ помощникомстроки сметы из разбора ТЗ: оборудование из каталога, часы команды, оценка логистики3 дня

Порядок можно менять: этап 1 не зависит от остальных, этапы 2–5 идут подряд, этап 6 — после 1 и 3. Каждый этап закрывается по Definition of Done из CLAUDE.md: документация, контракты, e2e-сценарий.


5. Что уходит ​

  • «Смета по ТЗ → применить в бюджет» (spec_estimate_items, estimate/apply) заменяется разделом «Команда» сметы и согласованием версии; накопленные строки переносятся.
  • Расчёт итогов на вкладке оборудования во фронте — цены и итоги считает сервер.
  • Наценка как строка в документе клиента — по умолчанию внутри цен.
  • Рекомендация вручную заводить статьи «аренда» под оборудование (equipment-estimate-frontend-flow.md).

6. Вопросы (нужны ответы до этапа 2) ​

  1. Аренда своего оборудования: цена за день из каталога и скидка за длительность — коэффициенты 1 / 0,5 / 0,3 / 0,15 / 0,1 по дням, как в заявках сейчас. Оставляем или у вас другая сетка?
  2. Наценка: предлагаю по разделам с возможностью поменять в строке. Или одна на всю смету?
  3. Наценку клиенту: прятать внутри цен (предлагаю) или показывать строкой, как сейчас?
  4. «Проценты затраты на команду» — это что: процент от суммы сметы (агентское, менеджмент проекта), надбавка к ФОТ (налоги на зарплату), или бонус команде от прибыли? Можно несколько.
  5. Ставки команды: по отделу (как сейчас), по должности, персональные? Ставка для клиента отличается от себестоимости часа?
  6. УСН: надбавкой сверху или гроссапом?
  7. Скидки клиенту нужны? На всю смету или на разделы?
  8. Согласование сметы: достаточно статусов «отправлена / согласована / отклонена» или нужна подпись клиента (ссылка для клиента, согласование в документе)?
  9. Бюджет: после согласования сметы плановые статьи бюджета = смета, а ручные плановые статьи убираем?

Загружаем документацию…