Risk Metrics

Batch Lstar residual returns (up to 100 tickers)

Fetch Lstar-dispatched daily residual return and recommended hedge level (L1/L2/L3) for up to 100 tickers in one call. Uses the same level selection as GET /lstar: the canonical ERM3 lstar_level when threshold is omitted, the legacy marginal-ER rule when a threshold is passed. Response is a results map keyed by upper-case ticker; per-ticker failures use status: error or not_found without failing the whole batch. Billing: $0.015/ticker + $0.0075/extra year, minimum $0.03/call. Parquet/CSV: Long-format table with columns ticker, date, lstar, residual_return, hedge ratios, and raw ER inputs. Only successful tickers with non-empty histories are included.

post/batch/lstar

Request

  • Base URL: https://riskmodels.app/api
  • URL: https://riskmodels.app/api/batch/lstar
  • Auth: HTTP bearer

Request body

tickersstring[] required
market_factor_etfstring
yearsinteger
thresholdnumber
axis'industry'

Cascade axis — industry only. DEPRECATED value style was removed in v4 and now returns 400 — style is a diagnostic block served by POST /v4/decompose; the industry cascade is the only hedge axis.

format'json' | 'parquet' | 'csv'

Example request

{
  "tickers": [
    "NVDA",
    "AAPL",
    "MSFT"
  ]
}

Response

Batch Lstar results as JSON or long-format Parquet/CSV.

resultsobject required
yearsinteger required
threshold_usednumber required
market_factor_etfstring required
axis'industry' required

Always industry — the style axis was removed in v4.

Example response

{
  "_metadata": {
    "model_version": "ERM3-L3-v30",
    "data_as_of": "2026-03-17",
    "factor_set_id": "SPY_uni_mc_3000",
    "universe_size": 2987,
    "wiki_uri": "https://riskmodels.app/docs/methodology/erm3-l3",
    "factors": [
      "SPY",
      "XLK",
      "XLF",
      "XLV",
      "XLE",
      "XLI",
      "XLY",
      "XLP",
      "XLU",
      "XLB",
      "XLRE",
      "XLC"
    ],
    "range": [
      "2018-01-02",
      "2026-04-14"
    ]
  }
}

Changes

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