G_ANCRDT_ENTTY_INSTRMNT_C

This transformation scheme generates the cube [simple_tooltip content='ANCRDT_ENTTY_INSTRMNT_C; The level of granularity for the counterparty-instrument data is the ‘counterparty-instrument’ combination and each record is uniquely identified by the combination of the following data attributes: (a) reporting agent identifier; (b) observed agent identifier; (c) counterparty identifier; (d) contract identifier; (e) instrument identifier; and (f) counterparty role.



The counterparty-instrument data describes the role of all counterparties in each instrument.



In the case of natural persons being affiliated with instruments reported to AnaCredit, no record for the natural persons must be reported.



The records must be reported no later than the monthly transmission of credit data relevant for the reporting reference date on or before which the instrument was registered in AnaCredit. If a change takes place, the records must be updated no later than the date of the monthly transmission of credit data that is relevant for the reporting reference date on or before which the change came into effect.
']Counterparty-instrument data – ECB Collection[/simple_tooltip].
Starting from a derivation of the enriched input layer for loans ([simple_tooltip content='LN_E']Loan – Enriched[/simple_tooltip]) we add the [simple_tooltip content='CNTRPRTY_ID; An identifier applied by the reporting agent to uniquely identify each counterparty. Each counterparty must have one counterparty identifier. This value will not change over time and cannot be used as the counterparty identifier for any other counterparty.']Counterparty identifier[/simple_tooltip] of the debtor, the [simple_tooltip content='CNTRPRTY_ID; An identifier applied by the reporting agent to uniquely identify each counterparty. Each counterparty must have one counterparty identifier. This value will not change over time and cannot be used as the counterparty identifier for any other counterparty.']Counterparty identifier[/simple_tooltip] of the servicer, the [simple_tooltip content='CNTRPRTY_ID; An identifier applied by the reporting agent to uniquely identify each counterparty. Each counterparty must have one counterparty identifier. This value will not change over time and cannot be used as the counterparty identifier for any other counterparty.']Counterparty identifier[/simple_tooltip] of the beneficiary, the [simple_tooltip content='CNTRPRTY_ID; An identifier applied by the reporting agent to uniquely identify each counterparty. Each counterparty must have one counterparty identifier. This value will not change over time and cannot be used as the counterparty identifier for any other counterparty.']Counterparty identifier[/simple_tooltip] of the servicer of a securitisation, the [simple_tooltip content='CNTRPRTY_ID; An identifier applied by the reporting agent to uniquely identify each counterparty. Each counterparty must have one counterparty identifier. This value will not change over time and cannot be used as the counterparty identifier for any other counterparty.']Counterparty identifier[/simple_tooltip] of the originator of a securitisation for each [simple_tooltip content='INSTRMNT_UNQ_ID; An identifier applied by the reporting agent to uniquely identify each instrument.']Instrument unique identifier[/simple_tooltip]. Please note that these [simple_tooltip content='CNTRPRTY_ID; An identifier applied by the reporting agent to uniquely identify each counterparty. Each counterparty must have one counterparty identifier. This value will not change over time and cannot be used as the counterparty identifier for any other counterparty.']Counterparty identifier[/simple_tooltip]s reflect the BIRD input layer structure and have to be manipulated in order to match the AnaCredit output layer structure. Therefore we additionally connect to the cube [simple_tooltip content='SCRTSTNS_OTHR_CRDT_TRNSFRS_E']Securitisations and other credit transfers – Enriched[/simple_tooltip] in order to add additional variables (e.g. [simple_tooltip content='TYP_RSK_TRNSFR; It defines the type of risk transfer.']Type of risk transfer[/simple_tooltip]) and add the debtor(s) related to each [simple_tooltip content='INSTRMNT_UNQ_ID; An identifier applied by the reporting agent to uniquely identify each instrument.']Instrument unique identifier[/simple_tooltip] depending on the approach taken for joint liabilities (see [simple_tooltip content='APPRCH_JNT_LBLTS; It identifies the approach followed by the reporting institution for joint liabilities.']Approach for joint liabilities[/simple_tooltip]). Having set up all relevant input information we apply functions in order to identify the creditor, servicer and originator (with respect to AnaCredit).

Scheme dependencies:

Transformation Scheme ID

G_ANCRDT_ENTTY_INSTRMNT_C

Description

Generation of the output cube “Instrument data – ECB Collection (ANCRDT_INSTRMNT_C)”

Classification

Phase Type Subtype Related entity
Generation Generation AnaCredit

Natural language

This transformation scheme generates the cube Counterparty-instrument data – ECB Collection.
Starting from a derivation of the enriched input layer for loans (Loan – Enriched) we add the Counterparty identifier of the debtor, the Counterparty identifier of the servicer, the Counterparty identifier of the beneficiary, the Counterparty identifier of the servicer of a securitisation, the Counterparty identifier of the originator of a securitisation for each Instrument unique identifier. Please note that these Counterparty identifiers reflect the BIRD input layer structure and have to be manipulated in order to match the AnaCredit output layer structure. Therefore we additionally connect to the cube Securitisations and other credit transfers – Enriched in order to add additional variables (e.g. Type of risk transfer) and add the debtor(s) related to each Instrument unique identifier depending on the approach taken for joint liabilities (see Approach for joint liabilities). Having set up all relevant input information we apply functions in order to identify the creditor, servicer and originator (with respect to AnaCredit).

Scheme dependencies:

VTL Syntax

0 ANCRDT_ENTTY_INSTRMNT_C := LN_AC;
1 ANCRDT_ENTTY_INSTRMNT_TMP := [left ANCRDT_ENTTY_INSTRMNT_C, TRNSCTNS_CNTRPRTS_INSTRMNT_RLS on ANCRDT_ENTTY_INSTRMNT_C.INSTRMNT_UNQ_ID = TRNSCTNS_CNTRPRTS_INSTRMNT_RLS.INSTRMNT_UNQ_ID] {};
2 ANCRDT_ENTTY_INSTRMNT_TMP := [inner ANCRDT_ENTTY_INSTRMNT_TMP as "A", SCRTSTNS_OTHR_CRDT_TRNSFRS_E as "B" on A.SCRTSTN_TRNSFR_ID = B.SCRTSTN_TRNSFR_ID] {};
3 ANCRDT_ENTTY_INSTRMNT_CRDTR := ANCRDT_ENTTY_INSTRMNT_TMP [calc (G_ENTTY_ID_CRTR (RLTNSHP_SCRTSTN_CRDT_TRNSFR, FDCRY, TYP_RSK_TRNSFR, OBSRVD_AGNT_ID, BNFCRY_ID, TRNSFR_ID)) as "ENTTY_ID"];
4 ANCRDT_ENTTY_INSTRMNT_CRDTR := ANCRDT_ENTTY_INSTRMNT_CRDTR [calc "1" as "ENTTY_RL"];
5 ANCRDT_ENTTY_INSTRMNT_CRDTR := ANCRDT_ENTTY_INSTRMNT_CRDTR [keep (CNTRCT_ID role Identifier, DT_RFRNC role Identifier, ENTTY_ID role Identifier, ENTTY_RL role Identifier, INSTRMNT_ID role Identifier, OBSRVD_AGNT_ID role Identifier)];
6 ANCRDT_ENTTY_INSTRMNT_DBTR := (
if CNSTNT_APPRCH_JNT_LBLTS = "1" then ANCRDT_ENTTY_INSTRMNT_DBTR_APPRCH1
elseif CNSTNT_APPRCH_JNT_LBLTS = "2" then ANCRDT_ENTTY_INSTRMNT_DBTR_APPRCH2
else null
);
7 ANCRDT_ENTTY_INSTRMNT_DBTR := ANCRDT_ENTTY_INSTRMNT_DBTR [keep (CNTRCT_ID role Identifier, DT_RFRNC role Identifier, ENTTY_ID role Identifier, ENTTY_RL role Identifier, INSTRMNT_ID role Identifier, OBSRVD_AGNT_ID role Identifier)];
8 ANCRDT_ENTTY_INSTRMNT_SRVCR := ANCRDT_ENTTY_INSTRMNT_TMP [calc (G_ENTTY_ID_SRVCR (RLTNSHP_SCRTSTN_CRDT_TRNSFR, IS_SRVCD_OBSRVD_AGNT, TYP_RSK_TRNSFR, OBSRVD_AGNT_ID, SRVCR_ID, SRVCR_SCRTSTN_ID)) as "ENTTY_ID"];
9 ANCRDT_ENTTY_INSTRMNT_SRVCR := ANCRDT_ENTTY_INSTRMNT_SRVCR [calc "7" as "ENTTY_RL"];
10 ANCRDT_ENTTY_INSTRMNT_SRVCR := ANCRDT_ENTTY_INSTRMNT_SRVCR [keep (CNTRCT_ID role Identifier, DT_RFRNC role Identifier, ENTTY_ID role Identifier, ENTTY_RL role Identifier, INSTRMNT_ID role Identifier, OBSRVD_AGNT_ID role Identifier)];
11 TRNSCTNS_CNTRPRTS_ORGNTR := ANCRDT_ENTTY_INSTRMNT_TMP [filter (not isnull (ORGNTR_SCRTSTN_ID))];
12 TRNSCTNS_CNTRPRTS_ORGNTR := ANCRDT_ENTTY_INSTRMNT_TMP [rename (ORGNTR_SCRTSTN_ID as "ENTTY_ID")];
13 ANCRDT_ENTTY_INSTRMNT_ORGNTR := ANCRDT_ENTTY_INSTRMNT_TMP [calc "3" as "ENTTY_RL"];
14 ANCRDT_ENTTY_INSTRMNT_ORGNTR := ANCRDT_ENTTY_INSTRMNT_ORGNTR [keep (CNTRCT_ID role Identifier, DT_RFRNC role Identifier, ENTTY_ID role Identifier, ENTTY_RL role Identifier, INSTRMNT_ID role Identifier, OBSRVD_AGNT_ID role Identifier)];
15 ANCRDT_ENTTY_INSTRMNT_C := union (ANCRDT_ENTTY_INSTRMNT_CRDTR, ANCRDT_ENTTY_INSTRMNT_DBTR, ANCRDT_ENTTY_INSTRMNT_SRVCR, ANCRDT_ENTTY_INSTRMNT_ORGNTR);