Policy clause
"Unrated bonds count as below investment grade": how to write it, test it and evidence it
This clause settles the question a credit floor leaves open: a bond with no rating counts as sub-investment grade. Without it, Acclimetry's default leaves the credit rule not evaluated whenever an unrated bond is held. With it, the rule counts unrated bonds toward the weight below the minimum and states that treatment on every result.
Unrated bonds will be treated as below investment grade.
credit_qualityQuestions to settle before it can be tested
- What is unrated: no rating from any agency, a withdrawn rating, or none from the agencies the policy names? Blank, NR and WR values all read as unrated.
- Internal ratings: may the manager's own assessment stand in? If so, it must sit in a field the rule reads.
- Exempt instruments: deposits and cash funds may carry no rating at all. Exempt their classes rather than count them.
- Where the treatment lives: organisation-wide or in this rule only? A rule may state its own treatment, overriding the organisation's.
As a testable rule
Credit quality floor template, minimum grade BBB-, rating field RATING, unrated treatment count as below the minimum, cash exempt. Hard maximum 10%, warning maximum 8%. The treatment is part of the approved version, so changing it needs a new version and its approval.
A testable wording
A bond with no long-term rating from S&P, Moody's or Fitch counts as below investment grade for every limit in this policy. Deposits and money-market funds are excluded.
The four treatments are compared in unrated holdings; the credit quality floor carries the rule.
Worked example
Two unrated bonds, counted as below the minimum, join the BB bond: 11% of the 4m book, over the cap.
Rule template:credit_quality minimumGrade: BBB-fieldCode: RATINGexemptClassNames: CashunratedTreatment: below_minimum
Bounds: warn max 8% · hard max 10%
| Holding | Class | Market value | RATING |
|---|---|---|---|
| Sovereign 4% 2031 | Bonds | 1,200,000 | AA |
| Corporate 4.75% 2030 | Bonds | 900,000 | A- |
| Corporate 5.25% 2032 | Bonds | 1,300,000 | BBB |
| Corporate 6.5% 2029 | Bonds | 200,000 | BB |
| Private placement 6% 2031, unrated | Bonds | 140,000 | (blank) |
| Social housing bond 5% 2040 | Bonds | 100,000 | NR |
| Cash | Cash | 160,000 | (blank) |
| Group | Status | Value | Bounds | Headroom to the hard bound | Code |
|---|---|---|---|---|---|
| Credit quality | Breach | 11% | ≤ 10% warning ≤ 8% | -1% -3% to warning | ABOVE_HARD_MAXIMUM |
ABOVE_HARD_MAXIMUM: The measured value exceeds the approved hard maximum, beyond any stated tolerance.
Largest contributors: Credit quality → Corporate 6.5% 2029 (BB) 5%, Private placement 6% 2031, unrated 3.5%, Social housing bond 5% 2040 2.5%
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 below the floor, unrated bonds included, with its state, headroom and the contributing bonds. The result names the unrated treatment applied and the number of unrated holdings, so a downgrade can be told from a missing rating. Under the default treatment the same book would read not evaluated.