diff --git a/features/brokerage-account-income-analytics.md b/features/brokerage-account-income-analytics.md index 040495e..1885c93 100644 --- a/features/brokerage-account-income-analytics.md +++ b/features/brokerage-account-income-analytics.md @@ -41,10 +41,21 @@ skeleton. Пустой результат объясняет отсутстви - Backend проверяет доступ к счёту, проходит все cursor pages исполненных операций и не возвращает частичный результат при ошибке страницы или повреждённой cursor chain. - Только точные upstream types coupon и dividend формируют результат. Суммы остаются exact decimal strings в исходной валюте; отрицательные корректировки сохраняют знак. Налоги, комиссии, сделки, переводы, погашения и dividend transfer не входят в доход. -- Итоги, сравнения, buckets и Instrument breakdown не смешивают валюты и не создают общий FX total. Сравнения показывают предыдущий период и, когда календарная дата и история счёта позволяют, период годом ранее. +- Итоги, сравнения, buckets и Instrument breakdown не смешивают валюты и не создают общий FX total. На странице показано только сравнение с годом ранее, когда календарная дата и история счёта позволяют. Предыдущий период остаётся в API response, но не отображается. - Buckets по-прежнему приходят с backend: дни для 1–45 дней, недели для 46–180 и месяцы для более длинного периода, включая пустые buckets. Страница дохода не строит из них график или текстовую динамику; API response не меняется. - Раздел «Выплаты» показывает единый список LedgerEntryRow-карточек в исходном порядке `entries`: одна карточка на каждую выплату. Внешних групп по инструментам или валютам, итогов и количества выплат инструмента нет. Описание, дата, доступная identity и signed Money видны в каждой карточке; валюты по-прежнему разделены в summary/comparisons. Дополнительный запрос за составом не нужен. +Раздел «Годом ранее» показывает цветные панели без общей белой подложки и +внутренних отступов у внешнего блока. Точные периоды показаны в заголовках двух панелей через +`Intl.DateTimeFormat.formatRange` с русской локалью и UTC для календарных дат. +Отдельного заголовка с датами и валютного бейджа нет; валюта остаётся у каждой суммы. +Панель «Разница» сохраняет серверную абсолютную разницу и дополняет итог, купоны +и дивиденды процентом: абсолютная разница / сумма годом ранее × 100. +Это округлённый показатель для отображения, а не пересчёт Money или инвестиционная +доходность. `Intl.NumberFormat` показывает знак и не более одного десятичного разряда. +При нулевой или отрицательной базе либо непредставимом числовом отношении +процентный бейдж не отображается; абсолютная разница остаётся видимой. + ## Связь breakdown с выплатами Каждая запись `income-analytics.entries` содержит обязательный `instrumentKey`,