Policy clause
"No more than 10% with any single counterparty": how to write it, test it and evidence it
A counterparty cap limits what the portfolio stands to lose if one bank or dealer fails: deposits, derivative valuations and other amounts owed. It becomes testable once the policy says which exposures count, whether group entities combine and whether netting is allowed. Acclimetry's counterparty concentration sums absolute exposure per counterparty group over NAV.
Exposure to any single counterparty may not exceed 10% of the portfolio.
counterparty_concentrationQuestions to settle before it can be tested
- What counts: deposits, derivative valuations, settlement amounts, collateral posted? Name the classes; holdings with no counterparty, such as listed shares, are not counted.
- Entity or group: two banks in one group are one counterparty if the policy says so, and the group dimension combines them.
- Netting: Acclimetry adds absolute values unless an approved netting agreement covers that counterparty, portfolio and classes.
- Missing counterparties: in classes that must have one, a line without a counterparty leaves the rule not evaluated.
As a testable rule
Counterparty concentration template, dimension counterparty group, current exposure at market value, with Deposits and FX forwards required to name a counterparty. Hard maximum 10%, warning maximum 8%. Netting applies only under an approved agreement, and the result says whether it did.
A testable wording
Exposure to any banking group may not exceed 10% of the portfolio's market value. Exposure means deposits plus the absolute market value of derivatives with any entity in the group. Netting applies only under an executed netting agreement.
For UCITS funds, see the deposits limit and the OTC counterparty limit.
Worked example
A 400,000 deposit and a forward worth 140,000 face one banking group through two entities: 10.8% of the 5m book, over the cap.
Rule template:counterparty_concentration dimension: counterpartyGrouprequireCounterpartyClassNames: Deposits, FX forwardsmeasure: market_value
Bounds: warn max 8% · hard max 10%
| Holding | Class | Counterparty | Counterparty group | Market value |
|---|---|---|---|---|
| Beacon Bank 95-day deposit | Deposits | Beacon Bank plc | Beacon Banking Group | 400,000 |
| FX forward with Beacon Markets | FX forwards | Beacon Markets Ltd | Beacon Banking Group | 140,000 |
| Calder Bank 30-day deposit | Deposits | Calder Bank plc | Calder Bank plc | 300,000 |
| FX forward with Calder Bank | FX forwards | Calder Bank plc | Calder Bank plc | 60,000 |
| UK equities | Equities | – | – | 2,800,000 |
| UK Treasury 3.25% 2033 | Government bonds | – | – | 1,300,000 |
| Group | Status | Value | Bounds | Headroom to the hard bound | Code |
|---|---|---|---|---|---|
| Beacon Banking Group | Breach | 10.8% | ≤ 10% warning ≤ 8% | -0.8% -2.8% to warning | ABOVE_HARD_MAXIMUM |
| Calder Bank plc | Compliant | 7.2% | ≤ 10% warning ≤ 8% | 2.8% 0.8% to warning | WITHIN_LIMITS |
ABOVE_HARD_MAXIMUM: The measured value exceeds the approved hard maximum, beyond any stated tolerance.WITHIN_LIMITS: The measured value sits inside every approved bound.
Largest contributors: Beacon Banking Group → Beacon Bank 95-day deposit 8%, FX forward with Beacon Markets 2.8% · Calder Bank plc → Calder Bank 30-day deposit 6%, FX forward with Calder Bank 1.2%
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 one row per counterparty group with its exposure, state, headroom and contributing deposits and contracts, plus the netting disclosure. Positions with no counterparty are not counted. A breach opens a case, which can record notice given to the counterparty or the client.