# ТЗ. Система инсорсингового (доменного) финансового управления

Версия 0.12 · 2026-09-11 · изменения отмечены [v0.11] и [v0.12] (регулярные проводки — 6.3б)

---

## 1. Назначение и цели

Система учёта и планирования, которая:

1. Делит компанию на юниты двух типов: центры прибыли (продают вовне) и домены (центры компетенции, оказывают услуги другим юнитам внутри компании).
1. Тарифицирует доменные услуги по полной себестоимости (ФОТ с налогами, отпуска, больничные, соцгарантии, внешние закупки, потребление услуг других доменов).
1. Делает внутренние услуги сравнимыми с рыночными, чтобы решение «инсорс vs аутсорс» принималось по цифрам.
1. Учитывает внешние закупки товаров и услуг по той же механике ЦКП/статей/проводок.
1. Считает себестоимость сделок автоматически — как сумму всех услуг и закупок, отнесённых на сделку.
1. Даёт план-факт бюджета каждого юнита за месяц, квартал и год: доходы, расходы, прибыль, инвестиции, денежный поток.
1. Даёт сводный бюджет компании за период: по юнитам — 5 показателей, плюс итоги компании, включая амортизацию.
Не цели (v1): бухгалтерский и налоговый учёт, расчёт зарплаты, кадровый учёт, CRM, трекер задач, БДДС и платёжный календарь (дебиторка/кредиторка не ведутся). [v0.4]

Характер учёта: управленческий. Реального движения денег по внутренним услугам нет; результаты могут использоваться в мотивации (в первую очередь центров прибыли).

Дата начала учёта: 1 января 2027. Предусмотреть ввод входящих остатков накопленного денежного потока по юнитам; остаток компании получается их суммой. [v0.8]

---

## 2. Термины

Термин	Определение
Юнит	Подразделение — центр прибыли или домен. Имеет бюджет, руководителя, статьи доходов и расходов.
Центр прибыли (ЦП)	Юнит, продающий ЦКП внешним клиентам. Имеет сделки.
Домен (инсорс, центр компетенции)	Юнит, продающий ЦКП другим юнитам внутри компании. Сделок нет; выручка = внутренние продажи.
Административный домен	Офис, руководство, финансы, юристы. Обычный домен со своими ЦКП и тарифами.
Технический юнит «Компания»	Единственный юнит типа company. Носитель расходов и инвестиций, которые невозможно отнести ни на один центр прибыли или домен. Услуг не оказывает, тарифов не имеет. [v0.7]
Поставщик	Внешний контрагент, у которого компания закупает товары и услуги.
ЦКП	Ценный конечный продукт. У каждого своя методика оценки стоимости. Внешне закупаемые товары и услуги — тоже ЦКП.
Услуга	Единичный факт производства/потребления ЦКП.
Статья бюджета	Расходная или доходная позиция юнита: «юнит + ЦКП + направление» + признак операционная/инвестиционная. Сочетание уникально: вторую активную статью с тем же юнитом, ЦКП, направлением и типом система не даёт сохранить (ключ базы). Так же уникальны строка бюджета «статья × период», итог «юнит × период × порядок», договорная ставка «ЦКП × поставщик × дата», шаблон регулярной проводки «ЦКП × заказчик». [v0.12]
Проводка	Запись в журнале: источник (юнит, поставщик или внешний без контрагента) → статья-приёмник, ЦКП, сумма, задача, сделка.
Сделка	Внешний контракт/проект центра прибыли. Носитель выручки и себестоимости. Привязана к юрлицу.
Тариф (ставка)	Плановая цена единицы ЦКП домена по полной себестоимости. Действует с даты начала — на любой срок или бессрочно; из действующих на дату берётся самый свежий. [v0.12]
Период	Месяц — базовый учётный период. Квартал и год — агрегаты.
Прибыль (П)	Доходы − Расходы по операционным статьям за период.
Инвестиции (И)	Сумма по инвестиционным статьям за период. В прибыль не входят.
Денежный поток (ДП)	Накопленный с начала учёта результат: входящий остаток + Σ (П − И + В), где В — возврат инвестиций. Считается и по каждому юниту, и по компании. [v0.6]
Возврат инвестиций (В)	Ежемесячное начисление со знаком плюс в размере 1/24 каждой инвестиции в течение 24 месяцев после неё: инвестиция сначала уменьшает накопленный результат на всю сумму, затем постепенно возвращается как приносимая польза. Начисляется по тому юниту, в чьём бюджете сделана инвестиция; возврат компании = сумма возвратов юнитов. [v0.6]

---

## 3. Организационная модель

### 3.1 Справочник юнитов

Поле	Тип	Описание
unit_id	код	
Название	строка	
Тип	enum	profit_center | domain | company (ровно один экземпляр) [v0.7]
Родитель	unit_id	Иерархия (опц.)
Руководитель	сотрудник	Отвечает за бюджет
Входящий остаток ДП	сумма	На 01.01.2027. Вводится только по юнитам; остаток компании = их сумма [v0.8]
Действует с / по	дата	Историчность

Правила:

- Домен не может иметь сделки и не может продавать внешним клиентам.
- Центр прибыли может оказывать услуги другим юнитам (для этой части ведёт себя как домен).
- Юнит может быть источником и приёмником в одной проводке (самопотребление, 6.5).
- Административный домен подчиняется общим правилам.
Технический юнит «Компания» [v0.7]

