Risk Metrics

Portfolio risk index (L3 variance decomposition)

Holdings-weighted L3 explained-risk decomposition (market, sector, subsector, residual), approximate portfolio volatility (weighted vol_23d), and optional daily time series of portfolio ER over years. Partial resolution: unresolved tickers appear in errors; computation uses resolved positions only. Metered; includes _agent and _metadata. Billing: $0.15 per request (empty positions / syncing placeholder responses are not charged).

post/portfolio/risk-index

Request

  • Base URL: https://riskmodels.app/api
  • URL: https://riskmodels.app/api/portfolio/risk-index
  • Auth: HTTP bearer

Request body

timeSeriesboolean

When true, include time_series of daily portfolio ER.

yearsinteger

History span when timeSeries is true.

Response

Portfolio aggregates, per-ticker breakdown, optional time series; or status "syncing" when positions is empty (Plaid / holdings not ready).

status'syncing'

Present only when positions was empty (holdings not ready).

messagestring

Human-readable hint when status is syncing.

per_tickerobject
_metadataobject

Example response

{
  "_agent": {
    "cost_usd": 0.005,
    "latency_ms": 145,
    "request_id": "req_abc123xyz",
    "confidence": {
      "overall": 0.98
    },
    "data_freshness": "2026-02-21T10:30:00Z",
    "billing_code": "ticker_returns_v2"
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.