/v1/portfolio/analyze — which recomputes a
portfolio’s entire history on every call — a tracked portfolio is stored once and then
advanced day-by-day by appending only new days. This reduces repeated computation for daily dashboards and ongoing monitoring.
Each tracked portfolio keeps a boundary marking the last persisted per-RIC value and
benchmark level. Incremental updates extend the analytics from that boundary,
carrying forward portfolio and benchmark values across updates.
Lifecycle
1
Validate & resolve (optional)
Use Validate Portfolio to check a
portfolio definition (per-date weights must sum to 1.0, symbols must resolve) and
Resolve Portfolio to normalize symbols to
RICs before you commit to tracking.
2
Track
Track Portfolio registers the portfolio and
kicks off its initial analytics in the background, returning a
portfolio_key
immediately (no compute wait). The portfolio is initializing until its analytics
persist.3
Read analytics
Poll Get Analytics. It returns a
discriminated status:
not_computed (200) while the background compute hasn’t landed
yet, then ready with the full analytics series. Reads use stored series. If the
cached analytics are missing or use an older calculation version, the read
derives updated analytics from those series.4
Keep it current
Increment brings a portfolio forward to
yesterday by appending only the missing trading days. Active portfolios are advanced
automatically by a daily worker, so this is usually hands-off.