---
title: "Latest fund hedge ratios (L1 / L2 / L3)"
method: GET
path: "/funds/{bw_fund_id}/hedge"
tags: ["Funds"]
---

# Latest fund hedge ratios (L1 / L2 / L3)

`GET /funds/{bw_fund_id}/hedge`

## Request

- Base URL: `https://riskmodels.app/api`
- URL: `https://riskmodels.app/api/funds/{bw_fund_id}/hedge`
- Auth: HTTP bearer

Latest L1/L2/L3 ETF hedge ratios for a fund. Reads `L{1,2,3}_HR (teo, symbol)` from Slice 7's per-fund `ds_hr.zarr` at the latest teo. Empty arrays are emitted for levels with no non-NaN entries (small / niche funds may only have an L1 market hedge).

## Path parameters

- `bw_fund_id` string, required

## Response `200`

Per-level hedge legs.

- FundHedgeResponse: Latest L1/L2/L3 hedge ratios for a fund. Empty arrays are emitted for levels with no non-NaN entries (e.g. small / niche funds may only have an L1 market hedge). Composing a full hedge basket means concatenating L1 + L2 + L3 entries.
  - `bw_fund_id` string, required
  - `ticker` string, nullable
  - `fund_name` string, nullable
  - `equity_style_9box` string, nullable
  - `teo` string, date, required: Latest teo that carries a hedge. Trailing teos with no book (past the holdings forward-fill cap) are skipped.
  - `holdings_teo` string, date, nullable: Report date of the filed holdings behind `teo`'s weights. Holdings are carried forward onto later month-ends between filings, so this can be months before `teo`. Hedge ratios are per dollar of the fund's ERM3-universe book (holdings outside the ERM3 universe are excluded; a holding without a hedge ratio counts as unhedged).
  - `L1` FundHedgeLeg[], required
    - `etf` string, required: ETF symbol (e.g. SPY, XLK, SMH).
    - `hr` number, float, required: Hedge ratio (dollar_ratio) — ETF notional per $1 of fund exposure at this level.
  - `L2` FundHedgeLeg[], required
    - `etf` string, required: ETF symbol (e.g. SPY, XLK, SMH).
    - `hr` number, float, required: Hedge ratio (dollar_ratio) — ETF notional per $1 of fund exposure at this level.
  - `L3` FundHedgeLeg[], required
    - `etf` string, required: ETF symbol (e.g. SPY, XLK, SMH).
    - `hr` number, float, required: Hedge ratio (dollar_ratio) — ETF notional per $1 of fund exposure at this level.

## Other responses

- `402`: Insufficient prepaid balance.
- `404`: Fund not found, or no hedge ratio panel.
- `429`: Rate limit exceeded.

---

[API](https://skmtc.dev/riskmodels/apis/riskmodels-api.md) · [All operations](https://skmtc.dev/riskmodels/apis/riskmodels-api/llms.txt) · [OpenAPI document](https://skmtc.dev/riskmodels/apis/riskmodels-api/revisions/1a034cad408a?raw)
