Methodology note
Missing and stale data: not evaluated or conservative breach
When a rule's input is missing, the registry's default leaves the rule not evaluated: the partial numbers prove nothing, and no zero is invented. A rule version can instead choose a conservative-breach policy, which reads the gap as a breach until the data arrives. Some breaches are proven even with gaps, because the missing values could only make them worse.
cash_range · Issuer concentration limit (single issuer, single instrument)concentration · Derivative exposure limitderivative_exposure · Duration and maturity bandsduration_maturity · Custom data-field bandscustom_field_band · Credit quality floor (minimum rating)credit_qualityTwo policies
- Not evaluated (default): the result reads not evaluated with
MISSING_POSITION_DATA, and the next step is to supply the values. - Conservative breach: the result reads breach with
CONSERVATIVE_MISSING_DATA, a deliberately pessimistic reading until the values arrive.
The choice is made per rule version. The conservative policy suits limits where an unknown is itself unacceptable.
What partial data can prove
Missing data blocks a compliant reading, but not always a breach. If the known notionals already exceed a derivative cap, a missing notional can only add, so the breach is proven and stands.
A largest-member maximum already over its ceiling is proven too. A weighted average with an unknown member proves nothing, even when the known member alone is far over the cap.
Stale is missing
A holding whose approved price is older than the organisation's threshold is left unvalued (STALE_PRICES). A snapshot older than its threshold reads STALE_POSITIONS.
A late delivery inside its grace window is different. It reads pending external data, which is neither a pass nor an exception until the window closes.
Pitfall: the conservative policy floods the queue
Conservative breaches are real cases. On a book with daily pricing gaps they can bury genuine breaches.
Pair the policy with an owner for the data, and review how often it fires.
Worked example
One fund has no readable value, so under the conservative policy the cash rule reads breach until the value arrives; the default policy would read not evaluated.
Rule template:cash_range cashClassNames: Cash
Bounds: hard min 2% · hard max 10%
unknownDataPolicy: conservative_breach
| Holding | Class | Market value |
|---|---|---|
| Cash at bank | Cash | 50 |
| Listed equities | Stocks | 900 |
| Unpriced fund | Funds | – |
| Group | Status | Value | Bounds | Headroom to the hard bound | Code |
|---|---|---|---|---|---|
| Cash | Breach | – | 2% – 10% | – | CONSERVATIVE_MISSING_DATA |
CONSERVATIVE_MISSING_DATA: Data was missing and this rule version's approved unknown-data policy is conservative_breach, so the gap is treated as a breach rather than as Not Evaluated.
Computed at build time by the Acclimetry rule engine (backend commit 8197063); the same code runs in the product.
Questions
When should a rule use the conservative policy?
Where acting on a false breach costs less than missing a real one, such as a sanctions screen. For most allocation limits, the default reading with a data case is enough.
Does a conservative breach open a case?
Yes, like any breach result. It reads breach until the data arrives, and a fresh compliant reading can then close it.