Performance начинается с сохранённых snapshots
Текущий баланс не восстанавливает путь портфеля. Сервис записывает агрегированные snapshots при connect, sync и remove и возвращает точки выбранного range. Первая отслеживаемая точка — явная граница: API не заявляет all-time performance за период, когда надёжных данных ещё не было.
Вводы и выводы не являются инвестиционной доходностью
External cash flows меняют стоимость без прибыли или убытка. Поддержанная provider history импортируется и оценивается около времени события, чтобы отделить net contributions от рынка. Если история или историческая USD-цена недоступна, coverage уменьшается вместо скрытой классификации потока как gain.
Modified Dietz учитывает время
При достаточных данных API использует оценку Modified Dietz. Каждый внешний поток взвешивается по времени нахождения в выбранном периоде, что полезнее простого деления P&L на opening value. Результат остаётся оценкой, зависящей от частоты snapshots, provider history и качества цен.
Coverage является частью результата
Состояния complete, partial, tracking-started и no-data не позволяют точному на вид проценту опередить доказательства. UI должен показывать coverage рядом с P&L и return, объяснять недостающие permissions и окна и не строить ranking или alerts на partial figure как на аудированной доходности.
Запрашивайте тот range, который видит пользователь
7D, 30D, 90D, 1Y и ALL имеют разные start points, но общие coverage rules. Загружайте новый range после выбора пользователя, а не скачивайте все snapshots заранее. Краткий BFF cache допустим только при предсказуемой invalidation после sync.