# Типы тендеров и статусы проекта (как реализовано в Grace)

Техническая механика воронок продаж. Бизнес-смысл — полка «Коммерческий отдел», книга «БЗ-7 Клиентская база», страница «Воронки продаж — 3 типа тендеров».

## Поле «тип тендера»

- Выбирается **радио-кнопкой при создании проекта**, обязательное. Определяет набор доступных статусов проекта.
- В данных (индекс `itech_projects`) лежит в поле **`type_of_calculation`** (keyword) — имя историческое, по смыслу это тип тендера, а не тип расчёта.
- Значения: `Прескрипция` · `Внешний тендер` · `Внутренний тендер`.
- Распределение (20 138 проектов): пусто 10 106 · Внутренний 5 693 · Внешний 4 228 · Прескрипция 111.

## Наборы статусов по типу (из инструкции «Проекты»)

**Прескрипция:** Регистрация проекта · Заявка на расчёт · Работа по стадии «П» · Работа по стадии «Р» · Работа выполнена.

**Внешний:** Регистрация проекта · Заявка на расчёт · Расчёт выполнен · Отправлено КП · Работа с возражениями · Приостановлено · (пусто = выход / отказ).

**Внутренний:** Регистрация проекта · Заявка на расчёт · Расчёт выполнен · Отправлено КП · Работа с возражениями · Согласование договора · Реализация · Закрытие сделки · Приостановлено · (пусто = отказ покупателя).

Статус в данных: `project_status` (text, есть `.keyword`) + `project_status_id` (int). Дата перехода: `status_updated_at` (text, пуст ~53%).

## Авто-переходы статуса (кто / что двигает)

- Создание **заявки на расчёт** → проект: «Регистрация проекта» → «Заявка на расчёт» (**кроме Прескрипции** — она из авто-перехода исключена).
- Расчёт получил статус **«КП выставлено»** → проект: «Расчёт выполнен» → «Отправлено КП».
- Прочие статусы менеджер ставит **вручную** в карточке проекта.
- При создании заявки на расчёт также обновляются поля проекта: предполагаемая дата реализации, вероятность реализации, вероятность %.

## Оговорки по качеству данных

- «Работа с возражениями» доступна в UI, но **не заполняется ни в одном проекте** → стадия переговоров для аналитики не захвачена.
- Перетекание статусов между типами — единицы процентов (внешний / внутренний); у Прескрипции ~половина статусов «чужие».
- `status_updated_at` пуст ~53% → длительность стадий (cycle time) посчитать нельзя без обогащения.

> Источник: инструкция Grace «Проекты» (`/reactapp/projects/projects`) + проверка на OpenSearch 89 (19–20.06.2026).