- Назначение: расходы и инвестиции уровня компании, не относимые ни на один центр прибыли или домен, — общекорпоративные проекты, сделки M&A, штрафы, судебные издержки, дивидендная и акционерная деятельность, инвестиции в бизнес как целое.
- Имеет собственный бюджет по общей форме 8.3: расходы, инвестиции, П, В, ДП; в число юнитов сводного бюджета входит наравне с остальными, поэтому равенство «ДП компании = Σ ДП юнитов» сохраняется.
- Не оказывает услуг и не может быть источником внутренних проводок: иначе его затраты пошли бы к заказчикам мимо тарифной механики. Всё, что является услугой юнитам, ведёт административный или профильный домен со своими ЦКП и ставками.
- Может быть приёмником: потребляет услуги доменов (например, юридическое сопровождение сделки M&A) и внешние закупки — обычными проводками.
- Внешней выручки не имеет; операционные доходы, как правило, отсутствуют, поэтому его прибыль обычно отрицательна и уменьшает прибыль компании.
- Расходы техюнита не входят в себестоимость доменов и не попадают в тарифы — они не распределяются на юниты.
- Служит правопреемником незавершённого возврата инвестиций при закрытии юнита (8.5).
Масштаб: ~10 юнитов, ~50 сотрудников.

### 3.2 Справочник ЦКП

Поле	Тип	Описание
ckp_id	код	
Название	строка	«Дизайн сайта», «Нанятый сотрудник», «Закрытый учётный месяц»
Происхождение	enum	internal (производит юнит) | external (закупается)
Юнит-производитель	unit_id	Для internal
Единица измерения	строка	час, шт., ставка/мес., % от суммы, FTE
Методика оценки	enum + параметры	См. 5.2
Требуется учёт времени	флаг	Для почасовых ЦКП
Рыночный бенчмарк	сумма/ед.	Для сравнения с аутсорсом
Операционный/инвестиционный по умолчанию	enum	Наследуется в статью

Правило именования ЦКП [v0.10]

ЦКП — это результат, а не ресурс и не единица измерения. «Час разработки» и «подрядные работы» ЦКП не являются: за час нельзя отвечать, его нельзя сравнить с рыночным аналогом и нельзя предъявить заказчику. Правильные названия отвечают на вопрос «что получил заказчик»: «Дизайн сайта», «Дизайн рекламных материалов», «Разработка сайта», «Нанятый сотрудник», «Закрытый учётный месяц», «Оборудованное рабочее место».

Час, штука, месяц — это единица измерения ЦКП и основа методики оценки (M1 почасовая), а не сам продукт. Один и тот же домен производит несколько ЦКП, различающихся результатом, даже если все они меряются часами: «Дизайн сайта» и «Дизайн рекламных материалов» — разные продукты с разными заказчиками, объёмами и рыночными бенчмарками.

Проверка при заведении нового ЦКП — три вопроса:

1. Можно ли назвать это существительным-результатом, а не действием или ресурсом?
1. Можно ли купить это на рынке и сравнить цену?
1. Может ли заказчик сказать «мне нужно N таких» и принять работу?
Если хотя бы на один ответ «нет» — это не ЦКП, а ресурс или процесс внутри ЦКП.

Комплексный ЦКП поглощает свои составляющие. [v0.10]

Внешняя закупка, которая нужна для производства доменного ЦКП, не становится статьёй расходов каждого юнита — она входит в себестоимость этого ЦКП и попадает к заказчикам через тариф.

Пример. Аренда площади, мебель, техника и её настройка, клининг, расходники, базовое ПО — это не шесть статей у каждого подразделения, а составляющие одного ЦКП «Рабочее место в офисе», который производит административный домен. Юниты покупают у него рабочие места по ставке за место в месяц; аренду и клининг они в своём бюджете не видят вовсе.

Что это даёт:

- сравнимость с рынком — «рабочее место за 18 500 ₽/мес» сопоставимо с коворкингом, а «доля аренды, приходящаяся на дизайн» ни с чем не сопоставима;
- ответственность — за стоимость места отвечает один домен, а не бухгалтерия, распределяющая аренду;
- чистый бюджет заказчика — в нём продукты, которые он заказывал, а не разнесённые накладные.
Правило: внешняя закупка попадает в статью того юнита, который отвечает за её превращение в продукт. Если закупка обслуживает всех — её потребляет домен-производитель соответствующего ЦКП, а не каждый юнит по чуть-чуть.

Профильные закупки остаются у профильного юнита: лицензии дизайн-софта — у дизайна, облачная инфраструктура — у разработки, потому что входят в себестоимость их собственных ЦКП.

У каждого ЦКП есть поле «Что входит в ЦКП» — состав, который поглощён продуктом. Оно нужно для разбора при сравнении с аутсорсом: без него неясно, входит ли в ставку рабочего места клининг, и корректно ли сравнение с ценой коворкинга.

Труд — тоже ЦКП. Работа сотрудников юнита заводится как внешний ЦКП «Труд» (методика M6): оклады, премии, налоги и взносы, наценка K_соц на отпуска, больничные и соцгарантии. Отдельного признака «продукт / ресурс» у ЦКП нет — механика проводок единая для всех.

### 3.3 Справочник поставщиков

Поле	Тип	Описание
supplier_id	код	
Название, ИНН		
Тип	enum	товары | услуги | смешанный
Договор, условия	текст	Опц.
Активен с/по	дата

### 3.4 Справочник сотрудников (задел) [v0.4]

В v1 не обязателен: ФОТ вводится одной агрегированной проводкой на юнит. Справочник и персональные проводки по сотрудникам — расширение v2, модель данных его допускает без переделки (см. 6.3).

---

## 4. Статьи бюджета

Поле	Тип	Описание
item_id	код	
Юнит	unit_id	Владелец статьи
ЦКП	ckp_id	
Направление	enum	income | expense
Тип	enum	operational | investment
Внешняя/внутренняя	enum	internal (между юнитами) | external (закупка, ФОТ)
Активна с/по	дата

Правила:

- Уникальность: (Юнит, ЦКП, Направление, Тип).
- Операционная — направлена на текущую прибыль. Инвестиционная — обучение, создание активов, улучшение процессов, рост стоимости бизнеса.
- Тип определяется на стороне приёмника. Один ЦКП может быть операционным расходом одного юнита и инвестиционным другого.
---

## 5. Тарификация доменных услуг по полной себестоимости

### 5.1 Состав полной себестоимости домена за период

