(low) ConceptVariantsResult: IRR-proxy подписан как 'IRR / Внутренняя норма доходности' — переобещание метрики #1412

Closed
opened 2026-06-15 05:53:44 +00:00 by bot-backend · 0 comments
Collaborator

Severity: low · Категория: report · Файл: frontend/src/components/concept/ConceptVariantsResult.tsx:111,205-209

ConceptVariantsResult.tsx:205-209 (KpiCard label='IRR', delta.value='Внутренняя норма доходности') и :111 (headline 'IRR {formatPct(irr)}'). financial.irr на бэкенде — НЕ IRR, а статичный прокси: margin_on_cost / _PROJECT_YEARS без дисконтирования и денежных потоков (financial.py:8-15 docstring 'NO time discounting ... static stand-in', :71-79 расчёт, лог 'irr_proxy'). PDF-экспортёр честно подписывает поле 'IRR-proxy' (exporters/pdf.py:104). Импакт: финдиректор читает 'IRR / Внутренняя норма доходности' как настоящую дисконтированную IRR, тогда как это аннуализированная маржа-на-затраты; терминологическое переобещание в клиентском документе + рассинхрон названий между фронтом ('IRR') и PDF ('IRR-proxy'). Как чинить: подписать как 'IRR (оценка)' / 'IRR-proxy' и заменить delta на честную расшифровку ('Упрощённая оценка: маржа на затраты, без дисконта'), синхронно с PDF.

Почему баг: Финдиректор читает 'IRR / Внутренняя норма доходности' как настоящую IRR с учётом времени, тогда как это аннуализированная маржа-на-затраты. Терминологическое переобещание в клиентском документе при том, что сам движок маркирует поле как proxy. Рассинхрон фронта (IRR) и PDF-экспорта (IRR-proxy) даёт два разных названия одной метрики.

Как чинить: Подписать как 'IRR (упрощённый / proxy)' или 'Маржа-на-затраты, годовая' в соответствии с бэкендовым PDF ('IRR-proxy') и убрать формулировку 'Внутренняя норма доходности' либо снабдить её caveat.


deep-audit «армия ботов 2» · verify+harden, confidence 0.85 · unit U77

**Severity:** low · **Категория:** report · **Файл:** `frontend/src/components/concept/ConceptVariantsResult.tsx:111,205-209` ConceptVariantsResult.tsx:205-209 (KpiCard label='IRR', delta.value='Внутренняя норма доходности') и :111 (headline 'IRR {formatPct(irr)}'). financial.irr на бэкенде — НЕ IRR, а статичный прокси: margin_on_cost / _PROJECT_YEARS без дисконтирования и денежных потоков (financial.py:8-15 docstring 'NO time discounting ... static stand-in', :71-79 расчёт, лог 'irr_proxy'). PDF-экспортёр честно подписывает поле 'IRR-proxy' (exporters/pdf.py:104). Импакт: финдиректор читает 'IRR / Внутренняя норма доходности' как настоящую дисконтированную IRR, тогда как это аннуализированная маржа-на-затраты; терминологическое переобещание в клиентском документе + рассинхрон названий между фронтом ('IRR') и PDF ('IRR-proxy'). Как чинить: подписать как 'IRR (оценка)' / 'IRR-proxy' и заменить delta на честную расшифровку ('Упрощённая оценка: маржа на затраты, без дисконта'), синхронно с PDF. **Почему баг:** Финдиректор читает 'IRR / Внутренняя норма доходности' как настоящую IRR с учётом времени, тогда как это аннуализированная маржа-на-затраты. Терминологическое переобещание в клиентском документе при том, что сам движок маркирует поле как proxy. Рассинхрон фронта (IRR) и PDF-экспорта (IRR-proxy) даёт два разных названия одной метрики. **Как чинить:** Подписать как 'IRR (упрощённый / proxy)' или 'Маржа-на-затраты, годовая' в соответствии с бэкендовым PDF ('IRR-proxy') и убрать формулировку 'Внутренняя норма доходности' либо снабдить её caveat. --- <sub>deep-audit «армия ботов 2» · verify+harden, confidence 0.85 · unit U77</sub>
bot-backend added the
week ревью 1
label 2026-06-15 05:53:44 +00:00
bot-backend added the
scope/backend
label 2026-06-15 11:02:00 +00:00
Sign in to join this conversation.
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#1412
No description provided.