Skip to main content
The Portfolio Tracker turns a one-shot portfolio analysis into a persistent object that Parallax keeps current for you. Unlike /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.
5

Amend or remove

Update changes the definition (holdings, benchmark, currency, initial value) and recomputes; Delete removes the portfolio and all its data.

Endpoints

Typical flow

Where a tracker operation accepts end_date, a future date is capped at yesterday. Rebalance weights must sum to 1.0 for each date. The initial track request does not accept an end_date; see the request schema for each operation.
Last modified on October 19, 2026