```plain text
Полная себестоимость домена =
    ФОТ (оклады + премии) + налоги и взносы
  + резерв отпусков и больничных
  + соцгарантии, ДМС, питание, обучение (операционная часть)
  + внешние закупки товаров и услуг на нужды домена
  + рабочие места, оборудование, ПО, лицензии (операционная часть)
  + стоимость потребленных услуг других доменов, включая административный
```

В тариф не включаются: инвестиционные расходы домена и возврат инвестиций (он влияет только на накопленный ДП, см. 8.5).

Наценка на ФОТ [v0.8]

Плановая себестоимость считает ФОТ с коэффициентом социальной нагрузки (ориентировочно 1,3 — уточняется расчётом):

```plain text
ФОТ в плановой себестоимости = ФОТ по штатному расписанию × (1 + K_соц)
K_соц покрывает: отпуска, больничные, соцгарантии, ДМС и прочие выплаты,
                 не распределённые ровно по месяцам
```

- Коэффициент — параметр системы, задаётся общий или по юнитам, версионируется по периодам.
- Применяется только в плановой себестоимости при расчёте тарифа. Отдельных расчётных проводок резерва нет: факт учитывается по фактическим выплатам того месяца, когда они произошли.
- Следствие, которое надо учитывать при анализе: факт по месяцам неровный — в месяц массовых отпусков домен даёт убыток, в остальные месяцы профицит. Тариф при этом не меняется (он квартальный). Поэтому критерий «прибыль домена ≈ 0» применяется на горизонте квартала и года, а не месяца (см. 14, контроль 9).
- Если по итогам года накопленное отклонение устойчиво, корректируется K_соц, а не тариф отдельного месяца.
### 5.2 Методики оценки стоимости ЦКП

Код	Методика	Формула цены	Пример ЦКП
M1	Почасовая ставка	ставка × часы	Дизайн, разработка, консультация
M2	Фиксированная цена за штуку	цена × кол-во	Нанятый сотрудник, закрытый месяц, договор
M3	Абонемент / ставка за период	сумма/мес. × доля	Сопровождение, поддержка инфраструктуры
M4	Процент от базы	% × база	Юридическое сопровождение сделки, эквайринг
M5	Распределение драйвером	себестоимость × доля драйвера	Офис (по FTE), бухгалтерия (по числу операций)
M6	Фактическая цена закупки	договорная ставка поставщика × объём или сумма разовой закупки	Внешние товары и услуги

### 5.3 Модель тарифов: плановые ставки

```plain text
Плановая ставка ЦКП = (Плановая полная себестоимость домена, отнесённая на ЦКП)
                      / (Плановый объём ЦКП за период)
```

В системе хранится и вводится только ставка: себестоимость и плановый объём руководитель домена считает сам, вне системы, по этой методике. Тариф в базе — ЦКП, домен, ставка, период действия и статус (проект → утверждён → архив). [v0.12]

- Ставка рассчитывается при плановом пересмотре. Как часто пересматривать (квартал, год), решает компания: система не ограничивает срок тарифа. Тариф действует с даты начала до даты окончания или бессрочно, если окончание не указано; при пересечении действует тариф с самой поздней датой начала, так что новую ставку достаточно завести с нужной даты. [v0.12]
- Отдельного разнесения отклонений нет: отклонение остаётся в бюджете домена и проявляется как его прибыль.
- Критерий качества тарифа: прибыль домена близка к нулю. Устойчивое отклонение — сигнал к пересмотру ставки или объёмов.
- Отчёт R5 раскладывает отклонение на три источника: ошибка ставки, отклонение объёма, перерасход себестоимости.
Недозагрузка домена [v0.8]

- Механизма гарантированного минимального объёма нет: если заказчики не выбрали плановый объём, домен получает убыток — он и есть измеритель проблемы.
- Убытки и прибыли доменов разбираются вручную по итогам квартала: устанавливается причина (ошибка тарифа, ошибка планирования объёма, перерасход, падение спроса) и при необходимости принимаются организационные меры — сокращение или перепрофилирование домена, пересмотр состава ЦКП, перевод части функций на аутсорс, перераспределение людей.
- Система обеспечивает данные для такого разбора (R5: загрузка, объёмы план/факт, раскладка отклонения, сравнение с рынком по R6), но автоматических корректировок не делает.
Себестоимость домена распределяется между его ЦКП по драйверу распределения (плановые трудозатраты, FTE, доля времени).

### 5.4 Взаимные услуги доменов (циклы)

- Взаимное распределение: решение системы линейных уравнений либо итерации до сходимости (порог 0,1 % или 10 итераций). При ~10 юнитах вычислительно тривиально.
- Обнаружение цикла и защита от зацикливания.
- Выполняется только при формировании квартальных ставок; в оперативном контуре проводки идут по готовым ставкам.
### 5.5 Сравнение с рынком

внутренняя ставка vs рыночный бенчмарк vs отклонение, %. Бенчмарк вводится вручную с датой и источником.

---

## 6. Журнал проводок

### 6.1 Структура записи

Поле | Тип | Обяз. | Описание
entry_id | id | да | 
Дата | дата | да | Определяет период
Период | месяц | авто | 
Тип источника | enum | да | unit | supplier | external (без контрагента: ФОТ, налоги) [v0.4]
Статья-источник | item_id | условно | Обязательна при типе unit
Поставщик | supplier_id | условно | Обязателен при типе supplier
Статья-приёмник | item_id | да | Расходная статья заказчика
ЦКП | ckp_id | да | Совпадает со статьями
Объём | число | нет | В единицах ЦКП (для M1 — часы)
Ставка | сумма | нет | Плановый тариф / цена закупки
Сумма | сумма | да | По умолчанию Объём × Ставка
Документ | ссылка | нет | Акт/счёт/накладная для закупок
Задача в трекере | ID + URL | нет | Мегаплан; для разовых работ, у регулярных услуг — без задачи [v0.11]
Комментарий | текст | нет | 
Сделка приёмника | deal_id | условно | Обязательна, если приёмник — ЦП и статья операционная
Сотрудник | employee_id | нет | Задел на персональные проводки ФОТ (v2) [v0.4]
Статус | enum | да | draft | posted | reversed
Автор, дата создания |  | авто | Аудит

