Акционерный капитал
Актуально на: 2026-06-26
Назначение
Определение собственного/акционерного финансирования проекта: кто участвует в капитале, сколько вносит, какой долей владеет и по каким правилам получает выплаты.
Роль в проекте
- Показывает долю собственных средств в структуре финансирования.
- Снижает потребность в заёмном финансировании.
- Формирует строки финансовой деятельности в cash-flow:
- собственный/акционерный капитал;
- выплаты участникам / дивиденды.
- Использует базы из финансовых результатов: выручка, валовая прибыль, EBITDA, чистая прибыль, cash-flow, FCF.
Зависимости
- Требует заполнения до этого раздела: операционный контур и календарный план для понимания потребности в финансировании.
- Открывается вместе с:
Финансирование → Займы. - От этого раздела зависят:
Результаты → Кэш-фло, структура финансирования, анализ доходов участников.
Данные для сбора
Сущность: Участник капитала
| Поле | Тип | Обязательное | Ограничения | Значение по умолчанию |
|---|---|---|---|---|
| name | строка | да | не пусто | Участник N |
| participantType | enum | да | founder / investor / strategic / other | founder |
| ownershipPct | число | да | 0..100 желательно, сумма по активным участникам может контролироваться отдельно | 100 для первого |
| initialContribution | число | да | >= 0 | 0 |
| contributionByPeriod | массив чисел | нет | >= 0 по периодам | [] |
| payoutBase | enum | да | none / revenue / gross_profit / ebitda / net_profit / operating_cashflow / free_cashflow_before_financing / free_cashflow_after_debt / manual | none |
| payoutRatePct | число | да | >= 0 | 0 |
| payoutStartMonth | число | да | индекс периода >= 0 | 0 |
| payoutEndMonth | число | нет | индекс периода >= start | — |
| payoutCapTotal | число | нет | >= 0 | — |
| payoutCapPerPeriod | число | нет | >= 0 | — |
| manualPayoutByPeriod | массив чисел | нет | >= 0 по периодам | [] |
| payOnlyIfPositiveBase | boolean | да | — | true |
| protectMinCashBalance | boolean | да | — | true |
| isActive | boolean | да | — | true |
| color | строка | нет | CSS color | auto |
| note | строка | нет | — | "" |
Базы выплат
none— участник владеет долей, но не получает выплат.revenue— процент от выручки.gross_profit— процент от валовой прибыли.ebitda— процент от EBITDA.net_profit— процент от чистой прибыли.operating_cashflow— процент от операционного cash-flow.free_cashflow_before_financing— процент от FCF до финансирования.free_cashflow_after_debt— процент от FCF после обслуживания долга.manual— ручной график выплат.
Хранение данных
Источник правды для пользовательских параметров:
- JSON snapshot:
ProjectWorkspaceState.state.equityPlan.participants. - Нормализованные таблицы:
ProjectEquityParticipant;ProjectEquityContributionItem;ProjectEquityPayoutItem.
Расчётные выплаты от базы не сохраняются как отдельная materialized-таблица. В БД хранится правило выплаты, а сумма пересчитывается из P&L/cash-flow.
Все параметры, которые пользователь задаёт в интерфейсе, должны быть доступны для прямого SQL-анализа. Карточные параметры участника пишутся в ProjectEquityParticipant, дополнительные взносы по периодам — в ProjectEquityContributionItem, ручные выплаты по периодам — в ProjectEquityPayoutItem.
Сценарий диалога
- Уточнить список участников и их доли.
- Уточнить начальные и дополнительные взносы капитала.
- Для каждого участника спросить, есть ли выплаты.
- Если выплаты есть — уточнить базу: выручка, EBITDA, чистая прибыль, FCF или ручной график.
- Проверить, как взносы и выплаты влияют на cash-flow.
- Если cash-flow остаётся отрицательным — предложить увеличить капитал, добавить займы или изменить сроки затрат.
Примеры SQL
Среднее число активных участников по проектам:
SELECT AVG(participant_count)
FROM (
SELECT p."id", COUNT(ep."id") AS participant_count
FROM "Project" p
LEFT JOIN "ProjectEquityParticipant" ep
ON ep."projectId" = p."id"
AND ep."isActive" = true
GROUP BY p."id"
) t;Средний начальный взнос участника:
SELECT AVG(ep."initialContribution")
FROM "ProjectEquityParticipant" ep
WHERE ep."isActive" = true;