(low) ConceptVariantsResult: IRR-proxy движка подаётся в UI как полноценная «Внутренняя норма доходности» #1445

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

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

ConceptVariantsResult.tsx:111 (headline «IRR {formatPct(financial.irr)}») и :205-208 (KpiCard label='IRR', delta.value='Внутренняя норма доходности'). Backend financial.py:8,71-79 явно считает irr = (gross_margin/cost)/_PROJECT_YEARS как «simplified proxy ... NO time discounting» и собственный PDF-экспортёр pdf.py:104 + сноска :135-137 честно подписывают строку как «IRR-proxy ... без дисконтирования (не настоящий IRR)». Frontend отбрасывает квалификатор «proxy» и называет показатель полноценной «Внутренней нормой доходности». Импакт: переоценка корректности метрики в клиентском документе + рассинхрон с PDF того же движка (цифра irr*100 совпадает, расходится только подпись). Фикс: подписать как «IRR-proxy (без дисконтирования)» и добавить caveat, синхронно с PDF.

Почему баг: backend/app/services/generative/financial.py:8,75-79 — irr = (gross_margin/cost)/PROJECT_YEARS, явно помечен в коде как «simplified proxy ... NO time value», и собственный PDF-экспортёр (exporters/pdf.py:104) честно подписывает строку как «IRR-proxy». Frontend отбрасывает квалификатор «proxy» и называет показатель полноценной «Внутренней нормой доходности» в клиентском документе, что переоценивает корректность метрики (настоящий IRR требует дисконтирования денежных потоков). Рассинхрон между честностью движка и формулировкой в UI. Числовое значение (irr*100) совпадает с PDF, поэтому это вопрос подписи, а не цифры — отсюда low.

Как чинить: Подписать как «IRR (упрощённый proxy)» или «Доходность на затраты (proxy)» синхронно с backend PDF и добавить caveat, что это не дисконтированный IRR.


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

**Severity:** low · **Категория:** report · **Файл:** `frontend/src/components/concept/ConceptVariantsResult.tsx:111, 205-209` ConceptVariantsResult.tsx:111 (headline «IRR {formatPct(financial.irr)}») и :205-208 (KpiCard label='IRR', delta.value='Внутренняя норма доходности'). Backend financial.py:8,71-79 явно считает irr = (gross_margin/cost)/_PROJECT_YEARS как «simplified proxy ... NO time discounting» и собственный PDF-экспортёр pdf.py:104 + сноска :135-137 честно подписывают строку как «IRR-proxy ... без дисконтирования (не настоящий IRR)». Frontend отбрасывает квалификатор «proxy» и называет показатель полноценной «Внутренней нормой доходности». Импакт: переоценка корректности метрики в клиентском документе + рассинхрон с PDF того же движка (цифра irr*100 совпадает, расходится только подпись). Фикс: подписать как «IRR-proxy (без дисконтирования)» и добавить caveat, синхронно с PDF. **Почему баг:** backend/app/services/generative/financial.py:8,75-79 — irr = (gross_margin/cost)/PROJECT_YEARS, явно помечен в коде как «simplified proxy ... NO time value», и собственный PDF-экспортёр (exporters/pdf.py:104) честно подписывает строку как «IRR-proxy». Frontend отбрасывает квалификатор «proxy» и называет показатель полноценной «Внутренней нормой доходности» в клиентском документе, что переоценивает корректность метрики (настоящий IRR требует дисконтирования денежных потоков). Рассинхрон между честностью движка и формулировкой в UI. Числовое значение (irr*100) совпадает с PDF, поэтому это вопрос подписи, а не цифры — отсюда low. **Как чинить:** Подписать как «IRR (упрощённый proxy)» или «Доходность на затраты (proxy)» синхронно с backend PDF и добавить caveat, что это не дисконтированный IRR. --- <sub>deep-audit «армия ботов 2» · verify+harden, confidence 0.9 · unit U90</sub>
bot-backend added the
week ревью 1
label 2026-06-15 05:55:42 +00:00
bot-backend added the
scope/backend
label 2026-06-15 11:02:06 +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#1445
No description provided.