### 6.2 Правила

- Внутренняя проводка (unit) двусторонняя: одна сумма = доход источника и расход приёмника. Σ внутренних доходов = Σ внутренних расходов.
- Внешняя проводка (supplier, external) односторонняя: только расход приёмника.
- Направление статей: источник — income, приёмник — expense.
- ЦКП проводки = ЦКП статей.
- Изменение проведённой проводки — только сторно + новая запись; после закрытия периода правка запрещена.
- Одна проводка = ровно одна сделка. Сделка собирает произвольное количество проводок, в том числе из разных периодов.
- Момент признания расхода по закупке — факт оказания услуги (акт) или поставки товара. Обязательства, счета к оплате и движение денег не учитываются. [v0.4]
### 6.3 ФОТ [v0.4]

- В v1 ФОТ вводится одной агрегированной проводкой на юнит за период — «Выплата ФОТ», тип источника external, без поставщика, на расходную статью юнита (ЦКП «ФОТ»).
- Аналогично вводятся налоги и взносы, резерв отпусков, соцгарантии — отдельными ЦКП или в составе того же, по решению при настройке.
- Расширение v2: справочник сотрудников и персональные проводки по каждому (поле employee_id уже предусмотрено). Переход не требует изменения структуры — меняется только гранулярность ввода.
### 6.3а Классы проводок и порядок проведения [v0.11]

Класс проводки задаёт поле «Тип источника». От класса зависит, кто вводит проводку и кто её проводит.

Класс | Тип источника | Примеры | Кто вводит | Кто проводит
Внутренняя услуга | Юнит | дизайн сайта для ЦП, рабочие места, кадровое сопровождение | сотрудник домена-исполнителя (форма «Ввод проводки») | руководитель заказчика — форма «Подтвердить услуги»
Самопотребление | Юнит, исполнитель = заказчик | дизайн-система для себя (доход операционный, расход инвестиционный) | сотрудник юнита | руководитель юнита — той же формой
Закупка | Поставщик | облако, аренда, лицензии, подрядчики | любой сотрудник или финансист | руководитель заказчика — той же формой «Подтвердить услуги»
Внешняя проводка | Внешний | ФОТ, налоги, выручка центра прибыли | финансист (форма «Новая внешняя проводка») | финансист: введённая им самим проводится сразу; введённая другим — формой «Провести внешние проводки» [v0.12]
Сторно | как у исходной | исправление проведённой проводки | финансист | финансист

Порядок работы автоматики для каждой новой или изменённой проводки:

1. Разноска по дате и статьям находит период и строки бюджета источника и приёмника. Нет строки — проводка остаётся черновиком, во «Ошибка» пишется причина («статья не запланирована»).
1. Минимальный ввод. Сотрудник указывает ЦКП, сделку или заказчика и объём (для закупки — ещё поставщика); название и задача необязательны. Остальное разноска выводит сама:
  - заказчик — явно указанный → центр прибыли сделки → юнит текущей статьи приёмника → обычный заказчик ЦКП (поле справочника ЦКП для потоковых работ);
  - исполнитель — производитель ЦКП;
  - статьи — «исполнитель × ЦКП × доход» и «заказчик × ЦКП × расход» из справочника статей; из операционной и инвестиционной статьи на один ЦКП берётся та, что совпадает с «Типом по умолчанию» ЦКП. Если подходящих статей несколько (дубль в справочнике) — ошибка «несколько статей — уточните», статья не ставится; [v0.12]
  - тип — не спрашивается: указан поставщик → закупка, иначе по происхождению ЦКП (внутренний → услуга, покупной → закупка); «Внешний» (ФОТ, выручка) ставит только финансист. В форме поля закупки появляются, когда выбран поставщик: сумма (только без договорной ставки) и документ (необязательно). Для услуг и закупок статьи пересчитываются при каждой смене ЦКП, сделки или заказчика; внешние проводки финансист размечает вручную. Нет нужной статьи — ошибка, связь не ставится. 0а. Исполнитель не меняет ЦКП. Один и тот же ЦКП может сделать свой домен или внешний исполнитель: объём, единица и методика одинаковые. Меняется только источник цены:
  - свой домен — ставка из тарифа, сумма = объём × ставка;
  - внешний исполнитель (указан поставщик; если не указан — единственный поставщик с договорной ставкой на этот ЦКП) — договорная ставка поставщика из «Тарифов» (тариф с заполненным полем «Поставщик»), сумма = объём × ставка. Нет договорной ставки (разовая закупка) — сотрудник вводит сумму, ставка = сумма / объём. Ни ставки, ни суммы — ошибка. Акт отдельно не нужен: сумма в инсорсинге и есть сумма закупки; документ прикладывают по желанию для сверки. Статья заказчика одна и та же — «заказчик × ЦКП × расход», поэтому план и факт сравнимы независимо от исполнителя. Ставка аутсорса за единицу того же ЦКП — прямые данные для сравнения «инсорс против рынка» (R6) по реальным закупкам, а не только по бенчмаркам. 1а. Цена внутренней услуги — по тарифу. Сотрудник вводит только объём. Разноска находит утверждённый тариф на ЦКП, действующий на дату проводки, ставит ставку и считает сумму: объём × ставка, для методики M4 — база × ставка / 100. Тарифа нет — ошибка «нет утверждённого тарифа». Вручную ставку и сумму внутренней услуги не вводят: цена по тарифу — принцип модели. У закупок — договорная ставка поставщика (п. 0а).
