Files
docs/domains/portfolio/how-to/investigate-discrepancy.md
T

6.0 KiB

Разобрать расхождение суммы портфеля

Используйте этот порядок, когда итог, позиция или доля на экране отличаются от ожидаемого значения. Он помогает определить слой расхождения без изменения данных. Нужны адрес экрана и уже доступный ответ API либо синтетический пример из существующей проверки. Реальные токены, персональные выгрузки и содержимое базы для разбора не нужны; не переносите их в документацию или отчёт.

  1. Определите предмет сравнения. Запишите, открыт отдельный счёт или «Все счета», какая валюта и какой показатель расходятся. Текущая стоимость, свободные деньги, результат открытой позиции и полученный доход — разные величины. Убедитесь, что сравниваемые значения относятся к одному составу счетов и инструменту. Название или тикер сами по себе не доказывают совпадение выпуска; используйте доступные UID, FIGI и ISIN.
  2. Сопоставьте время. Проверьте lastSuccessfulAt, isStale и наличие предупреждения о клиентском обновлении. Серверный снимок не обещает время каждой котировки, а общий портфель может соединять разные моменты. Если запрос завершился ошибкой, доступное действие «Повторить» должно обновить результат или оставить объяснимую ошибку. Перезагрузка backend удаляет кэш и не восстанавливает историю стоимости.
  3. Проверьте состав суммы. Для одной валюты итог складывается из вычислимых стоимостей позиций и доступных денег. Не добавляйте деньги второй раз, не складывайте валюты и не включайте заблокированные средства. Ненулевая позиция с currentValue: null делает оценку неполной, но не даёт нулевой вклад в смысле полной стоимости. CURRENCY участвует в суммах, хотя текущий интерфейс скрывает её карточку — известное расхождение со спецификацией.
  4. Проверьте показатель по его определению. Используйте справочник. Условный пример: 2 бумаги по 100 RUB и 50 RUB свободных денег дают 250 RUB стоимости. Доля позиции среди позиций равна 100%, а доля соответствующей категории в структуре с деньгами — 80%. Купоны и дивиденды не включаются в результат открытой позиции. Для проверки десятичных сумм сохраняйте исходные строки; арифметика с плавающей точкой может сама создать расхождение.
  5. Найдите ответственную границу. Если ответ API корректен, а экран теряет цифры, валюту или показатель, исследуйте frontend. Если исходные безопасные данные и нормализованный ответ расходятся, исследуйте backend. Если не совпадают ожидаемое и описанное поведение, сначала сопоставьте спецификацию портфеля и ограничения потока загрузки. Исправление документации само по себе не разрешает конфликт требований и реализации.

Для адресной проверки исходников владельцами служат сервис снимков, валютные итоги, структура и подготовка экрана. Это точки продолжения расследования; смысл вычислений изложен выше.

Разбор завершён, когда различие объяснено составом, временем или определением показателя либо получен воспроизводимый пример дефекта с ожидаемым и фактическим результатом. В последнем случае сохраните минимальный синтетический пример и адрес ответственного слоя. Ошибки источника и неизвестные значения не исправляются подстановкой нулей или обходом проверки доступа.