feat(financial): LTC 70%/equity 30% норматив МКД РФ в модели финансирования #1895

Merged
bot-backend merged 1 commit from feat/ltc-equity-financing into main 2026-06-24 16:49:01 +00:00
Collaborator

Проблема

_compute_financing покрывал 100 % кассового разрыва кредитом, что завышало total_interest_rub и занижало net_profit_after_financing_rub. Реальная модель проектного финансирования МКД РФ: банк ≈ 65–75 % (LTC), equity инвестора — остаток.

Изменения

Backend — financial.py

  • Новая константа _LOAN_TO_COST_RATIO = 0.70 (медиана 65–75 % норматива).
  • _compute_financing(operating_cf, annual_rate, ltc_ratio=1.0) — новый параметр с дефолтом 1.0 (BC для прямых вызовов в тестах).
  • Каждый ежемесячный отток: debt += -cf * ltc_ratio вместо debt += -cf.
  • Call site передаёт _LOAN_TO_COST_RATIO.

Backend — test_financial_dcf.py

  • test_financing_ltc_reduces_debt_vs_full_coverage — проверяет, что peak_debt(0.70) ≈ 0.70 × peak_debt(1.0) для fixture с фронт-загруженными оттоками.
  • test_compute_financial_uses_ltc_ratio — интеграционный тест: 0 < peak_debt < cost и net_profit_after = net_profit - total_interest.

Frontend — ptica-adapt.ts

  • Caveat financing_is_simplified уточнён: «70 % — банк (кредитная линия, норматив МКД РФ), 30 % — собственные средства инвестора (без процентов)». Убраны англицизмы.

Frontend — ptica-adapt.honesty.test.ts

  • Assertion обновлён под новый текст caveat: toContain("кредитная линия") + toContain("собственные средства").

Эффект

Для типового comfort/high_rise: total_interest снижается ≈ на 30 %, net_profit_after_financing_rub растёт соответственно. Например, проект с разрывом 2.5 млрд ₽: проценты ~520 → ~360 млн ₽.

Тесты

  • Backend: 41/41 pass (tests/services/generative/test_financial_dcf.py)
  • Frontend: 20/20 pass (ptica-adapt.honesty.test.ts)
## Проблема `_compute_financing` покрывал **100 % кассового разрыва кредитом**, что завышало `total_interest_rub` и занижало `net_profit_after_financing_rub`. Реальная модель проектного финансирования МКД РФ: банк ≈ 65–75 % (LTC), equity инвестора — остаток. ## Изменения ### Backend — `financial.py` - Новая константа `_LOAN_TO_COST_RATIO = 0.70` (медиана 65–75 % норматива). - `_compute_financing(operating_cf, annual_rate, ltc_ratio=1.0)` — новый параметр с дефолтом `1.0` (BC для прямых вызовов в тестах). - Каждый ежемесячный отток: `debt += -cf * ltc_ratio` вместо `debt += -cf`. - Call site передаёт `_LOAN_TO_COST_RATIO`. ### Backend — `test_financial_dcf.py` - `test_financing_ltc_reduces_debt_vs_full_coverage` — проверяет, что `peak_debt(0.70) ≈ 0.70 × peak_debt(1.0)` для fixture с фронт-загруженными оттоками. - `test_compute_financial_uses_ltc_ratio` — интеграционный тест: `0 < peak_debt < cost` и `net_profit_after = net_profit - total_interest`. ### Frontend — `ptica-adapt.ts` - Caveat `financing_is_simplified` уточнён: «70 % — банк (кредитная линия, норматив МКД РФ), 30 % — собственные средства инвестора (без процентов)». Убраны англицизмы. ### Frontend — `ptica-adapt.honesty.test.ts` - Assertion обновлён под новый текст caveat: `toContain("кредитная линия")` + `toContain("собственные средства")`. ## Эффект Для типового comfort/high_rise: `total_interest` снижается ≈ на 30 %, `net_profit_after_financing_rub` растёт соответственно. Например, проект с разрывом 2.5 млрд ₽: проценты ~520 → ~360 млн ₽. ## Тесты - Backend: 41/41 pass (`tests/services/generative/test_financial_dcf.py`) - Frontend: 20/20 pass (`ptica-adapt.honesty.test.ts`)
bot-backend added 1 commit 2026-06-24 16:37:57 +00:00
feat(financial): LTC 70%/equity 30% норматив МКД РФ в модели финансирования
All checks were successful
CI / changes (pull_request) Successful in 6s
CI / frontend-tests (pull_request) Successful in 59s
CI / openapi-codegen-check (pull_request) Successful in 1m55s
CI / backend-tests (pull_request) Successful in 11m44s
7e42b34a46
Заменяет 100%-кредитное покрытие разрыва реалистичной LTC-моделью:
банк покрывает 70 % каждого оттока, собственные средства — 30 %
(без начисления процентов). Итог: total_interest снижается ≈ на 30 %,
net_profit_after_financing_rub растёт соответственно.

- financial.py: добавлен _LOAN_TO_COST_RATIO=0.70, _compute_financing принимает
  ltc_ratio (default 1.0 для BC), call site передаёт константу
- ptica-adapt.ts: caveat «financing_is_simplified» уточнён (без англицизмов)
- test_financial_dcf.py: 2 новых теста (ltc_reduces_debt, uses_ltc_ratio)
- honesty.test.ts: assertion обновлён под новый текст caveat
bot-backend merged commit 4bb09911b8 into main 2026-06-24 16:49:01 +00:00
bot-backend deleted branch feat/ltc-equity-financing 2026-06-24 16:49:02 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#1895
No description provided.