1. Подтверждение заказчиком — для услуг и закупок одинаково. Проводка ждёт руководителя заказчика в форме «Подтвердить услуги»; подтверждение проставляет «Проведена», «Подтвердил» и дату. Автопроведения по документу нет.
1. Автоподтверждение. Если проводку ввёл сам руководитель заказчика («Автор» — руководитель юнита-заказчика), подтверждать нечего: разноска сразу ставит «Проведена», «Подтвердил» = автор, дату — сегодня. Условие — нет ошибок, есть сумма и строка бюджета приёмника.
1. Внешняя проводка ждёт финансиста. Если её ввёл сам финансист — автор указан в поле «Финансисты» юнита «Компания» (участник пространства или человек с доступом к модели), — разноска проводит её сразу. Введённую кем-то другим финансист проводит формой «Провести внешние проводки»: форма ввода открыта всем, и автоматика не должна проводить ФОТ или выручку, введённые кем угодно. [v0.12]
1. Проведённая проводка попадает в факт строки бюджета, затем в итоги месяца и витрины. Черновики в факт не идут.
Контроль финансиста — страница «Контроль проводок»:

- «К проведению финансистом» — внешние проводки;
- «Ждут подтверждения заказчика» — услуги и закупки, которые не подтверждены;
- «Проводки с ошибками» — всё, где разноска нашла проблему.
Финансист может провести любую проводку вручную: у него есть право редактирования журнала.

### 6.3б Регулярные проводки [v0.12]

Большинство проводок повторяются каждый месяц с одними и теми же ЦКП, источником, приёмником и суммой или объёмом: аренда, облако, лицензии, рабочие места, кадровое сопровождение, амортизация. Их не вводят руками, а заводят один раз шаблоном.

Таблица «Регулярные проводки» (ведёт финансист) — только то, чего ЦКП не определяет сам:

Поле	Смысл
Название	необязательно; к нему добавится месяц: «Аренда офиса · март 2027». Без названия — «ЦКП · заказчик · дата»
Активна	выключенный шаблон пропускается
ЦКП	всё остальное выводится из него
Заказчик	обязательно: один домен оказывает услугу многим, поэтому шаблон — это пара «ЦКП × заказчик». Без заказчика проводка остаётся черновиком с ошибкой «в шаблоне не указан заказчик» — запасные варианты (обычный заказчик ЦКП) для шаблонов не применяются
Объём или Сумма	объём — цена по тарифу домена или договорной ставке поставщика; сумма — фиксированная
Действует с / по	месяцы, в которые шаблон работает
Комментарий

Из ЦКП разноска выводит: тип (по происхождению ЦКП), поставщика (единственная действующая договорная ставка на этот ЦКП; если поставщиков несколько — ошибка «укажите поставщика»), статьи (исполнитель × ЦКП × доход, заказчик × ЦКП × расход), цену и подтвердившего — руководителя юнита-производителя ЦКП. Дата проводки — 1-е число месяца. Сделка регулярным проводкам не нужна. ФОТ и налоги в шаблоны не входят: сумма меняется каждый месяц, их проводит финансист.

Как проводится:

1. 1-го числа в 06:00 МСК триггер по расписанию запускает процесс «Регулярные проводки».
1. Процесс берёт активные шаблоны, действующие в этом месяце, и создаёт проводки (до 1000 за раз, всё или ничего). Месяц определяется по плановому времени запуска: запуск, опоздавший из-за простоя, всё равно относится к своему 1-му числу.
1. Каждая проводка получает связь «Шаблон» и ключ «шаблон-месяц». Перезапуск за тот же месяц не задваивает: проводка с тем же ключом обновляется.
1. Дальше обычная цепочка: разноска → факт → итоги → витрины. Разноска проводит проводку из шаблона сразу, без подтверждения заказчика: шаблон утверждён финансистом один раз. Если что-то не так (нет тарифа, статья не запланирована), проводка остаётся черновиком с ошибкой и видна на странице «Контроль проводок».
1. Закрытый месяц процесс не трогает вовсе.
Кнопка финансиста. Если шаблон поправили после 1-го числа, процесс запускают вручную (кнопка запуска процесса или POST /v2/nodes/{id}/run-pipeline). Проводки месяца обновятся по шаблону; уже проведённые останутся проведёнными с новыми суммами.

### 6.4 Внешние закупки

Учитываются аналогично внутренним услугам: свой ЦКП (origin = external), своя статья бюджета заказчика, своя проводка с источником-поставщиком.

- Закупка на нужды домена попадает в его расходы и, следовательно, в полную себестоимость и тариф.
- Закупка под сделку относится на статью центра прибыли с указанием сделки и напрямую входит в её себестоимость.
- Закупка может быть операционной или инвестиционной — по типу статьи-приёмника.
- Транзитная закупка (админ-домен закупает для ЦП) — двумя проводками: поставщик → админ-домен, админ-домен → ЦП.
- Капитализируемые покупки (оборудование, длинные лицензии) проводятся как инвестиции единовременно, по юнитам не амортизируются (см. 8.5).
### 6.5 Учёт времени и связь с трекером

- Трекер — Мегаплан, есть API.
- Для ЦКП с флагом «требуется учёт времени» объём проводки = часы по задаче. Способ сбора определяется отдельно.
- Ссылка на задачу обязательна только для разовых работ; у регулярных услуг (офисное обслуживание, сопровождение, ФОТ) её нет — задачи-контейнеры не заводятся. [v0.11]
- Хранится ID + URL; желательна подгрузка названия и часов через API.
### 6.6 Самопотребление

Проводка «юнит → тот же юнит» допустима: дизайнеры делают дизайн-систему для себя — источник: операционный доход дизайна, приёмник: инвестиционный расход дизайна.

---

## 7. Сделки (центры прибыли)

Бюджет сделки [v0.12]

По каждой сделке система ведёт факт: доход — проведённые проводки сделки, где источник — доходная статья её центра прибыли (выручка от клиента); себестоимость — проводки сделки, где приёмник — расходная статья центра прибыли (услуги доменов по тарифам и закупки); прибыль — доход минус себестоимость; рентабельность — прибыль к доходу. Сторно учитывается со знаком. Пересчёт — при любом изменении проводок сделки. Экраны: у финансиста «Бюджет сделок» (все сделки), у руководителя «Мои сделки» (свои). Одна карточка: сверху список сделок с итогами, под ним бюджет сделки строками — доходы, каждая затрата, итоги. Ссылка «Открыть бюджет» («Открыть мой бюджет») в строке сделки открывает бюджет ниже с уже выбранной сделкой.

