colr.022.001.01
Scope: This message is sent by a triparty agent to both the collateral giver and the collateral taker or to an account servicer, who manage the account at the triparty agent on behalf of a trading party, in the following circumstances:
- after all collateral movements have been affected (after settlement-initiated) to show the end (fixed) positions (current status) or,
- taking into account all collateral management instructions (including pending initiation and/or initiated.
Usage: This message is sent to provide the details of the valuation of both the collateral and the exposure.
Message Construction
Every ISO20022 message has at the highest level what we call ‘building blocks’. Because the message is constructed as immutable records, the association is by composition. Below you can see the relationship between the message and its constituent building blocks: For comparison, see the ISO20022 official specification
classDiagram direction LR %% TripartyCollateralAndExposureReportV01 recursion level 0 with max 0 TripartyCollateralAndExposureReportV01 *-- "1..1" Pagination1 : Pagination TripartyCollateralAndExposureReportV01 *-- "1..1" Statement78 : StatementGeneralDetails TripartyCollateralAndExposureReportV01 *-- "1..1" CollateralParties9 : CollateralParties TripartyCollateralAndExposureReportV01 *-- "0..1" OverallCollateralDetails2 : OverallCollateralAggregation TripartyCollateralAndExposureReportV01 *-- "0..1" ExposureTypeAggregation3 : ExposureTypeAggregation TripartyCollateralAndExposureReportV01 *-- "0..1" CounterpartyAggregation3 : CounterpartyAggregation TripartyCollateralAndExposureReportV01 *-- "0..1" Transaction124 : Transactions TripartyCollateralAndExposureReportV01 *-- "0..1" TotalValueInPageAndStatement5 : AccountBaseCurrencyTotalAmounts TripartyCollateralAndExposureReportV01 *-- "0..1" SupplementaryData1 : SupplementaryData
Now, we will zero-in one-by-one on each of these building blocks.
Pagination building block
Page number of the message and continuation indicator to indicate that the multi-part preliminary advice is to continue or that the message is the last page of the multi-part preliminary advice. Number used to sequence pages when it is not possible for data to be conveyed in a single message and the data has to be split across several pages (messages). For comparison, see the ISO20022 official specification
classDiagram direction tb %% Pagination1 recursion level 0 with max 1 class Pagination1{ PageNumber IsoMax5NumericText LastPageIndicator IsoYesNoIndicator }
Pagination1 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
PageNumber | Page number. | IsoMax5NumericText - Required 1..1 |
LastPageIndicator | Indicates the last page. | IsoYesNoIndicator - Required 1..1 |
StatementGeneralDetails building block
Provides general information on the report. Characteristics of the statement. For comparison, see the ISO20022 official specification
classDiagram direction tb %% Statement78 recursion level 0 with max 1 class Statement78{ StatementIdentification IsoMax35Text QueryReference IsoMax35Text CollateralSide CollateralRole1Code StatusType StatementStatusType1Code SummaryIndicator IsoYesNoIndicator ActivityIndicator IsoYesNoIndicator } Statement78 *-- "0..1" INumber3Choice : ReportNumber Statement78 *-- "1..1" IDateAndDateTime2Choice : StatementDateTime Statement78 *-- "1..1" IFrequency22Choice : Frequency Statement78 *-- "1..1" IUpdateType15Choice : UpdateType Statement78 *-- "1..1" IStatementBasis14Choice : StatementBasis %% INumber3Choice recursion level 1 with max 1 %% IDateAndDateTime2Choice recursion level 1 with max 1 %% IFrequency22Choice recursion level 1 with max 1 %% IUpdateType15Choice recursion level 1 with max 1 %% IStatementBasis14Choice recursion level 1 with max 1
Statement78 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
StatementIdentification | Reference common to all pages of a statement. | IsoMax35Text - Required 1..1 |
ReportNumber | Sequential number of the report. | INumber3Choice - Optional 0..1 |
QueryReference | Identification of the SecuritiesStatementQuery message sent to request this statement. | IsoMax35Text - Optional 0..1 |
StatementDateTime | Date and time of the statement. | IDateAndDateTime2Choice - Required 1..1 |
Frequency | Frequency of the statement. | IFrequency22Choice - Required 1..1 |
UpdateType | Indicates whether the statement is complete or contains changes only. | IUpdateType15Choice - Required 1..1 |
CollateralSide | Specifies whether the client is the collateral taker or giver. | CollateralRole1Code - Required 1..1 |
StatementBasis | Specifies the basis on which the statement is prepared. | IStatementBasis14Choice - Required 1..1 |
StatusType | Specifies whether the transactions reported are pending or confirmed. | StatementStatusType1Code - Optional 0..1 |
SummaryIndicator | Indicates whether the report is a summary. If the indicator is set to Y then the report will not contain the securities or cash balances. If the indicator is set to N then the report will contain the securities or cash balances. | IsoYesNoIndicator - Required 1..1 |
ActivityIndicator | Indicates whether there is activity or information update reported in the statement. | IsoYesNoIndicator - Required 1..1 |
CollateralParties building block
Identifies the chain of collateral parties.
Identifies the chain of collateral parties on the instruction side. For comparison, see the ISO20022 official specification
classDiagram direction tb %% CollateralParties9 recursion level 0 with max 1 CollateralParties9 *-- "0..1" PartyIdentificationAndAccount202 : PartyA CollateralParties9 *-- "0..1" PartyIdentificationAndAccount202 : ClientPartyA CollateralParties9 *-- "0..1" PartyIdentification136 : TripartyAgent %% PartyIdentificationAndAccount202 recursion level 1 with max 1 class PartyIdentificationAndAccount202{ LEI IsoLEIIdentifier } PartyIdentificationAndAccount202 *-- "1..1" IPartyIdentification120Choice : Identification PartyIdentificationAndAccount202 *-- "0..1" AlternatePartyIdentification7 : AlternateIdentification PartyIdentificationAndAccount202 *-- "0..1" SecuritiesAccount19 : SafekeepingAccount PartyIdentificationAndAccount202 *-- "0..1" BlockChainAddressWallet3 : BlockChainAddressOrWallet PartyIdentificationAndAccount202 *-- "0..1" PartyIdentification136 : AccountOwner PartyIdentificationAndAccount202 *-- "0..1" ITradingPartyCapacity5Choice : PartyCapacity %% PartyIdentificationAndAccount202 recursion level 1 with max 1 class PartyIdentificationAndAccount202{ LEI IsoLEIIdentifier } PartyIdentificationAndAccount202 *-- "1..1" IPartyIdentification120Choice : Identification PartyIdentificationAndAccount202 *-- "0..1" AlternatePartyIdentification7 : AlternateIdentification PartyIdentificationAndAccount202 *-- "0..1" SecuritiesAccount19 : SafekeepingAccount PartyIdentificationAndAccount202 *-- "0..1" BlockChainAddressWallet3 : BlockChainAddressOrWallet PartyIdentificationAndAccount202 *-- "0..1" PartyIdentification136 : AccountOwner PartyIdentificationAndAccount202 *-- "0..1" ITradingPartyCapacity5Choice : PartyCapacity %% PartyIdentification136 recursion level 1 with max 1 class PartyIdentification136{ LEI IsoLEIIdentifier } PartyIdentification136 *-- "1..1" IPartyIdentification120Choice : Identification
CollateralParties9 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
PartyA | Instructing party sending the collateral instruction. | PartyIdentificationAndAccount202 - Optional 0..1 |
ClientPartyA | Party that instructs party A to send the message. | PartyIdentificationAndAccount202 - Optional 0..1 |
TripartyAgent | Party that handles tri-party transactions. | PartyIdentification136 - Optional 0..1 |
OverallCollateralAggregation building block
Overall Collateral contains the global collateral status of all transactions covered in the message, in the reporting currency, that is, the total of the exposure amount, of the posted collateral, of the margin amounts, of the accrued interest, of the fees or commissions and of the principals. In addition, it provides collateral-specific information.
Global collateral status of all transactions covered in the message, in the reporting currency, that is, the total of the exposure amount, of the posted collateral, of the margin amounts, of the accrued interest, of the fees or commissions and of the principals. In addition, it provides collateral-specific information. For comparison, see the ISO20022 official specification
classDiagram direction tb %% OverallCollateralDetails2 recursion level 0 with max 1 class OverallCollateralDetails2{ MarginRate IsoPercentageRate GlobalCollateralStatus CollateralStatus1Code CollateralAdditionalDetails IsoMax350Text } OverallCollateralDetails2 *-- "1..1" CollateralAmount15 : ValuationAmounts OverallCollateralDetails2 *-- "1..1" IDateAndDateTime2Choice : ValuationDate %% CollateralAmount15 recursion level 1 with max 1 class CollateralAmount15{ ValueOfCollateralHeld IsoActiveOrHistoricCurrencyAndAmount TotalExposure IsoActiveOrHistoricCurrencyAndAmount TotalCollateralRequired IsoActiveOrHistoricCurrencyAndAmount TotalAccruedInterest IsoActiveOrHistoricCurrencyAndAmount TotalFeesCommissions IsoActiveOrHistoricCurrencyAndAmount TotalOfPrincipals IsoActiveOrHistoricCurrencyAndAmount TotalPendingCollateralIn IsoActiveOrHistoricCurrencyAndAmount TotalPendingCollateralOut IsoActiveOrHistoricCurrencyAndAmount TotalValueOfOwnCollateral IsoActiveOrHistoricCurrencyAndAmount TotalValueOfReusedCollateral IsoActiveOrHistoricCurrencyAndAmount TotalCashFailed IsoActiveOrHistoricCurrencyAndAmount } CollateralAmount15 *-- "0..1" AmountAndDirection53 : Margin %% IDateAndDateTime2Choice recursion level 1 with max 1
OverallCollateralDetails2 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
ValuationAmounts | Provides details on the collateral valuation. | CollateralAmount15 - Required 1..1 |
MarginRate | The collateral excess/shortage expressed in the percentage of the collateral required. | IsoPercentageRate - Optional 0..1 |
GlobalCollateralStatus | Provides the status after comparing the total collateral required and the total collateral value of all transactions covered in the message. | CollateralStatus1Code - Optional 0..1 |
ValuationDate | Valuation date/time of both the collateral and the exposure. | IDateAndDateTime2Choice - Required 1..1 |
CollateralAdditionalDetails | Provides additional information on the collateral. | IsoMax350Text - Optional 0..1 |
ExposureTypeAggregation building block
Specifies the valuation details per exposure type aggregation. Specifies the valuation details per exposure type aggregation. For comparison, see the ISO20022 official specification
classDiagram direction tb %% ExposureTypeAggregation3 recursion level 0 with max 1 class ExposureTypeAggregation3{ MarginRate IsoPercentageRate GlobalExposureTypeStatus CollateralStatus1Code } ExposureTypeAggregation3 *-- "1..1" IExposureType23Choice : ExposureType ExposureTypeAggregation3 *-- "0..1" GenericIdentification30 : SettlementProcess ExposureTypeAggregation3 *-- "1..0" CollateralAmount16 : ValuationAmounts %% IExposureType23Choice recursion level 1 with max 1 %% GenericIdentification30 recursion level 1 with max 1 class GenericIdentification30{ Identification IsoExact4AlphaNumericText Issuer IsoMax35Text SchemeName IsoMax35Text } %% CollateralAmount16 recursion level 1 with max 1 class CollateralAmount16{ ValueOfCollateralHeld IsoActiveOrHistoricCurrencyAndAmount TotalExposure IsoActiveOrHistoricCurrencyAndAmount TotalCollateralRequired IsoActiveOrHistoricCurrencyAndAmount TotalAccruedInterest IsoActiveOrHistoricCurrencyAndAmount TotalValueOfOwnCollateral IsoActiveOrHistoricCurrencyAndAmount TotalValueOfReusedCollateral IsoActiveOrHistoricCurrencyAndAmount TotalOfPrincipals IsoActiveOrHistoricCurrencyAndAmount TotalPendingCollateralIn IsoActiveOrHistoricCurrencyAndAmount TotalPendingCollateralOut IsoActiveOrHistoricCurrencyAndAmount TotalCashFailed IsoActiveOrHistoricCurrencyAndAmount } CollateralAmount16 *-- "0..1" AmountAndDirection53 : Margin
ExposureTypeAggregation3 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
ExposureType | Specifies the underlying business area/type of trade causing the exposure. | IExposureType23Choice - Required 1..1 |
SettlementProcess | Specifies the settlement process in which the collateral will be settled. | GenericIdentification30 - Optional 0..1 |
ValuationAmounts | Provides details on the collateral valuation. | CollateralAmount16 - Unknown 1..0 |
MarginRate | The collateral excess/shortage expressed in the percentage of the collateral required. | IsoPercentageRate - Optional 0..1 |
GlobalExposureTypeStatus | Provides the status after comparing the total collateral required and the total collateral value of all transactions of the same exposure type. | CollateralStatus1Code - Optional 0..1 |
CounterpartyAggregation building block
Specifies the valuation details per counterparty aggregation. Specifies the valuation details per counterparty aggregation. For comparison, see the ISO20022 official specification
classDiagram direction tb %% CounterpartyAggregation3 recursion level 0 with max 1 class CounterpartyAggregation3{ TerminationOption RepoTerminationOption1Code MarginRate IsoPercentageRate GlobalCounterpartyStatus CollateralStatus1Code } CounterpartyAggregation3 *-- "0..1" IOptionType6Choice : OptionType CounterpartyAggregation3 *-- "0..1" BasketIdentificationAndEligibilitySetProfile1 : BasketIdentificationAndEligibilitySetProfile CounterpartyAggregation3 *-- "1..1" CollateralParties11 : CollateralParties CounterpartyAggregation3 *-- "1..0" CollateralAmount16 : ValuationAmounts %% IOptionType6Choice recursion level 1 with max 1 %% BasketIdentificationAndEligibilitySetProfile1 recursion level 1 with max 1 BasketIdentificationAndEligibilitySetProfile1 *-- "0..1" GenericIdentification1 : PreferentialBasketIdentificationNumber BasketIdentificationAndEligibilitySetProfile1 *-- "0..1" GenericIdentification1 : FallbackStartingBasketIdentification BasketIdentificationAndEligibilitySetProfile1 *-- "0..1" GenericIdentification1 : ExclusionBasketIdentification BasketIdentificationAndEligibilitySetProfile1 *-- "0..1" GenericIdentification1 : EligibilitySetProfile %% CollateralParties11 recursion level 1 with max 1 CollateralParties11 *-- "1..1" PartyIdentification232 : PartyB CollateralParties11 *-- "0..1" PartyIdentification232 : ClientPartyB CollateralParties11 *-- "0..1" PartyIdentification136 : TripartyAgent CollateralParties11 *-- "0..1" SecuritiesAccount19 : CollateralAccount CollateralParties11 *-- "0..1" BlockChainAddressWallet3 : BlockChainAddressOrWallet %% CollateralAmount16 recursion level 1 with max 1 class CollateralAmount16{ ValueOfCollateralHeld IsoActiveOrHistoricCurrencyAndAmount TotalExposure IsoActiveOrHistoricCurrencyAndAmount TotalCollateralRequired IsoActiveOrHistoricCurrencyAndAmount TotalAccruedInterest IsoActiveOrHistoricCurrencyAndAmount TotalValueOfOwnCollateral IsoActiveOrHistoricCurrencyAndAmount TotalValueOfReusedCollateral IsoActiveOrHistoricCurrencyAndAmount TotalOfPrincipals IsoActiveOrHistoricCurrencyAndAmount TotalPendingCollateralIn IsoActiveOrHistoricCurrencyAndAmount TotalPendingCollateralOut IsoActiveOrHistoricCurrencyAndAmount TotalCashFailed IsoActiveOrHistoricCurrencyAndAmount } CollateralAmount16 *-- "0..1" AmountAndDirection53 : Margin
CounterpartyAggregation3 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
OptionType | Specifies whether it is a Call option (right to purchase a specific underlying asset) or a Put option (right to sell a specific underlying asset). | IOptionType6Choice - Optional 0..1 |
TerminationOption | Indication whether the counterparties to the transaction have agreed to an evergreen or extendable repo. | RepoTerminationOption1Code - Optional 0..1 |
BasketIdentificationAndEligibilitySetProfile | Provides information on the baskets identification and the Eligiblity Set Profile. | BasketIdentificationAndEligibilitySetProfile1 - Optional 0..1 |
CollateralParties | Provides the identification of the party or parties associated with the collateral agreement | CollateralParties11 - Required 1..1 |
ValuationAmounts | Provides details on the collateral valuation. | CollateralAmount16 - Unknown 1..0 |
MarginRate | The collateral excess/shortage expressed in the percentage of the collateral required. | IsoPercentageRate - Optional 0..1 |
GlobalCounterpartyStatus | Provides the status after comparing the total collateral required and the total collateral value of all transactions against counterparty. | CollateralStatus1Code - Optional 0..1 |
Transactions building block
Specifies the transaction, the collateral and related valuation details.
Details of the transactions reported. For comparison, see the ISO20022 official specification
classDiagram direction tb %% Transaction124 recursion level 0 with max 1 class Transaction124{ ClientTripartyCollateralTransactionIdentification IsoMax35Text TripartyAgentServiceProviderCollateralTransactionIdentification IsoMax35Text CounterpartyCollateralTransactionReference IsoMax35Text CommonTransactionIdentification IsoMax52Text TerminationOption RepoTerminationOption1Code MarginRate IsoPercentageRate SpreadRate IsoPercentageRate AutomaticAllocation IsoYesNoIndicator } Transaction124 *-- "1..1" IExposureType23Choice : ExposureType Transaction124 *-- "0..1" IOptionType6Choice : OptionType Transaction124 *-- "0..1" BasketIdentificationAndEligibilitySetProfile1 : BasketIdentificationAndEligibilitySetProfile Transaction124 *-- "1..1" CollateralParties11 : CollateralParties Transaction124 *-- "1..1" IClosingDate4Choice : ExecutionRequestedDate Transaction124 *-- "1..1" IClosingDate4Choice : ClosingDate Transaction124 *-- "1..1" CollateralAmount17 : ValuationAmounts Transaction124 *-- "0..1" IRateOrName4Choice : PricingRate Transaction124 *-- "0..1" IInterestComputationMethodFormat4Choice : DayCountBasis Transaction124 *-- "0..2" TransactionStatus6 : TransactionStatus Transaction124 *-- "0..0" SecuritiesBalance3 : SecuritiesBalance Transaction124 *-- "0..0" CashBalance15 : CashBalance %% IExposureType23Choice recursion level 1 with max 1 %% IOptionType6Choice recursion level 1 with max 1 %% BasketIdentificationAndEligibilitySetProfile1 recursion level 1 with max 1 BasketIdentificationAndEligibilitySetProfile1 *-- "0..1" GenericIdentification1 : PreferentialBasketIdentificationNumber BasketIdentificationAndEligibilitySetProfile1 *-- "0..1" GenericIdentification1 : FallbackStartingBasketIdentification BasketIdentificationAndEligibilitySetProfile1 *-- "0..1" GenericIdentification1 : ExclusionBasketIdentification BasketIdentificationAndEligibilitySetProfile1 *-- "0..1" GenericIdentification1 : EligibilitySetProfile %% CollateralParties11 recursion level 1 with max 1 CollateralParties11 *-- "1..1" PartyIdentification232 : PartyB CollateralParties11 *-- "0..1" PartyIdentification232 : ClientPartyB CollateralParties11 *-- "0..1" PartyIdentification136 : TripartyAgent CollateralParties11 *-- "0..1" SecuritiesAccount19 : CollateralAccount CollateralParties11 *-- "0..1" BlockChainAddressWallet3 : BlockChainAddressOrWallet %% IClosingDate4Choice recursion level 1 with max 1 %% IClosingDate4Choice recursion level 1 with max 1 %% CollateralAmount17 recursion level 1 with max 1 class CollateralAmount17{ ValueOfCollateralHeld IsoActiveOrHistoricCurrencyAndAmount TotalExposure IsoActiveOrHistoricCurrencyAndAmount TransactionAmount IsoActiveOrHistoricCurrencyAndAmount TotalAccruedInterest IsoActiveOrHistoricCurrencyAndAmount TotalCollateralRequired IsoActiveOrHistoricCurrencyAndAmount TotalValueOfOwnCollateral IsoActiveOrHistoricCurrencyAndAmount TotalValueOfReusedCollateral IsoActiveOrHistoricCurrencyAndAmount TotalPendingCollateralIn IsoActiveOrHistoricCurrencyAndAmount TotalPendingCollateralOut IsoActiveOrHistoricCurrencyAndAmount TotalOfPrincipals IsoActiveOrHistoricCurrencyAndAmount TerminationTransactionAmount IsoActiveOrHistoricCurrencyAndAmount TotalCashFailed IsoActiveOrHistoricCurrencyAndAmount } CollateralAmount17 *-- "0..0" CollateralTransactionAmountBreakdown2 : TransactionAmountBreakdown CollateralAmount17 *-- "0..1" AmountAndDirection53 : Margin %% IRateOrName4Choice recursion level 1 with max 1 %% IInterestComputationMethodFormat4Choice recursion level 1 with max 1 %% TransactionStatus6 recursion level 1 with max 1 class TransactionStatus6{ CoverageStatus CollateralStatus1Code } TransactionStatus6 *-- "0..1" ICollateralStatus2Choice : ExecutionStatus %% SecuritiesBalance3 recursion level 1 with max 1 class SecuritiesBalance3{ CollateralIndicator IsoYesNoIndicator SettlementStatus SecuritiesSettlementStatus3Code DenominationCurrency ActiveOrHistoricCurrencyCode } SecuritiesBalance3 *-- "1..1" SecurityIdentification19 : FinancialInstrumentIdentification SecuritiesBalance3 *-- "1..1" IBalanceQuantity13Choice : Quantity SecuritiesBalance3 *-- "0..1" SafeKeepingPlace3 : SafekeepingPlace SecuritiesBalance3 *-- "0..1" PartyIdentification232 : AccountOwner SecuritiesBalance3 *-- "0..1" SecuritiesAccount19 : SafekeepingAccount SecuritiesBalance3 *-- "0..1" BlockChainAddressWallet3 : BlockChainAddressOrWallet SecuritiesBalance3 *-- "0..0" Rating2 : RatingDetails SecuritiesBalance3 *-- "0..1" ForeignExchangeTerms19 : ForeignExchangeDetails SecuritiesBalance3 *-- "0..1" ValuationsDetails1 : ValuationDetails SecuritiesBalance3 *-- "0..0" GenericIdentification178 : TransactionLotNumber %% CashBalance15 recursion level 1 with max 1 class CashBalance15{ Amount IsoActiveOrHistoricCurrencyAndAmount } CashBalance15 *-- "0..1" ForeignExchangeTerms19 : ForeignExchangeDetails CashBalance15 *-- "0..1" ICashAccountIdentification5Choice : CashAccount CashBalance15 *-- "0..1" ValuationsDetails2 : ValuationDetails CashBalance15 *-- "0..0" GenericIdentification178 : TransactionLotNumber
Transaction124 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
ClientTripartyCollateralTransactionIdentification | Unique reference identifying the triparty collateral management transaction from the client’s point of view. | IsoMax35Text - Optional 0..1 |
TripartyAgentServiceProviderCollateralTransactionIdentification | Unique reference identifying the triparty-agent/service-provider collateral management transaction from the triparty-agent’s/service-provider’s point of view. | IsoMax35Text - Required 1..1 |
CounterpartyCollateralTransactionReference | Unique collateral transaction reference assigned by counterparty. | IsoMax35Text - Optional 0..1 |
CommonTransactionIdentification | Unique identification (UTI) agreed upon by the two trade counterparties to identify the trade. | IsoMax52Text - Optional 0..1 |
ExposureType | Specifies the underlying business area/type of trade causing the exposure. | IExposureType23Choice - Required 1..1 |
OptionType | Specifies whether it is a Call option (right to purchase a specific underlying asset) or a Put option (right to sell a specific underlying asset). | IOptionType6Choice - Optional 0..1 |
TerminationOption | Indication whether the counterparties to the transaction have agreed to an evergreen or extendable repo. | RepoTerminationOption1Code - Optional 0..1 |
BasketIdentificationAndEligibilitySetProfile | Provides information on the baskets identification and the Eligiblity Set Profile. | BasketIdentificationAndEligibilitySetProfile1 - Optional 0..1 |
CollateralParties | Identifies the chain of collateral parties. | CollateralParties11 - Required 1..1 |
ExecutionRequestedDate | Date/time at which the party requested the initiation instruction to be executed. | IClosingDate4Choice - Required 1..1 |
ClosingDate | Closing date/time or maturity date/time of the transaction. | IClosingDate4Choice - Required 1..1 |
ValuationAmounts | Provides details on the collateral valuation. | CollateralAmount17 - Required 1..1 |
PricingRate | Interest rate to be paid on the transaction amount, as agreed between the counterparties. | IRateOrName4Choice - Optional 0..1 |
MarginRate | The collateral excess/shortage expressed in the percentage of the collateral required. | IsoPercentageRate - Optional 0..1 |
SpreadRate | Margin rate over or under an index. Feedback | IsoPercentageRate - Optional 0..1 |
DayCountBasis | Specifies the computation method of (accrued) interest of the financial instrument. | IInterestComputationMethodFormat4Choice - Optional 0..1 |
AutomaticAllocation | Specifies whether the allocation of the collateral is manual or automatic. | IsoYesNoIndicator - Optional 0..1 |
TransactionStatus | Provides the status of a transaction. | TransactionStatus6 - Collection 0..2 |
SecuritiesBalance | Quantity of securities assigned as collateral position. | SecuritiesBalance3 - Unknown 0..0 |
CashBalance | Amount of cash assigned as collateral position. | CashBalance15 - Unknown 0..0 |
AccountBaseCurrencyTotalAmounts building block
Total valuation amounts provided in the base currency of the account Totals for the value of the holdings reported in the statement or page. For comparison, see the ISO20022 official specification
classDiagram direction tb %% TotalValueInPageAndStatement5 recursion level 0 with max 1 class TotalValueInPageAndStatement5{ TotalExposureValueOfPage IsoActiveOrHistoricCurrencyAndAmount TotalCollateralHeldValueOfPage IsoActiveOrHistoricCurrencyAndAmount }
TotalValueInPageAndStatement5 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
TotalExposureValueOfPage | Total value of exposure reported in this message. | IsoActiveOrHistoricCurrencyAndAmount - Optional 0..1 |
TotalCollateralHeldValueOfPage | Total value of collateral held reported in this message. | IsoActiveOrHistoricCurrencyAndAmount - Optional 0..1 |
SupplementaryData building block
Additional information that cannot be captured in the structured elements and/or any other specific block. Additional information that can not be captured in the structured fields and/or any other specific block. For comparison, see the ISO20022 official specification
classDiagram direction tb %% SupplementaryData1 recursion level 0 with max 1 class SupplementaryData1{ PlaceAndName IsoMax350Text } SupplementaryData1 *-- "1..1" IsoSupplementaryDataEnvelope1 : Envelope %% IsoSupplementaryDataEnvelope1 recursion level 1 with max 1
SupplementaryData1 members
Member name | Description | Data Type / Multiplicity |
---|---|---|
PlaceAndName | Unambiguous reference to the location where the supplementary data must be inserted in the message instance. In the case of XML, this is expressed by a valid XPath. | IsoMax350Text - Optional 0..1 |
Envelope | Technical element wrapping the supplementary data. | IsoSupplementaryDataEnvelope1 - Required 1..1 |
Extensibility and generalization considerations
To facilitate generalized design patterns in the system, the TripartyCollateralAndExposureReportV01 implementation follows a specific implementaiton pattern. First of all, TripartyCollateralAndExposureReportV01 impleemnts IOuterRecord indicating it is the outermost logical part of the message definition. Like all message wrappers, TripartyCollateralAndExposureReportV01Document implements IOuterDocument. Because TripartyCollateralAndExposureReportV01 implements IOuterDocument, it is a suitable template parameter for IOuterDocument, and causes the internal ‘Message’ to be of type TripartyCollateralAndExposureReportV01.
classDiagram class IOuterRecord TripartyCollateralAndExposureReportV01 --|> IOuterRecord : Implements TripartyCollateralAndExposureReportV01Document --|> IOuterDocument~TripartyCollateralAndExposureReportV01~ : Implements class IOuterDocument~TripartyCollateralAndExposureReportV01~ { TripartyCollateralAndExposureReportV01 Message }
Document wrapper for serialization
The only real purpose TripartyCollateralAndExposureReportV01Document serves is to cause the document to be serialized into the ‘urn:iso:std:iso:20022:tech:xsd:colr.022.001.01’ namespace. Therefore, it will probably be the usual practice to build the message and construct this wrapper at the last minute using TripartyCollateralAndExposureReportV01.ToDocument() method. The returned TripartyCollateralAndExposureReportV01Document value will serialize correctly according to ISO 20022 standards.
classDiagram TripartyCollateralAndExposureReportV01Document *-- TripartyCollateralAndExposureReportV01 : Document
Sample of message format
This is an abbreviated version of what the message should look like.
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:colr.022.001.01">
<TrptyCollAndXpsrRpt>
<Pgntn>
<!-- Pagination inner content -->
</Pgntn>
<StmtGnlDtls>
<!-- StatementGeneralDetails inner content -->
</StmtGnlDtls>
<CollPties>
<!-- CollateralParties inner content -->
</CollPties>
<OvrllCollAggtn>
<!-- OverallCollateralAggregation inner content -->
</OvrllCollAggtn>
<XpsrTpAggtn>
<!-- ExposureTypeAggregation inner content -->
</XpsrTpAggtn>
<CtrPtyAggtn>
<!-- CounterpartyAggregation inner content -->
</CtrPtyAggtn>
<Txs>
<!-- Transactions inner content -->
</Txs>
<AcctBaseCcyTtlAmts>
<!-- AccountBaseCurrencyTotalAmounts inner content -->
</AcctBaseCcyTtlAmts>
<SplmtryData>
<!-- SupplementaryData inner content -->
</SplmtryData>
</TrptyCollAndXpsrRpt>
</Document>
Data from ISO specification
This is the technical data from the specification document.
<messageDefinition
xmi:id="_2uaM0Ss7EeySlt9bF77XfA"
name="TripartyCollateralAndExposureReportV01"
definition="Scope:
This message is sent by a triparty agent to both the collateral giver and the collateral taker or to an account servicer, who manage the account at the triparty agent on behalf of a trading party, in the following circumstances:
- after all collateral movements have been affected (after settlement-initiated) to show the end (fixed) positions (current status) or,
- taking into account all collateral management instructions (including pending initiation and/or initiated.

Usage:
This message is sent to provide the details of the valuation of both the collateral and the exposure."
registrationStatus="Registered"
messageSet="_-NT5QSs5EeyjDaA8ufxSSw"
xmlTag="TrptyCollAndXpsrRpt"
rootElement="Document"
xmlns:xmi="http://www.omg.org/XMI">
<doclet
xmi:id="_2uaM0ys7EeySlt9bF77XfA"
type="purpose"
content="Triparty Scenario's
The triparty collateral management service is used by two trading parties at the agreement of a business transaction (for example, a repo, a securities loan, ... ) when they want to secure the transaction with collateral. The management of this collateral (that is, agreeing on quantity and type, marking to market, ... ) is done by a third party, the triparty collateral manager.

Before starting to use these services, the three parties will first sign a contract in which they stipulate the rules of the agreement.

There are three types of triparty collateral management:

1.collateral management without settlement,


2.collateral management with settlement of the collateral on the books of the agent,


3.collateral management with external settlement.


In the first scenario the triparty agent will calculate the necessary quantity of collateral and instruct the trading parties on which movements need to occur. For example, party A and party B closed a repo deal for 1,000,000 USD. They inform the triparty agent of the deal details. The agent will then calculate which pieces of collateral need to be moved to cover the 1,000,000 USD exposure and will inform the trading parties. Parties A and B then settle the movements as instructed by the agent.

In the second scenario the triparty agent will also execute the settlement. By servicing a safekeeping account for both parties, the agent will not only calculate the necessary movements but will also settle them internally on its books.

The third scenario is only a slight deviation from the second one. In this case the agent has the authority to move securities from party A's and B's safekeeping accounts with their respective subcustodians.


Tri-party Definitions
Collateral Management Transaction
The triparty agent will create this transaction on receipt of the deal information from the two trading parties. For example, when party A and B have agreed on a securities loan and have reported this information to the triparty agent, the agent will create a collateral management transaction to manage this securities loan on its internal systems.

A transaction is created, can be changed and is terminated.


Collateral Management Instruction
The trading parties will request the triparty manager to perform certain instructions on the collateral management transaction. An instruction can be to initiate a transaction, modify the terms of a transaction, or close a transaction (non-exhaustive list of instructions). The triparty agent will send feedback on the requested instruction.


Lifecycle of Collateral Management Transaction
When a transaction is initiated, agreed on by both parties, accepted and declared valid by the triparty agent, the lifecycle of the transaction starts. The transaction will normally last as long as the underlying deal. At the end of its lifecycle a transaction is closed.


Lifecycle of Collateral Management Instruction
The lifecycle of a collateral management instruction starts when the user of the triparty service sends an instruction message. At receipt of the instruction message, the triparty agent will process the instruction and assign a status (that is, valid or rejected). At each step in the lifecycle of an instruction a different status will be assigned. For example, an instruction can be valid for processing or rejected because it is incorrect. If an instruction needs to be matched (for example, two initiation- instructions from party A and B need to match) it can have a status matched or unmatched. Other statuses describe the sufficiency or eligibility of the collateral.



" />
<constraint
xmi:id="_2uaM1Ss7EeySlt9bF77XfA"
name="AggregationFullRule"
definition="Aggregation information, overall, by exposure or by counterparty, should be provided in a complete report.
"
registrationStatus="Provisionally Registered" />
<constraint
xmi:id="_MB9eMFy5Eeygu-I1C7HLOA"
name="CashBalancePresenceRule"
definition="If Summary Indicator is set to Y Cash Balance cannot be present"
registrationStatus="Provisionally Registered"
expression="<RuleDefinition><ComplexRule xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ComplexRule"><mustBe><connector>AND</connector><BooleanRule xsi:type="Absence"><leftOperand>/Transactions[*]/CashBalance[*]</leftOperand></BooleanRule></mustBe><onCondition><connector>AND</connector><BooleanRule xsi:type="EqualToValue"><leftOperand>/StatementGeneralDetails/SummaryIndicator</leftOperand><rightOperand>true</rightOperand></BooleanRule></onCondition></ComplexRule></RuleDefinition>" />
<constraint
xmi:id="_fgc3MFy5Eeygu-I1C7HLOA"
name="CollateralIndicatorValueRule"
definition="If Summary Indicator is set to Yes and securitiesbalance/Collateral Indicator is present and it is a securities lending, then securitiesbalance/collateral indicator must be set to No."
registrationStatus="Provisionally Registered"
expression="<RuleDefinition><ComplexRule xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ComplexRule"><mustBe><connector>AND</connector><BooleanRule xsi:type="EqualToValue"><leftOperand>/Transactions[*]/SecuritiesBalance[*]/CollateralIndicator</leftOperand><rightOperand>false</rightOperand></BooleanRule></mustBe><onCondition><connector>AND</connector><BooleanRule xsi:type="EqualToValue"><leftOperand>/StatementGeneralDetails/SummaryIndicator</leftOperand><rightOperand>true</rightOperand></BooleanRule><BooleanRule xsi:type="Presence"><leftOperand>/Transactions[*]/SecuritiesBalance[*]/CollateralIndicator</leftOperand></BooleanRule><BooleanRule xsi:type="EqualToValue"><leftOperand>/Transactions[*]/ExposureType/Code</leftOperand><rightOperand>SecuritiesLendingAndBorrowing</rightOperand></BooleanRule></onCondition></ComplexRule></RuleDefinition>" />
<messageBuildingBlock
xmi:id="_2uaM2Ss7EeySlt9bF77XfA"
name="Pagination"
definition="Page number of the message and continuation indicator to indicate that the multi-part preliminary advice is to continue or that the message is the last page of the multi-part preliminary advice."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="1"
xmlTag="Pgntn"
complexType="_xhMHQa6XEees_ufOy2ci-g" />
<messageBuildingBlock
xmi:id="_2uaM2ys7EeySlt9bF77XfA"
name="StatementGeneralDetails"
definition="Provides general information on the report."
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="1"
xmlTag="StmtGnlDtls"
complexType="_SnKxcMRtEeij-rSPpvD-Tw" />
<messageBuildingBlock
xmi:id="_2uaM3Ss7EeySlt9bF77XfA"
name="CollateralParties"
definition="Identifies the chain of collateral parties.
"
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="1"
xmlTag="CollPties"
complexType="_YHwsTSs-EeySlt9bF77XfA" />
<messageBuildingBlock
xmi:id="_2uaM3ys7EeySlt9bF77XfA"
name="OverallCollateralAggregation"
definition="Overall Collateral contains the global collateral status of all transactions covered in the message, in the reporting currency, that is, the total of the exposure amount, of the posted collateral, of the margin amounts, of the accrued interest, of the fees or commissions and of the principals. In addition, it provides collateral-specific information.
"
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="0"
xmlTag="OvrllCollAggtn"
complexType="_5qoZgRIlEeyLzJfz3xPQNA" />
<messageBuildingBlock
xmi:id="_2uaM4Ss7EeySlt9bF77XfA"
name="ExposureTypeAggregation"
definition="Specifies the valuation details per exposure type aggregation."
registrationStatus="Provisionally Registered"
minOccurs="0"
xmlTag="XpsrTpAggtn"
complexType="_Ml-goSs9EeySlt9bF77XfA" />
<messageBuildingBlock
xmi:id="_2uaM4ys7EeySlt9bF77XfA"
name="CounterpartyAggregation"
definition="Specifies the valuation details per counterparty aggregation."
registrationStatus="Provisionally Registered"
minOccurs="0"
xmlTag="CtrPtyAggtn"
complexType="_SZLjaSs_EeySlt9bF77XfA" />
<messageBuildingBlock
xmi:id="_2uaM5Ss7EeySlt9bF77XfA"
name="Transactions"
definition="Specifies the transaction, the collateral and related valuation details.
"
registrationStatus="Provisionally Registered"
minOccurs="0"
xmlTag="Txs"
complexType="_M9-J0Ss9EeySlt9bF77XfA" />
<messageBuildingBlock
xmi:id="_2uaM5ys7EeySlt9bF77XfA"
name="AccountBaseCurrencyTotalAmounts"
definition="Total valuation amounts provided in the base currency of the account"
registrationStatus="Provisionally Registered"
maxOccurs="1"
minOccurs="0"
xmlTag="AcctBaseCcyTtlAmts"
complexType="_L7GM8MRrEeij-rSPpvD-Tw" />
<messageBuildingBlock
xmi:id="_2uaM6Ss7EeySlt9bF77XfA"
name="SupplementaryData"
definition="Additional information that cannot be captured in the structured elements and/or any other specific block."
registrationStatus="Provisionally Registered"
minOccurs="0"
xmlTag="SplmtryData"
complexType="_Qn0zC9p-Ed-ak6NoX_4Aeg_468227563" />
<messageDefinitionIdentifier
businessArea="colr"
messageFunctionality="022"
flavour="001"
version="01" />
</messageDefinition>
ISO Building Blocks
The following items are used as building blocks to construct this message.