Files
docs/domains/portfolio/concentration.md
T
codex-bot 37430da4c9
Docs security / security (push) Successful in 7s
Docs verify / verify (push) Successful in 11s
docs: describe concentration tab and stored instrument classification (WealthLedger/main#48) (#60)
2026-11-01 19:29:01 +03:00

7.0 KiB

Концентрация портфеля

Вкладка «Концентрация» на странице счёта /accounts/:accountId показывает, какие акции, облигации, секторы и эмитенты занимают наибольшую часть текущей оценки Portfolio. Она отвечает на вопрос «где сконцентрированы деньги», который не решают карточки позиций и структура активов. Точный смысл полей и долей — в справочнике данных.

Вкладка и разрезы

Вкладка есть только у отдельного счёта: в режиме «Все счета» её нет. Появление вкладки не меняет вкладку, открытую по умолчанию («Позиции»), и содержание остальных вкладок. Пока Portfolio загружается, при его ошибке или штатном пустом составе вкладки нет; при Portfolio хотя бы с одной позицией или денежным остатком вкладка показывается.

Вкладка содержит четыре разреза и показывает один из них одновременно:

Разрез Что ранжирует Типы позиций
«Акции» Пять крупнейших позиций акций STOCK
«Облигации» Пять крупнейших позиций облигаций BOND
«Секторы» Пять крупнейших секторов по данным T-Bank STOCK, BOND, FUND
«Эмитенты» Пять крупнейших эмитентов (брендов актива) STOCK, BOND

Фонды участвуют только в разрезе «Секторы»: их эмитент — управляющая компания, а не компания внутри фонда. Позиции типов CURRENCY, FUTURE, OPTION, STRUCTURED_NOTE, DIGITAL_FINANCIAL_ASSET и OTHER во вкладку не входят.

Позиции без сектора образуют явную группу «Сектор не указан», без бренда — «Эмитент не указан»; обе группы показываются с видимой долей. Государственные облигации определяются значением сектора T-Bank government с подписью «Государственный сектор»; других собственных классификаций WealthLedger не вводит. Название элемента в разрезе эмитентов — название бренда; если у одного бренда разные названия, показывается название позиции с наибольшей стоимостью.

Топ-5 и «Прочее»

В каждом разрезе показаны пять крупнейших элементов по текущей денежной оценке, каждый с суммой и долей. Рядом показан суммарный показатель «Топ-5 · N %». Если в разрезе семь и более элементов, все остальные объединены в одну строку «Прочее» с числом элементов, суммой и долей. При шести и меньшем числе элементов каждый показан своей строкой. По нажатию на «Прочее» раскрывается полный перечень остальных элементов, каждый со своей суммой и долей; топ-5 и диаграмма при этом не меняются.

Доли считаются от суммы стоимостей позиций разреза в выбранной валюте и в сумме дают ровно 100 %; округление — до десятой доли процента, очень малые доли показываются как «< 0,1 %». Отрицательные и нулевые стоимости, а также позиции без оценки в разрез не входят. Конвертации валют нет: каждая позиция входит только в валюту своей оценки.

Валюта

У вкладки свой список валют — валюты оценок позиций акций, облигаций и фондов, отсортированные по ISO-коду, — и свой выбор, независимый от «Структуры портфеля». По умолчанию выбрана первая валюта списка. При одной валюте переключатель не показывается. Общего итога по нескольким валютам нет. Выбранные разрез и валюта сохраняются, пока пользователь остаётся на странице счёта, включая переключение её вкладок, и сбрасываются при новом заходе и при смене счёта.

Диаграмма и неполные данные

Рядом с перечнем показана кольцевая диаграмма, согласованная с перечнем; информация передаётся не только цветом, есть текстовый эквивалент. Если ответ отмечен как неполный (completeness: "incomplete" — часть позиций не имеет оценки), над разрезом появляется предупреждение «Данные неполные», а под списком — сноска «Не учтено позиций: N» с числом позиций, не вошедших в разрез. Пустой разрез (нет позиций с положительной оценкой в выбранной валюте) показывает текстовое состояние вместо диаграммы.

Откуда берутся сектор и эмитент

Сектор и эмитент — часть данных Portfolio: их получает backend в часовом обходе и сохраняет в снимке вместе с остальными полями позиций (поток загрузки, интеграция T-Bank). Вкладка считается по уже загруженному снимку и не обращается к T-Bank.