Поле | Тип | Описание
deal_id | код | 
Название, клиент |  | 
Центр прибыли | unit_id | Владелец
Юрлицо | legal_entity | Единственное место привязки к юрлицам компании
Статус | enum | воронка / в работе / закрыта / отменена
Сумма контракта | сумма | Выручка
Даты начала/окончания |  | 

```plain text
Себестоимость сделки = Σ сумм проводок, где Сделка = deal_id и статья операционная
Маржа сделки         = Выручка − Себестоимость
Рентабельность, %    = Маржа / Выручка
```

Сделка может длиться несколько периодов; проводки собираются сквозным итогом. Отчёт R3: дата, период, статья, ЦКП, источник, задача, объём, ставка, сумма, комментарий; группировки по ЦКП, источнику, периодам.

---

## 8. Бюджетирование и план-факт

### 8.1 План

- Базовый период планирования и учёта — месяц. Квартал и год — агрегация.
- Единица планирования: (юнит, статья, месяц) → сумма и, при наличии, объём.
- Версии: draft → approved → revised_N.
- Инвестиции планируются в бюджете юнита и проходят согласование финансовым директором компании — отдельный статус согласования на инвестиционных строках плана. [v0.4]
- Ежеквартально пересчитываются плановые ставки (5.3) и сверяется баланс спроса/предложения по ЦКП (R8).
### 8.2 Факт

Считается автоматически агрегацией проведённых проводок по (юнит, статья, месяц).

### 8.3 Форма бюджета юнита

Единая форма для плана и факта, за месяц / квартал / год:

Блок | Содержание
Доходы | Операционные доходные статьи
Расходы | Операционные расходные статьи: услуги доменов, внешние закупки, ФОТ — в разрезе ЦКП и контрагентов
Прибыль (П) | Доходы − Расходы (только операционные)
Инвестиции (И) | Инвестиционные статьи, отдельным блоком, в прибыль не входят; со статусом согласования ФД
Возврат инвестиций (В) | Справочно: 1/24 собственных инвестиций юнита в окне 24 месяцев, со знаком плюс. В прибыль не входит [v0.6]
Денежный поток (ДП) | Входящий остаток + Σ (П − И + В) за все периоды с начала учёта [v0.6]

Колонки: План, Факт, Отклонение (сумма), Отклонение (%). Разрезы: статья → ЦКП → контрагент.

Реализация формы во Vtorum [v0.10]

Итоговых строк у таблицы Vtorum нет, поэтому форма собирается в одной базе «Строки бюджета» из двух видов записей:

- строки-статьи — план и факт по статье за месяц;
- расчётные строки — отдельные записи с признаком «Вид строки = Расчётная», значения которых пишет процесс-сумматор: Доходы всего, Расходы всего, Прибыль, Инвестиции всего, Возврат инвестиций, Денежный поток (накопленный).
Порядок задают поле «Раздел» (1 · Доходы, 2 · Расходы, 3 · Инвестиции, 4 · Итоги) и поле «Порядок» внутри итогов. Вид юнита группируется по месяцу и сортируется по разделу и порядку, так что каждый месяц читается как законченный отчёт сверху вниз.

Расчётные строки держат план и факт в тех же колонках, что и статьи, поэтому отклонение считается одинаково для всего отчёта. База «Бюджет юнита за период» остаётся источником пяти цифр для сводного бюджета компании.

Ориентиры: у домена прибыль ≈ 0; у центра прибыли прибыль — основной результат. ДП показывает накопленный вклад юнита с учётом сделанных в него инвестиций.

### 8.4 Сводный бюджет компании [v0.4 — уточнено]

За каждый период (месяц, квартал, год). Строка на юнит, 5 показателей:

Юнит | Доходы | Расходы | Прибыль | Инвестиции | Денежный поток
Центр прибыли А |  |  |  |  | 
Домен Б |  |  |  |  | 
… |  |  |  |  | 
Компания (техюнит) | — |  |  |  | 
Итого по юнитам |  |  |  |  | 
Возврат инвестиций (справочно) | — | — | — | — | Σ возвратов юнитов; уже включён в ДП каждого юнита [v0.6]
Итого компания | Σ, с элиминацией | Σ, с элиминацией | Σ П юнитов | Σ И юнитов | Σ ДП юнитов

Расчётные правила:

- Прибыль компании = сумма прибылей всех юнитов за период. Внутренние обороты сокращаются автоматически (доход одного = расход другого), отдельной элиминации для прибыли не требуется.
- В строках «Доходы» и «Расходы» итога по компании внутренние обороты элиминируются, иначе они задваиваются.
- Инвестиции компании = сумма инвестиций всех юнитов, включая технический юнит «Компания», который и несёт вложения уровня бизнеса в целом. [v0.7]
- ДП компании = входящий остаток + Σ (П − И + В) компании за все периоды = сумме ДП всех юнитов. Возврат начисляется на уровне юнитов, поэтому сводка сходится без корректировок. [v0.6]
### 8.5 Возврат инвестиций (амортизационная механика) [v0.5 — переработано]

Модель: инвестиция сразу уменьшает накопленный результат на всю сумму, а затем в течение 24 месяцев возвращается равными долями со знаком плюс — как приносимая ею польза.

```plain text
Вклад инвестиции суммой I, совершённой в периоде T, в накопленный ДП:
    период T         :  − I
    периоды T+1…T+24 :  + I / 24 каждый
    итого к T+24     :    0
```

Формула периода:

```plain text
Возврат(M)  = Σ ( Инвестиции_компании(T) / 24 )  по всем T в окне 24 месяцев до M
ДП(M)       = ДП(M−1) + П(M) − И(M) + Возврат(M)
ДП(старт)   = входящий остаток
```

Правила:

