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.