Policy clause
"Net equity exposure between 0% and 50%": how to write it, test it and evidence it
A net equity band limits long equity exposure minus shorts and short futures, relative to NAV. Acclimetry's gross and net exposure template reads the whole book, so it cannot isolate equities. The nearest configuration is a governed formula: the signed value of equity holdings plus the stated delta exposure of equity futures, over NAV.
Net equity exposure must be between 0% and 50% of net asset value.
custom_formulaQuestions to settle before it can be tested
- Which instruments: shares, equity funds, index futures, options at delta? Each needs a class or field the formula reads.
- Derivatives: a future's exposure is not its market value. The formula reads a governed delta-exposure field for each contract.
- Zero floor: is a net short ever allowed? A hard minimum of 0 makes it a breach.
- Funds: a multi-asset fund's equity content is not looked through by this formula.
As a testable rule
Custom formula: equities is the signed value of class Equities, futures the sum of field EQUITY_DELTA_EXPOSURE over class Equity futures. Expression (equities + futures) / nav * 100, where nav is net portfolio value; hard minimum 0, hard maximum 50, warning maximum 45. Any missing input makes the result not evaluated.
A testable wording and where it stops
Net equity exposure must stay between 0% and 50% of net asset value. It is long equity holdings less short ones, plus the delta-adjusted exposure of equity derivatives.
The formula reads only what it is given: shorts need negative values and futures a delta-exposure field. See gross and net exposure limits and gross versus net exposure.
Worked example
Longs of 5.9m, shorts of 0.6m and short futures of 0.65m net to 46.5% of NAV: inside the band, past the 45% warning.
Rule template:custom_formula inputs: name=equities, primitive=value_of, args={"attribute":"class","group":"Equities"} · name=futures, primitive=sum_field, args={"fieldCode":"EQUITY_DELTA_EXPOSURE","attribute":"class","group":"Equity futures"} · name=nav, primitive=nav, args={}expression: (equities + futures) / nav * 100measureLabel: Net equity exposure, percent of NAV
Bounds: hard min 0 · warn max 45 · hard max 50
| Holding | Class | Long / short | Market value | EQUITY_DELTA_EXPOSURE |
|---|---|---|---|---|
| UK equities, long | Equities | long | 3,300,000 | (blank) |
| Global equities, long | Equities | long | 2,600,000 | (blank) |
| Equity shorts | Equities | short | -600,000 | (blank) |
| FTSE 100 futures, short | Equity futures | – | 12,000 | -650000 |
| UK Treasury 3.25% 2033 | Bonds | – | 3,700,000 | (blank) |
| Cash | Cash | – | 988,000 | (blank) |
| Group | Status | Value | Bounds | Headroom to the hard bound | Code |
|---|---|---|---|---|---|
| Net equity exposure, percent of NAV | Warning | 46.5 | 0 – 50 warning ≤ 45 | 3.5 -1.5 to warning | ABOVE_WARNING_MAXIMUM |
ABOVE_WARNING_MAXIMUM: The measured value has crossed the early-warning maximum but not the hard limit.
Computed at build time by the Acclimetry rule engine (backend commit 8197063); the same code runs in the product.
What each monitoring run records
Each run stores the net exposure, its state and headroom, and every resolved input, so a reviewer can rebuild the number. The formula is part of the approved version and cannot change without a new one. A breach opens a case like any other limit.