fix(generative/financial): VAT only on parking, residential ДДУ exempt (ст. 149 НК) #1898
No reviewers
Labels
No labels
admin
analytics
auth
automation
bug
business
chore
ci
compliance
data
data-moat
docs
duplicate
dx
enhancement
Fable 5 ревью
feedback/max
generative
GG-форсайт
needs-discussion
needs-human
observability
pause-bots
performance
priority/p0
priority/p1
priority/p2
priority/p3
scope/backend
scope/db
scope/devops
scope/frontend
scope/qa
scrapers
security
site-finder
stage/1
stage/2
status/blocked
status/done
status/needs-analysis
status/needs-fix
status/qa
status/ready
status/review
status/wip
tech-debt
tradein
ux
week ревью 1
wontfix
вторичка
ИРД
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lekss361/gendesign#1898
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "fix/vat-residential-exempt"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Проблема
compute_financialначисляла НДС на всю валовую маржу:Для РФ-девелопмента это неверно: реализация жилых помещений + услуги застройщика по ДДУ освобождены от НДС (пп.22 / пп.23.1 п.3 ст. 149 НК РФ). Выходной НДС на жильё = 0. Невозмещаемый входной НДС по СМР (п.2 ст.170) уже встроен в gross-ставки себестоимости (Excel-эталон СМР «с НДС»). Итог: модель завышала налоговую нагрузку и занижала прибыль почти каждого проекта.
Фикс
НДС начисляется только на нежилую часть — паркинг (машиноместа нежилые, реализация облагается):
Если паркинг тоже окажется по ДДУ-льготе — оценка консервативна (чуть занижает прибыль), что соответствует honest/conservative-политике модуля.
Эффект (репрезентативный comfort: жильё 10000 м², GFA 11000, паркинг 50)
vat_rubnet_profit_rubПрирост = освобождённый НДС минус 25% налог на прибыль на возросшую базу.
Корректность
Σ cashflow == net_profitсохранён —vatпо-прежнему прокидывается в_build_monthly_cashflow(прорейтится на признание выручки). Проверено численно (diff 0.0).parking=0) →vat == 0(тест).max(0, …)guard корректен.Изменения
financial.py— VAT-база + module docstring (ст. 149 трактовка).exporters/pdf.py— label «НДС (паркинг)» + caveat.ConceptVariantsResult.tsx— caveat + label синхронизированы с новой трактовкой.test_financial_dcf.py— +3 теста (residential-only vat==0; parking vat == точная база; инвариант с паркинг-НДС). 44 passed.Без schema-change (
vat_rubуже существует) → codegen не нужен.Known follow-up (отдельно)
Dev-фикстура
frontend/src/lib/mocks/parcel-analyze.jsonустарела (vat по старой формуле + parking-цена до #1893) — нужен полный регенерейт фикстуры, не патч одного поля. Вынесено в отдельную задачу.Refs #1881