Налоговые параметры расчёта: EntityKind, TaxRegime
Перечисления типа субъекта и налогового режима расчёта доходности и правила их влияния на формулы.
Переключатели «юр/физ лицо» и «УСН-6 / УСН-15 / ОСНО» на странице /lots/[id]/analytics определяют
ставку налога в модели доходности.
Назначение
Инвестор выбирает, от чьего лица считать доходность: физическое лицо (НДФЛ) или юридическое лицо в одном
из трёх налоговых режимов. Выбор определяет единую ставку regimeTaxRate, которой облагаются обе
компоненты дохода в investor-series-models.md: прирост стоимости
(AppreciationTax) и EBITDA (EbitdaTax), — если для конкретного месяца не задан налоговый оверрайд
(property-object-type-month-override.md).
Значения — входные параметры запроса, не хранятся.
Enum EntityKind
| Значение | Wire-формат (query entity) | Описание |
|---|---|---|
Legal | legal | Юридическое лицо (или ИП на соответствующем режиме) — ставка зависит от TaxRegime. Дефолт, если параметр не передан. |
Individual | individual | Физическое лицо — НДФЛ 13% независимо от TaxRegime (параметр tax игнорируется в ставке). |
Enum TaxRegime
| Значение | Wire-формат (query tax) | Описание |
|---|---|---|
Usn6 | usn-6 | УСН «доходы» — 6% с дохода. Дефолт, если параметр не передан. |
Usn15 | usn-15 | УСН «доходы минус расходы» — 15%. |
Osno | osno | Общая система — эффективная совокупная ставка 43% (константа модели: налог на прибыль + НДС + пр., принята владельцами платформы как оценочная). |
Ставка regimeTaxRate
EntityKind | TaxRegime | regimeTaxRate (годовая доля) |
|---|---|---|
Individual | любой | 0.13 |
Legal | Usn6 | 0.06 |
Legal | Usn15 | 0.15 |
Legal | Osno | 0.43 |
Ставки — константы модели расчёта (не конфигурация): их изменение — изменение контракта модели через
релиз. Вынос в EconomicModelConfig осознанно не делается: платформенные налоговые поля модели в
расчёте не участвуют и помечены легаси (см. economic-model-config.md).
Влияние на формулы (полные формулы — investor-series-models.md)
| Место формулы | Правило |
|---|---|
Налог на прирост стоимости месяца i | apprTaxRate(i) = ovr(i).AppreciationTaxMonthly != null ? ovr(i).AppreciationTaxMonthly × 12 : regimeTaxRate; AppreciationTax = gainM2(i) × apprTaxRate(i) × Area |
Налог на EBITDA месяца i | ebitdaTaxRate(i) = ovr(i).EbitdaTaxMonthly != null ? ovr(i).EbitdaTaxMonthly × 12 : regimeTaxRate; EbitdaTax = ebitdaM2(i) × ebitdaTaxRate(i) × Area |
AsideMetrics.TaxRatePercent | round(regimeTaxRate × 100) — всегда ставка режима (даже при месячных оверрайдах) |
AsideMetrics.GrowthIncome / RoiGrowth | считаются от IncomeFromGrowth − AppreciationTax — т.е. после применённой (режимной или оверрайдной) ставки |
| Оверрайд месяца | хранит месячную ставку; эффективная годовая = × 12 (диапазон значения ≤ 1/12 — INV-MO3) |
Взаимодействие ставки режима и месячного оверрайда: месячный налоговый оверрайд
(ovr(i).*TaxMonthly × 12) замещает regimeTaxRate в месяце i независимо от EntityKind/TaxRegime
— в том числе перекрывает физлицо 0.13 (INV-CALC-5). При этом AsideMetrics.TaxRatePercent всё равно
показывает ставку выбранного режима (справочно), а фактически применённая в месяце ставка видна через
величины AppreciationTax/EbitdaTax. Оверрайд действует только в своём месяце; месяцы без оверрайда
считаются по ставке режима.
Валидация и совместимость
| Правило | Значение |
|---|---|
| Отсутствующий параметр | дефолт: entity=legal, tax=usn-6 (поведение публичной и admin-операций) |
| Неизвестное значение enum | ошибка валидации INVEST_ANALYTICS_INVALID_TAX_PARAMS (HTTP 400); молчаливый откат к дефолту запрещён |
| Wire-формат | строго строки `legal |
| Расширение | новое значение (напр. ausn) — additive: добавить в enum + строку в таблицу ставок + значение в контракт метода; существующие значения не переименовываются (breaking) |
Individual + любой tax | не ошибка: tax принимается и игнорируется в ставке (фронт всегда шлёт оба параметра) |
Безопасность
- Actor: любой пользователь страницы аналитики (инвестор, агент; реф-гость — readOnly-режим страницы, параметры менять может — расчёт read-only и не привилегирован).
- Параметры не PII и не персистятся; в логах допустимы в открытом виде.
- Расчёт не является налоговой консультацией: дисклеймер фронта, ставки — модельные допущения платформы.
Обратные ссылки
Автоссылки: где используется этот документ.
- Домен (CQRS) (3): Расчётные модели: InvestorMonth, AnalyticsSeries, AsideMetrics, Сущность / агрегат: EconomicModelConfig, Сущность: PropertyObjectTypeMonthOverride
- API (3): GET /api/v1/property-objects/{propertyObjectId}/investor-series — Серии доходности объекта недвижимости, POST /api/admin/v1/investor-preview — Расчёт серий доходности по произвольным параметрам (admin preview / growth-chart), POST /api/v1/property-objects/{propertyObjectId}/analytics-report — PDF-отчёт «Скачать расчёт» (реализация отложена)
- Use Cases (3): UC-PRC-002. Расчёт доходности объекта недвижимости с выбором субъекта (юр/физ) и налогового режима, UC-PRC-003. Admin: настройка экономической модели платформы + investor-preview, UC-PRC-005. Скачивание PDF-отчёта «Скачать расчёт» (контракт; реализация отложена)
- index.md (1): InvestAnalytics Service
- registries (1): Реестр сущностей PIN
Связанные документы
- Формулы: investor-series-models.md.
- Месячные налоговые оверрайды: property-object-type-month-override.md.
- Легаси налоговых полей платформенного уровня: economic-model-config.md.
- Операции, принимающие параметры: ../api/public/get-property-object-investor-series.md, ../api/admin/investor-preview.md.