- Возврат начисляется по каждому юниту — по инвестициям, сделанным в его собственном бюджете, — и, как их сумма, по компании. ДП компании при этом равен сумме ДП юнитов. [v0.6]
- Возврат не входит в прибыль (П) и не попадает в себестоимость и тарифы доменов: прибыль остаётся чисто операционной, а возврат влияет только на накопленный ДП.
- В форме бюджета юнита и в сводном бюджете это справочная строка со знаком плюс. В терминологии ТЗ она называется «возврат инвестиций», а не «амортизация»: классическая амортизация уменьшает результат, здесь механика обратная — инвестиция уже вычтена целиком и 24 месяца возвращается.
- Экономический смысл: крупная инвестиция временно «проедает» накопленный поток юнита; если за 24 месяца она не окупилась ростом прибыли, это видно как просадка ДП. Через 24 месяца вложение перестаёт давить на результат юнита.
- Возврат начисляется по инвестициям, совершённым с начала учёта. По инвестициям, сделанным до 01.01.2027, возврат не начисляется: всё, что было до старта, свёрнуто во входящий остаток ДП. [v0.8]
- Если юнит закрывается или реорганизуется, незавершённый возврат переносится на правопреемника либо на технический юнит «Компания» (3.1). [v0.6]
## 9. Отчётность (обязательный состав v1)

№ | Отчёт | Содержание
R1 | Бюджет юнита план-факт | Форма 8.3, месяц / квартал / год, включая ДП
R2 | Сводный бюджет компании | Форма 8.4: Д, Р, П, И, ДП по юнитам + возврат инвестиций + итог компании
R3 | Себестоимость сделки | Все проводки сделки со ссылками на задачи, сквозным итогом
R4 | P&L центра прибыли | Выручка, себестоимость по доменам и закупкам, маржа
R5 | Экономика домена | Себестоимость, объёмы, ставки, загрузка, прибыль как индикатор точности тарифа
R6 | Инсорс vs рынок | Ставка ЦКП vs бенчмарк
R7 | Матрица внутренних оборотов | Юнит × юнит за период
R8 | Баланс спроса/предложения по ЦКП | План производства vs план потребления
R9 | Инвестиции | План/факт по юнитам, статус согласования ФД, график возврата 1/24 по каждой инвестиции, остаток невозвращённого [v0.5]
R10 | Внешние закупки | По поставщикам, ЦКП, юнитам-заказчикам, сделкам
R11 | Сторно-корректировки | Период возникновения, период исправления, сумма, причина [v0.9]

---

## 10. Роли и права

Роль | Права
Администратор | Справочники, периоды, права
Финансовый директор | Согласование инвестиционных строк планов всех юнитов [v0.4]
Финансовый контролёр | Все проводки, тарифы, закрытие периода, все отчёты
Руководитель юнита | План своего юнита (включая заявку на инвестиции), ввод проводок от своего юнита, отчёты по своему юниту и сделкам
Сотрудник | Ввод объёмов/часов по своим задачам (черновики)
Наблюдатель | Только чтение отчётов

---

## 11. Регламент

Запуск (до 01.01.2027): справочники, ЦКП, методики, ввод входящих остатков ДП, первые плановые ставки.

Год: утверждение ЦКП, годовых объёмов и бюджетов.

Квартал (планирование): пересчёт плановой себестоимости доменов, взаимное распределение, утверждение ставок на квартал, сверка баланса спроса/предложения, утверждение месячных бюджетов, согласование инвестиций финдиректором.

Месяц (учёт): ввод объёмов и часов, ФОТ одной проводкой, закупки по актам, привязка к сделкам.

Закрытие месяца: генерация проводок (объём × ставка), контроль баланса и ссылок на задачи, расчёт П, И, В, ДП; формирование R1, R2; снимок отчётности; жёсткая блокировка периода.

Жёсткое закрытие периода [v0.9]

- После закрытия правка и удаление проводок периода запрещены всем, включая финансового контролёра. Исправление — только сторно в текущем открытом периоде с ссылкой на исправляемую запись.
- Как это обеспечено в системе: финансист нажимает «Закрыть месяц». Процесс проверяет, что в месяце нет черновиков, проводок с ошибками и неразнесённых проводок; сохраняет снимок; ставит «Закрыт» с датой; открывает следующий месяц и блокирует проводки, строки бюджета и итоги, витрины подразделений и компании месяца и сам снимок. Любая правка или удаление заблокированной записи отклоняется — в интерфейсе, формах, API и процессах. Сторно на проводку закрытого месяца создаётся в открытом, обратная связь у исходной дописывается автоматически. Снять блокировку может только владелец или администратор, каждое действие пишется в журнал. [v0.12]
- При закрытии система сохраняет снимок отчётности: по каждому юниту Д, Р, П, И, В, ДП, а также план и факт по каждой статье на момент закрытия. Снимок неизменяем и хранится вечно.
- Снимок — основание для решений: расчёт мотивации, оценка доменов, оргмеры опираются на него, а не на текущий пересчёт. Это обеспечивает воспроизводимость: видно, какие цифры были на момент решения.
- Сторно, относящееся к закрытому периоду, попадает в текущий период и в нём меняет П и ДП. Накопленные значения прошлых периодов не перестраиваются.
- Дату сторно не вводят — её определяет система: если месяц исходной проводки ещё открыт, сторно ставится той же датой; если закрыт — первым числом самого раннего открытого месяца. Финансист выбирает только проводку и причину; тип, ЦКП, статьи, сделка и сумма с обратным знаком копируются из исходной, одну проводку можно сторнировать один раз. [v0.12]
- Отчёт R11 показывает сторно-корректировки: период возникновения, период исправления, сумма, причина.
Закрытие квартала: анализ прибыли доменов; при отклонении от нуля сверх порога — пересмотр ставок и/или объёмов.

---

## 12. Модель данных (сводно)

Справочники: Units (с входящим остатком ДП), CKP, BudgetItems, Suppliers, LegalEntities, Deals, Employees (v2), Periods, Rates, Benchmarks, AllocationDrivers.

Транзакционные: ServiceLog (объёмы/часы с task_ref), Journal (проводки), BudgetPlan (с статусом согласования инвестиций), CostInputs (ФОТ и прочие внешние расходы).

