Policy clause
"At least 25% available within 30 days": how to write it, test it and evidence it
A liquidity floor promises that a share of the portfolio can be turned into cash within a stated horizon. It is testable only with an approved days-to-liquidate figure for every holding, funds included. Acclimetry tests the mirror image: holdings needing more than 30 days may be at most 75% of the portfolio.
At least 25% of the portfolio must be capable of being realised within 30 days.
time_to_liquidateQuestions to settle before it can be tested
- Available how: at a fair price in normal markets, or in stressed ones? The estimate carries that judgement, so the policy should say whose estimate counts.
- Funds: dealing frequency, notice and settlement all count. A monthly fund with 30 days' notice is not available within 30 days.
- Exactly 30 days: a holding is illiquid only when its estimate is beyond the horizon, so 30 days counts as available.
- Missing estimates: liquidity is never assumed, so the rule reads not evaluated until every holding has a figure.
As a testable rule
Time-to-liquidate template, field DAYS_TO_LIQUIDATE, horizon 30 days: the weight of holdings estimated beyond 30 days. Hard maximum 75%, warning maximum 70%, because at least 25% within 30 days means at most 75% beyond. Cash stays in at zero days, since exempting it would also remove it from the denominator.
A testable wording
At least 25% of the portfolio's market value must be realisable within 30 calendar days. Each holding is measured by its approved days-to-liquidate estimate, including dealing and notice periods.
The time-to-liquidate limit explains the field; liquidity bases covers notice periods, lock-ups and gates.
Worked example
Only 4.4m of the 20m portfolio, 22%, can be realised within 30 days; the 78% beyond the horizon breaches the implied 75% cap.
Rule template:time_to_liquidate fieldCode: DAYS_TO_LIQUIDATEhorizonDays: 30
Bounds: warn max 70% · hard max 75%
| Holding | Class | Market value | DAYS_TO_LIQUIDATE |
|---|---|---|---|
| Cash | Cash | 600,000 | 0 |
| UK Treasury 4% 2030 | Government bonds | 1,400,000 | 1 |
| Listed equities | Equities | 2,400,000 | 3 |
| Hedge fund, quarterly dealing | Hedge funds | 4,600,000 | 95 |
| Property fund, six months' notice | Property | 3,000,000 | 180 |
| Private equity funds | Private equity | 8,000,000 | 1800 |
| Group | Status | Value | Bounds | Headroom to the hard bound | Code |
|---|---|---|---|---|---|
| Beyond 30 days | Breach | 78% | ≤ 75% warning ≤ 70% | -3% -8% to warning | ABOVE_HARD_MAXIMUM |
ABOVE_HARD_MAXIMUM: The measured value exceeds the approved hard maximum, beyond any stated tolerance.
Largest contributors: Beyond 30 days → Private equity funds 40%, Hedge fund, quarterly dealing 23%, Property fund, six months' notice 15%
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 weight beyond the horizon, its state, headroom and the holdings that make it up. The result names the field and horizon it read and counts the holdings beyond it. A missing estimate produces a not-evaluated result naming the gap, never a pass.