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 are fast and never trigger a recompute.
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 September 21, 2026