Policy clause
"Average credit quality of at least A-": how to write it, test it and evidence it
An average-rating clause sets a floor on the portfolio's weighted credit quality rather than on each bond. Letters cannot be averaged, so the policy must name a numeric scale, the rule for split ratings and the treatment of unrated bonds. Acclimetry can band a governed numeric rating score; it does not turn letters into scores.
The average credit quality of the bond portfolio must be at least A-.
custom_field_bandQuestions to settle before it can be tested
- Which scale: a linear ladder from AAA = 1 to D = 22, or a default-probability scale that weights low grades more? The two can disagree on the same bonds.
- Which rating: lowest, median or one named agency? The score field must follow the same rule.
- Unrated bonds: score them, exclude them or stop? A bond with no score makes the average not evaluated.
- What is averaged: bonds only, or cash at a nominal score? Exempt classes leave the average entirely.
As a testable rule
Custom field band template, field RATING_SCORE on the ladder AAA = 1 to D = 22, value-weighted average, cash exempt. Hard maximum 7, the score for A-, with a warning at 6.5: a lower score is better, so the band caps the average. The score is a governed input that the data team maintains.
A testable wording and where it stops
The value-weighted average rating of the bonds must be 7 (A-) or better. Ratings are scored from AAA = 1 to D = 22, using the lower available rating. Unrated bonds score 12 (BB).
The credit quality floor reads letter grades bond by bond; an average needs numbers, so the score arrives as a field. If the policy means no bond below A-, use the floor instead.
Worked example
Weighted by value, the six bonds average 7.24, worse than A- (7), though none is below BBB-; cash is exempt.
Rule template:custom_field_band fieldCode: RATING_SCOREscopeLevel: portfolioaggregate: weighted_averageexemptClassNames: Cash
Bounds: warn max 6.5 · hard max 7
| Holding | Class | Market value | RATING_SCORE |
|---|---|---|---|
| Supranational 3.5% 2030 (AAA) | Bonds | 300,000 | 1 |
| Sovereign 4% 2034 (AA) | Bonds | 500,000 | 3 |
| Corporate 4.5% 2031 (A+) | Bonds | 700,000 | 5 |
| Corporate 5% 2032 (A-) | Bonds | 900,000 | 7 |
| Corporate 5.5% 2030 (BBB) | Bonds | 1,400,000 | 9 |
| Corporate 6% 2033 (BBB-) | Bonds | 1,200,000 | 10 |
| Cash | Cash | 250,000 | (blank) |
| Group | Status | Value | Bounds | Headroom to the hard bound | Code |
|---|---|---|---|---|---|
| Portfolio | Breach | 7.24 | ≤ 7 warning ≤ 6.5 | -0.24 -0.74 to warning | ABOVE_HARD_MAXIMUM |
ABOVE_HARD_MAXIMUM: The measured value exceeds the approved hard maximum, beyond any stated tolerance.
Largest contributors: Portfolio → Corporate 6% 2033 (BBB-) 10, Corporate 5.5% 2030 (BBB) 9, Corporate 5% 2032 (A-) 7
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 average score, its state, headroom, numerator and denominator, with the worst-scored bonds as contributors. A missing score produces a not-evaluated result stating how many bonds lacked it. The scale is recorded on the rule version as an author decision, so the reading can be reproduced.