Расчётные витрины: FactByItem, DealCost, DomainEconomics, PlanFact, CompanySummary (П, И, ДП, амортизация).

```plain text
Unit 1—N BudgetItem N—1 CKP
BudgetItem 1—N Journal (как источник / как приёмник)
Supplier 1—N Journal (как внешний источник)
Deal 1—N Journal ; Deal N—1 LegalEntity
Journal N—1 Task (Мегаплан, по ссылке)
Journal N—1 Employee (опц., v2)
CKP 1—N Rate (по кварталам)
```

---

## 13. Нефункциональные требования

- Историчность: изменение ставок, статей, структуры юнитов не переписывает прошлые периоды.
- Снимки отчётности при закрытии периода неизменяемы и хранятся без ограничения срока. [v0.9]
- Аудит: кто, когда, что изменил; закрытые периоды неизменяемы.
- Экспорт всех отчётов в CSV/XLSX.
- Валюта: одна базовая.
- Импорт ФОТ и внешних расходов из выгрузки бухгалтерии.
- Интеграция с Мегапланом: ID и URL задачи, желательно название и часы через API.
- Объём: ~10 юнитов, ~50 сотрудников, несколько тысяч проводок в год.
- Хранение накопленных величин: ДП пересчитывается от входящего остатка по закрытым периодам (а не хранится как изменяемое поле).
---

## 14. Контроли и валидации

1. Σ внутренних доходов = Σ внутренних расходов за период (проводки типа unit).
1. Каждая операционная услуга центра прибыли имеет сделку.
1. Разовая работа имеет ссылку на задачу (контроль мягкий: поле необязательное). [v0.11]
1. Соответствие типа источника заполненным полям: unit → статья-источник; supplier → поставщик; external → ни то, ни другое.
1. Нет создания, правки и удаления проводок в закрытом периоде — для всех роли без исключений; единственный путь исправления — сторно в открытом периоде. [v0.9]
1. ЦКП проводки совпадает со статьями обеих сторон.
1. Домен не имеет внешней выручки. 7a. Технический юнит «Компания» не является источником ни одной внутренней проводки и не имеет внешней выручки. [v0.7]
1. Сумма распределённой себестоимости домена по ЦКП = 100 %.
1. Прибыль домена в пределах порога от нуля — на горизонте квартала и года; месячные отклонения из-за неровного факта (отпуска, больничные) нормальны и не контролируются. Предупреждение, не блокировка. [v0.8]
1. ДП(период) = ДП(предыдущий период) + П − И + Возврат — для юнита и для компании. 10a. ДП компании = Σ ДП юнитов за любой период. [v0.6] 10b. Сумма начисленных возвратов по каждой инвестиции за 24 месяца = её полной сумме.
1. Прибыль компании = Σ прибылей юнитов.
1. Факт по инвестиционным статьям не превышает согласованный ФД план (предупреждение). [v0.4]
---

## 15. Решённые вопросы

- Тарифы — плановые, действуют с даты начала на любой срок или бессрочно; пересматриваются по регламенту компании. [v0.12]
- Отклонение абсорбции — не разносится, остаётся прибылью домена; цель ≈ 0.
- Учёт времени — для части ЦКП; ссылка на задачу в Мегаплане — только для разовых работ.
- Офис, руководство, финансы — административный домен на общих правилах.
- Циклы — взаимное распределение при расчёте квартальных ставок.
- Масштаб — ~10 юнитов, ~50 сотрудников.
- Прибыль — только операционные статьи; инвестиции отдельным блоком.
- Инвестиции — планируются в бюджете юнита, согласуются финдиректором.
- Период — месяц базовый; квартал и год агрегируются.
- Сделки — одна проводка = одна сделка; сделка собирает проводки из разных периодов.
- Юрлица — атрибут сделки.
- Внешние закупки — общая механика ЦКП/статей/проводок, источник-поставщик; цена по договорной ставке, признание — подтверждением заказчика.
- ФОТ — одна агрегированная проводка без поставщика; персональные проводки — v2.
- Возврат инвестиций — начисляется и по юнитам, и по компании: инвестиция вычитается разово, затем возвращается со знаком плюс по 1/24 в течение 24 месяцев.
- Денежный поток — накопленная (П − И + В) с входящим остатком; ДП компании = Σ ДП юнитов; прибыль компании = Σ прибылей юнитов.
- Начало учёта — 01.01.2027, с вводом входящих остатков ДП.
- БДДС — не ведётся.
- Закрытие периода — жёсткое: правка закрытого периода запрещена всем, исправление только сторно в открытом; при закрытии сохраняется неизменяемый снимок отчётности.
- Технический юнит «Компания» — есть; несёт расходы и инвестиции уровня бизнеса, услуг не оказывает.
- Окно возврата — 24 месяца начиная со следующего месяца после инвестиции (T+1…T+24).
- Входящие остатки — только по юнитам; компания = сумма. Возврат по инвестициям до старта не начисляется.
- Отпуска и больничные — через коэффициент социальной нагрузки в плановой себестоимости (ориентир 1,3), без расчётных проводок резерва; месячная неровность факта нормальна, критерий ≈0 проверяется за квартал и год.
- Недозагрузка домена — убыток без гарантированного минимума; разбор вручную и оргмеры.
## 16. Открытые вопросы

На момент версии 0.8 содержательных открытых вопросов по модели нет. Требуют уточнения при настройке:

- Точное значение коэффициента социальной нагрузки K_соц (общий или по юнитам) — считается по фактическим данным 2026 года.
- Пороги предупреждений: допустимое отклонение прибыли домена от нуля за квартал и год; порог отклонения внутренней ставки от рыночного бенчмарка.
- Состав ЦКП, методик и драйверов распределения по каждому домену — наполняется при внедрении.
- Состав и формат выгрузки ФОТ и внешних расходов из бухгалтерии.
- Объём интеграции с Мегапланом (только ссылка или подтягивание названий и часов через API).
