Bezeichnung des Algorithmus | XEN_Resolution_Planning |
Kurzbezeichnung | Ableitung des Typ des Geschäfts für Resolution Planning |
Verbale Beschreibung/Beispiele | Der Algorithmus iteriert über verschiedene Kriterien, die für die Zuordnung von Eventualverbindlichkeiten, Kapitalinstrumenten und Eventualverbindlichkeiten in die durch SRB/EBA vorgegebene Liability data structure maßgeblich sind. Sind die Kriterien der Zuordnung erfüllt, so wird ein neuer Datensatz auf der Tabelle RP_Resolution_Planning erzeugt. Bei der Tabelle werden auch die entsprechenden Wertarten hinterlegt. Ein Geschäftsfall kann in mehrere Kategorien fallen, in diesem Fall werden für einen Geschäftsfall mehrere Datensätze auf der Entität RP_Resolution_Planning mit den entsprechend aufgeschlüsselten Werten hinterlegt. Zudem wird hier jede Emission auf alle unterschiedlichen Investoren aufgeteilt (mittels GI_Geschaeftsfall_Investor); auch der Teil der Emission, dessen Investoren nicht bekannt sind, wird hier hinterlegt. Der Investor wird in AI_Einheitennummer_ID hinterlegt, seine Gegenparteiklasse unter RP05_Resolution_Planning_Gegenparteiklasse_Code. Die hinterlegten Werte sind (pro Wertart) disjunkt. Die folgenden Wertarten werden der Tabelle GFW_Geschaeftsfall_Wert entnommen und nach RP01_Resolution_Planning_Kategorie_Code, RP03_Insolvenzrang_Code und AI_Einheitennummer_ID (die den Investor/Gläubiger enthält) aufgeschlüsselt in RPW_Resolution_Planning_Wert hinterlegt:
Es ist zu beachten, dass in manchen Fällen (u.A. Derivate, Garantien, Eigenkapitalinstrumente) auch auf andere Wertarten von GFW_Geschaeftsfall_Wert zurückgegriffen wird, die oben nicht aufgelistet sind. Dies liegt daran, dass in den Liability Data Report- sowie EBA-ITS on Resolution Planning-Templates unter "Outstanding nominal amount" unterschiedliche Wertarten abhängig vom Instrument-Typ zu verstehen sind. Somit entsprechen die Werte, die auf RPW_Resolution_Planning_Wert als "Ausstehender Nominalwert" + "Zinsabgrenzung Haben (Kundensicht)" dargestellt werden, dem "Outstanding nominal amount" gem. Spezifikation des Liability Data Report/EBA-ITS on Resolution Planning. Siehe auch Beispiele für XEN_Resolution_Planning |
Kommt vor in/wird verwendet für |
//Beginn Hauptfunktion FUNKTION XEN_Resolution_Planning (AI_Mandant MA, AI_Geschaeftsfall_ID gfId, AI_Stichtag_Datum repDate, AI_Kons_ID konsId) geschaeftsfallkategorie = SELEKTIERE GF.GF00_Geschaeftsfallkategorie_Code VON GF_Geschaeftsfall ifrs_kennzeichen = SELEKTIERE MO.MO04_IFRS_Kennzeichen VON MO_Meldeobjekt MIT MO.AI_Kons_ID ISTGLEICH konsId WENN(ifrs_kennzeichen ISTGLEICH WAHR) DANN bilanzseite = SELEKTIERE GF.GFA171_Bilanzseite_IFRS_Code VON GF_Geschaeftsfall eigenkapitalklassifikation = SELEKTIERE GF.GF178_bilanzielle_Eigenkapitalklassifikation_IFRS_Code VON GF_Geschaeftsfall SONST bilanzseite = SELEKTIERE GF.GFA109_Bilanzseite_local_GAAP_Code VON GF_Geschaeftsfall eigenkapitalklassifikation = SELEKTIERE GF.GFA136_bilanzielle_Eigenkapitalklassifikation_NGAAP_Code VON GF_Geschaeftsfall ENDE verwaltung_kundengelder = SELEKTIERE GF.GF179_Verwaltung_Kundengelder_Kennzeichen VON GF_Geschaeftsfall systemanbieter = SELEKTIERE GF.GF180_Verbindlichkeit_Systemanbieter_Kennzeichen VON GF_Geschaeftsfall hfs = SELEKTIERE GK.GK04_Zur_Veräußerung_gehalten_Kennzeichen VON GK_Geschaeftsfall_Konsolidierungssicht short = SELEKTIERE GF.GF40_Short_Position_Kennzeichen VON GF_Geschaeftsfall treuhand = SELEKTIERE GF.GF15_Treuhandvermoegen_Code VON GF_Geschaeftsfall nachrangigkeit = SELEKTIERE GF.GF05_Nachrangigkeit_Code VON GF_Geschaeftsfall ursprungslaufzeit = SELEKTIERE GF.GFA83_Ursprungslaufzeit_Code VON GF_Geschaeftsfall garantieart = SELEKTIERE GF.GF204_Garantieart_Code VON GF_Geschaeftsfall restlaufzeit = SELEKTIERE GF.GFA181_Restlaufzeit_Rueckzahlung_Code VON GF_Geschaeftsfall rang = SELEKTIERE GF.GF199_Insolvenzrang_Code VON GF_Geschaeftsfall hbv = SELEKTIERE GFW.Wert VON GFW_Geschaeftsfall_Wert MIT GFW.AI_Wertart_Code ISTGLEICH "Höhe der Besicherung der Verbindlichkeit (HBV)" VON GF_Geschaeftsfall wertpapierklassifikation = SELEKTIERE WM.WM15_Wertpapierklassifikation_gem_FinRep_Code VON WM_Wertpapier_MS VON GF_Geschaeftsfall inhaber = SELEKTIERE KR.AI_Einheitennummer_ID VON KR_Kundenrollen MIT KR.AI_Rolle_Code ISTGLEICH "Direkte Gegenpartei gem. FinRep (GF)" VON GF_Geschaeftsfall institutsart = SELEKTIERE EM.EMA69_Art_des_Instituts_Code VON EM_Einheit_MS MIT EM.AI_Einheitennummer_ID ISTGLEICH inhaber bil_konsolidierungskreis = SELEKTIERE EM.EMA78_Bilanzieller_Konsolidierungskreis_Kennzeichen VON EM_Einheit_MS MIT EM.AI_Einheitennummer_ID ISTGLEICH inhaber rechtstraeger = SELEKTIERE EM.EMA68_Rechtstraeger_Kennzeichen VON EM_Einheit_MS MIT EM.AI_Einheitennummer_ID ISTGLEICH inhaber kmu = SELEKTIERE EM.EM47_SME_gem_BaSAG_Kennzeichen MIT EM.AI_Einheitennummer_ID ISTGLEICH inhaber ona = SELEKTIERE GFW.Wert VON GFW_Geschaeftsfall_Wert MIT GFW.AI_Wertart_Code ISTGLEICH "Ausstehender Nominalwert (ONA)" VON GF_Geschaeftsfall zh = SELEKTIERE GFW.Wert VON GFW_Geschaeftsfall_Wert MIT GFW.AI_Wertart_Code ISTGLEICH "Zinsabgrenzungen Haben (Kundensicht) (ZH)" VON GF_Geschaeftsfall nbw = SELEKTIERE GFW.Wert VON GFW_Geschaeftsfall_Wert MIT GFW.AI_Wertart_Code ISTGLEICH "Netto-Buchwert inkl. Zinsabgrenzungen (NBW)" VON GF_Geschaeftsfall nbwez = SELEKTIERE GFW.Wert VON GFW_Geschaeftsfall_Wert MIT GFW.AI_Wertart_Code ISTGLEICH "Netto-Buchwert exkl. Zinsabgrenzungen (NBWEZ)" VON GF_Geschaeftsfall zhb = SELEKTIERE GFW.Wert VON GFW_Geschaeftsfall_Wert MIT GFW.AI_Wertart_Code ISTGLEICH "Zinsabgrenzungen Haben (bilanziell) (ZHB)" VON GF_Geschaeftsfall ndgg = SELEKTIERE GFW.Wert VON GFW_Geschaeftsfall_Wert MIT GFW.AI_Wertart_Code ISTGLEICH "Nettoverbindlichkeiten aus Derivaten (inkl. geschätzter Glattstellungsbeträge) (NDGG)" VON GF_Geschaeftsfall ndan = SELEKTIERE GFW.Wert VON GFW_Geschaeftsfall_Wert MIT GFW.AI_Wertart_Code ISTGLEICH " Nettoverbindlichkeiten aus Derivaten (nach Maßgabe der aufsichtlichen Netting-Bestimmungen) (NDAN)" VON GF_Geschaeftsfall ndas = SELEKTIERE GFW.Wert VON GFW_Geschaeftsfall_Wert MIT GFW.AI_Wertart_Code ISTGLEICH " Nettoverbindlichkeiten aus Derivaten (nach Aufrechnung von Sicherheiten) (NDAS)" VON GF_Geschaeftsfall nn = SELEKTIERE GFW.Wert VON GFW_Geschaeftsfall_Wert MIT GFW.AI_Wertart_Code ISTGLEICH "Nominale (NN)" VON GF_Geschaeftsfall ruel = SELEKTIERE GFW.Wert VON GFW_Geschaeftsfall_Wert MIT GFW.AI_Wertart_Code ISTGLEICH "Der Emission zugeordnete Rücklagen (RUEL)" VON GF_Geschaeftsfall einheitennummer_mandant = SELEKTIERE MA.MA09_Einheitennummer_ID VON MA_Mandant za_eligible = SELEKTIERE GF.GF243_Zinsabgrenzung_MREL_berücksichtigungsfähig VON GF_Geschaeftsfall // Bestimmung Typen und Rang typ_gedeckt = "r0110 - Covered deposits (BRRD art. 44/2/a) (R0110)" rang_gedeckt = "Rank 8 - Ranking in insolvency (master scale)" typ_besichert = "r0120 - Secured liabilities - collateralized part (BRRD art. 44/2/b) (R0120)" rang_besichert = "Rank 10 - Ranking in insolvency (master scale)" typ_nachrang = "r0370 - Subordinated liabilities (not recognised as own funds) (R0370)" rang_nachrang = "Rank 4 - Ranking in insolvency (master scale)" //typ_cet1 wird erst innerhalb der Iteration definiert rang_cet1 = "Rank 1 - Ranking in insolvency (master scale)" typ_at1_fk = "Additional Tier 1 capital o/w (part of) subordinated liabilities recognised as own funds (R0521)" rang_at1 = "Rank 2 - Ranking in insolvency (master scale)" typ_t2_fk = "Tier 2 Capital o/w (part of) subordinated liabilities recognised as own funds (R0531)" rang_t2 = "Rank 3 - Ranking in insolvency (master scale)" //Verarbeitung von Verbindlichkeiten WENN(eigenkapitalklassifikation ISTGLEICH "Kein Eigenkapital (KEI)" UND bilanzseite ISTGLEICH "Passiv in der Bilanz (PAS)") DANN gboz = SELEKTIERE GFW.Wert VON GFW_Geschaeftsfall_Wert MIT GFW.AI_Wertart_Code ISTGLEICH "gedeckter Betrag ohne zeitliche Begrenzung (GBOZ)" VON GF_Geschaeftsfall gbozd = SELEKTIERE GFW.Wert VON GFW_Geschaeftsfall_Wert MIT GFW.AI_Wertart_Code ISTGLEICH "gedeckter Betrag ohne zeitliche Begrenzung nach ausländischem Recht (GBOZD)" VON GF_Geschaeftsfall a1c_relevant = SELEKTIERE GF.GF138_VERA_A1c_relevant_Kennzeichen VON GF_Geschaeftsfall //Fall einer Treuhandeinlage, deren gedeckte Beträge auf Einzelkonten dargestellt werden WENN(a1c_relevant ISTGLEICH FALSCH) DANN underlyings = SELEKTIERE ALLE GB.AI_Geschaeftsfall_ID2 VON GB_Geschaeftsfall_Beziehung MIT (GB01_Beziehungsart_Code ISTGLEICH "Mitglieder-Geschäftsfall-Beziehung (MB)" UND GB.AI_Geschaeftsfall_ID ISTGLEICH gfId) ITERIERE underlying VON (0, Max(underlyings)) a1c_relevant_u = SELEKTIERE GF.GF138_VERA_A1c_relevant_Kennzeichen VON GF_Geschaeftsfall MIT GF.AI_Geschaeftsfall_ID ISTGLEICH underlying gboz_u = SELEKTIERE GFW.Wert VON GFW_Geschaeftsfall_Wert MIT GFW.AI_Wertart_Code ISTGLEICH "gedeckter Betrag ohne zeitliche Begrenzung (GBOZ)" VON GF_Geschaeftsfall MIT GF.AI_Geschaeftsfall_ID ISTGLEICH underlying WENN(a1c_relevant_u ISTGLEICH WAHR) DANN gboz = gboz + gboz_u ENDE ITERATION ENDE ENDE WENN(geschaeftsfallkategorie ISTGLEICH "Derivate (Q)") DANN typ = "r0330 - Balance sheet liabilities arising from derivatives (Close-Out Amounts) (R0330)" Neue_Datensaetze(gfId, typ, rang, ndan, 0, nbw, 0, 0, WAHR) SONST //Gedeckter Teil der Verbindlichkeit WENN(gboz + gbozd > 0) DANN wert_gedeckt_ona = MIN(ona, gboz + gbozd) WENN(zh >= 0) DANN wert_gedeckt_zh = MIN(zh, gboz + gbozd - wert_gedeckt_ona) SONST //Spezialfall: negative Zinsen - diese werden weiter unten im Algorithmus verarbeitet wert_gedeckt_zh = 0 ENDE wert_gedeckt_nbw = nbw * (wert_gedeckt_ona + wert_gedeckt_zh ) / (ona+zh) Neue_Datensaetze(gfId, typ_gedeckt, rang_gedeckt, wert_gedeckt_ona, wert_gedeckt_zh, wert_gedeckt_nbw, 0, FALSCH) ona = ona - wert_gedeckt_ona zh = zh - wert_gedeckt_zh nbw = nbw - wert_gedeckt_nbw ENDE //Besicherter Teil der Verbindlichkeit WENN(hbv > 0) DANN wert_besichert_ona = MIN(ona, hbv) WENN(zh >= 0) DANN wert_besichert_zh = MIN(zh, hbv - wert_besichert_ona) SONST //Spezialfall: negative Zinsen WENN(wert_besichert_ona <= ona + zh) DANN //Negative Zinsen werden - sofern ein Teil der Verbindlichkeit unbesichert ist - erst im Abschnitt des XEN für "uncollateralized secured liabilities" verarbeitet wert_besichert_zh = 0 SONST //Wenn die Verbindlichkeit voll- oder überbesichert ist, sind negative Zinsen bereits an dieser Stelle zu berücksichtigen wert_besichert_zh = ona - wert_besichert_ona + zh ENDE ENDE wert_besichert_nbw = nbw * (wert_besichert_ona + wert_besichert_zh) / (ona+zh) Neue_Datensaetze(gfId, typ_besichert, rang_besichert, wert_besichert_ona , wert_besichert_zh, wert_besichert_nbw, hbv, FALSCH) ona = ona - wert_besichert_ona zh = zh - wert_besichert_zh nbw = nbw - wert_besichert_nbw ENDE WENN(treuhand ISTGLEICH "Treuhandvermögen mit Aussonderungsrecht (B)") DANN typ = "r0140 - Fiduciary liabilities, if protected in insolvency (BRRD art. 44/2/d) (R0140)" Neue_Datensaetze(gfId, typ, rang, ona, zh, nbw, 0, FALSCH) SONST WENN(geschaeftsfallkategorie ISTGLEICH "Einlagen (L)" UND verwaltung_kundengelder ISTGLEICH WAHR) DANN typ = "r0130 - Client liabilities, if protected in insolvency (BRRD art. 44/2/c) (R0130)" Neue_Datensaetze(gfId, typ, rang, ona, zh, nbw, 0, FALSCH) //Behandlung von Sonstigen Passiva aus Zwischenkonten bzw. Schwebender Verrechnung SONST WENN(geschaeftsfallkategorie ENTHAELT ("Sonstige Aktiva/Passiva aus Zwischenkonten (T)", "Sonstige Aktiva/Passiva aus Schwebender Verrechnung (U)")) DANN WENN(verwaltung_kundengelder ISTGLEICH WAHR) DANN typ = "r0130 - Client liabilities, if protected in insolvency (BRRD art. 44/2/c) (R0130)" Neue_Datensaetze(gfId, typ, rang, ona, zh, nbw, 0, FALSCH) SONST WENN(systemanbieter ISTGLEICH WAHR) DANN typ = "r0161 - System (operator) liabilities < 7 days (BRRD art. 44/2/f) (R0161)" Neue_Datensaetze(gfId, typ, rang, ona, zh, nbw, 0, FALSCH) SONST WENN(institutsart ENTHAELT ("Kreditinstitut, das die CRR-Definition (Art 4 Abs 1 Nr. 1 CRR) erfüllt (1)", "Wertpapierfirma nach Art 4 Abs 1 Nr 2 CRR (9)") UND bil_konsolidierungskreis ISTGLEICH FALSCH) DANN typ = "r0150 - Institution liabilities < 7 days (BRRD art. 44/2/e) (R0150)" Neue_Datensaetze(gfId, typ, rang, ona, zh, nbw, 0, FALSCH) SONST typ = "r0400 - Residual liabilities (R0400)" Neue_Datensaetze(gfId, typ, rang, ona, zh, nbw, 0, WAHR) ENDE SONST WENN(geschaeftsfallkategorie ENTHAELT ("Einlagen (L)") UND systemanbieter ISTGLEICH WAHR UND restlaufzeit ENTHAELT ("keine Frist (KF)", "1 Tag (1T)", "1 Tag < 1 Woche (1Tk1W)")) DANN typ = "r0161 - System (operator) liabilities < 7 days (BRRD art. 44/2/f) (R0161)" Neue_Datensaetze(gfId, typ, rang, ona, zh, nbw, 0, FALSCH) SONST WENN(institutsart ENTHAELT ("Kreditinstitut, das die CRR-Definition (Art 4 Abs 1 Nr. 1 CRR) erfüllt (1)", "Wertpapierfirma nach Art 4 Abs 1 Nr 2 CRR (9)") UND ursprungslaufzeit ENTHAELT ("keine Frist (KF)", "1 Tag (1T)", "1 Tag < 1 Woche (1Tk1W)") UND bil_konsolidierungskreis ISTGLEICH FALSCH) DANN typ = "r0150 - Institution liabilities < 7 days (BRRD art. 44/2/e) (R0150)" Neue_Datensaetze(gfId, typ, rang, ona, zh, nbw, 0, FALSCH) SONST WENN(geschaeftsfallkategorie ISTGLEICH "Einlagen (L)" UND nachrangigkeit ENTHAELT ("Vorrangig (V)") UND (rechtstraeger ISTGLEICH FALSCH ODER kmu ISTGLEICH WAHR)) DANN typ = "r0310 - Deposits, not covered but preferential (BRRD art. 108) (R0310)" Neue_Datensaetze(gfId, typ, rang, ona, zh, nbw, 0, WAHR) SONST WENN(hbv => 0) DANN typ = "r0340 - Uncollateralized secured liabilities (R0340)" Neue_Datensaetze(gfId, typ, rang, ona, zh, nbw, 0, WAHR) SONST WENN(hfs ISTGLEICH WAHR) DANN typ = "r0400 - Residual liabilities (R0400)" Neue_Datensaetze(gfId, typ, rang, ona, zh, nbw, 0, WAHR) SONST WENN(geschaeftsfallkategorie ISTGLEICH "Einlagen (L)" UND nachrangigkeit ENTHAELT ("Vorrangig (V)")) DANN typ = "r0320 - Deposits, not covered and not preferential (R0320)" Neue_Datensaetze(gfId, typ, rang, ona, zh, nbw, 0, WAHR) SONST WENN(short ISTGLEICH FALSCH UND wertpapierklassifikation ISTGLEICH "Strukturierte Schuldverschreibungen (ST)" UND nachrangigkeit ENTHAELT ("Vorrangig (V)")) DANN typ = "r0350 - Structured notes (R0350)" Neue_Datensaetze(gfId, typ, rang, ona, zh, nbw, 0, WAHR) SONST WENN(nachrangigkeit ISTGLEICH "Nicht bevorrechtigt (B)") DANN typ = "r0365 - Senior non-preferred liabilities (R0365)" Neue_Datensaetze(gfId, typ, rang, ona, zh, nbw, 0, WAHR) SONST WENN(nachrangigkeit ENTHAELT ("Nachrangkapital (N)", "Ergänzungskapital (E)")) DANN at1_gf = SELEKTIERE GFW.Wert VON GFW_Geschaeftsfall_Wert MIT (GFW.AI_Wertart_Code ISTGLEICH "AT1-anrechenbarer Anteil (AT1)" UND GFW.AI_Geschaeftsfall_ID ISTGLEICH gfId) t2_gf = SELEKTIERE GFW.Wert VON GFW_Geschaeftsfall_Wert MIT (GFW.AI_Wertart_Code ISTGLEICH "T2-anrechenbarer Anteil (T2)" UND GFW.AI_Geschaeftsfall_ID ISTGLEICH gfId) WENN(t2_gf > 0) DANN rang_restmenge = rang_t2 SONST WENN(at1_gf > 0) DANN rang_restmenge = rang_at1 SONST rang_restmenge = rang_nachrang ENDE WENN(geschaeftsfallkategorie ENTHAELT ("Wertpapier (H)", "Investmentfonds (I)", "Verbriefung (J)") UND bilanzseite ISTGLEICH "Passiv in der Bilanz (PAS)" UND short ISTGLEICH FALSCH) DANN //Iteration über die Investoren investoren = SELEKTIERE ALLE AI_Geschaeftsfall_Investor_ID VON GI_Geschaeftsfall_Investor MIT GI.AI_Geschaeftsfall_ID ISTGLEICH gfId ITERIERE investor VON 0 BIS Max(investoren) einheit = SELEKTIERE GI.AI_Einheitennummer_ID VON GI_Geschaeftsfall_Investor MIT (GI.AI_Geschaeftsfall_Investor_ID ISTGLEICH investor UND GI.AI_Geschaeftsfall_ID ISTGLEICH gfId) // Eigene gehaltene Anteile werden im LDR nicht dargestellt WENN(einheit UNGLEICH einheitennummer_mandant) DANN //Bestimmung Gegenparteilklasse WENN(einheit UNGLEICH NULL) DANN gegenparteiklasse = XEN_Zuordnung_Gegenparteiklasse(MA, einheit, repDate) SONST boersenotiert = SELEKTIERE WM.WMA14_boersenotiert_Kennzeichen VON WM_Wertpapier_MS VON GF_Geschaeftsfall WENN(boersenotiert ISTGLEICH WAHR) DANN gegenparteiklasse = "c009x - Non identified, listed on an exchange platform (C009X)" SONST gegenparteiklasse = "c010x - Non-identified, not listed on an exchange platform (C010X)" ENDE ENDE anteil = SELEKTIERE GIW.Wert VON GIW_Geschaeftsfall_Investor_Wert MIT (GIW.AI_Wertart_Code ISTGLEICH "gehaltener Anteil der Emission (GAE)" UND GIW.AI_Geschaeftsfall_Investor_ID ISTGLEICH investor UND GIW.AI_Geschaeftsfall_ID ISTGLEICH gfId) ona_pro_investor = ona * anteil/100 zh_pro_investor = zh * anteil/100 nbwez_pro_investor = nbwez * anteil/100 zhb_pro_investor = zhb * anteil/100 at1 = SELEKTIERE GIW.Wert VON GIW_Geschaeftsfall_Investor_Wert MIT (GIW.AI_Wertart_Code ISTGLEICH "AT1-anrechenbarer Anteil (AT1)" UND GIW.AI_Geschaeftsfall_Investor_ID ISTGLEICH investor UND GIW.AI_Geschaeftsfall_ID ISTGLEICH gfId) t2 = SELEKTIERE GIW.Wert VON GIW_Geschaeftsfall_Investor_Wert MIT (GIW.AI_Wertart_Code ISTGLEICH "T2-anrechenbarer Anteil (T2)" UND GIW.AI_Geschaeftsfall_Investor_ID ISTGLEICH investor UND GIW.AI_Geschaeftsfall_ID ISTGLEICH gfId) mrel = SELEKTIERE GIW.Wert VON GIW_Geschaeftsfall_Investor_Wert MIT (GIW.AI_Wertart_Code ISTGLEICH "MREL-anrechenbarer Anteil (MREL)" UND GIW.AI_Geschaeftsfall_Investor_ID ISTGLEICH investor UND GIW.AI_Geschaeftsfall_ID ISTGLEICH gfId) imrel = SELEKTIERE GIW.Wert VON GIW_Geschaeftsfall_Investor_Wert MIT (GIW.AI_Wertart_Code ISTGLEICH "Intern MREL-anrechenbarer Anteil (IMREL)" UND GIW.AI_Geschaeftsfall_Investor_ID ISTGLEICH investor UND GIW.AI_Geschaeftsfall_ID ISTGLEICH gfId) afak = SELEKTIERE GIW.Wert VON GIW_Geschaeftsfall_Investor_Wert MIT (GIW.AI_Wertart_Code ISTGLEICH "Anteil des Finanzierungsbeitrags (anderer Konzerneinheiten)(AFAK)" UND GIW.AI_Geschaeftsfall_Investor_ID ISTGLEICH investor UND GIW.AI_Geschaeftsfall_ID ISTGLEICH gfId) WENN(za_eligible ISTGLEICH WAHR) DANN mrelb = (ona_pro_investor + zh_pro_investor) * mrel/100 imrelb = (ona_pro_investor + zh_pro_investor )* imrel/100 SONST mrelb = ona_pro_investor * mrel/100 imrelb = ona_pro_investor * imrel/100 ENDE fak_pro_investor = ona_pro_investor * afak/100 // Datensatz für AT1 Neuer_Datensatz(gfId, typ_at1_fk, gegenparteiklasse, rang_at1, einheit, ona_pro_investor * at1/100, 0, nbwez_pro_investor * at1/100, 0, 0, MIN(mrelb, ona_pro_investor * at1/100), MIN(imrelb, ona_pro_investor * at1/100), 0) mrelb = mrelb - MIN(mrelb, ona_pro_investor * at1/100) imrelb = imrelb - MIN(imrelb, ona_pro_investor * at1/100) // Datensatz für T2 Neuer_Datensatz(gfId, typ_t2_fk, gegenparteiklasse, rang_t2, einheit, ona_pro_investor * t2/100, 0, nbwez_pro_investor * t2/100, 0, 0, MIN(mrelb, ona_pro_investor * t2/100), MIN(imrelb, ona_pro_investor * t2/100), 0) mrelb = mrelb - MIN(mrelb, ona_pro_investor * at1/100) imrelb = imrelb - MIN(imrelb, ona_pro_investor * t2/100) // Datensatz, der nicht EM-anrechenbar ist Neuer_Datensatz(gfId, typ_nachrang, gegenparteiklasse, rang_restmenge, einheit, ona_pro_investor - ona_pro_investor * (at1+t2)/100, zh_pro_investor, nbwez_pro_investor - nbwez_pro_investor * (at1+t2)/100 + zhb_pro_investor, fak_pro_investor, 0, mrelb, imrelb, 0) ENDE ITERATION ENDE SONST gegenpartei = SELEKTIERE EM.AI_Einheitennummer_ID VON EM_Einheit_MS VON KR_Kundenrollen MIT KR.AI_Rolle_Code ISTGLEICH "Gegenpartei gem. FinRep (GF)" VON GF_Geschaeftsfall at1 = SELEKTIERE GFW.Wert VON GFW_Geschaeftsfall_Wert MIT (GFW.AI_Wertart_Code ISTGLEICH "AT1-anrechenbarer Anteil (AT1)" UND GFW.AI_Geschaeftsfall_ID ISTGLEICH gfId) t2 = SELEKTIERE GFW.Wert VON GFW_Geschaeftsfall_Wert MIT (GFW.AI_Wertart_Code ISTGLEICH "T2-anrechenbarer Anteil (T2)" UND GFW.AI_Geschaeftsfall_ID ISTGLEICH gfId) mrel = SELEKTIERE GFW.Wert VON GFW_Geschaeftsfall_Wert MIT (GFW.AI_Wertart_Code ISTGLEICH "MREL-anrechenbarer Anteil (MREL)" UND GFW.AI_Geschaeftsfall_ID ISTGLEICH gfId) imrel = SELEKTIERE GFW.Wert VON GFW_Geschaeftsfall_Wert MIT (GFW.AI_Wertart_Code ISTGLEICH "Intern MREL-anrechenbarer Anteil (IMREL)" UND GFW.AI_Geschaeftsfall_ID ISTGLEICH gfId) afak = SELEKTIERE GFW.Wert VON GFW_Geschaeftsfall_Wert MIT (GFW.AI_Wertart_Code ISTGLEICH "Anteil des Finanzierungsbeitrags (anderer Konzerneinheiten) (AFAK)" UND GFW.AI_Geschaeftsfall_ID ISTGLEICH gfId) WENN(za_eligible ISTGLEICH WAHR) DANN mrelb = (ona + zh) * mrel/100 imrelb = (ona + zh)* imrel/100 SONST mrelb = mrel/100 * ona imrelb = imrel/100 * ona ENDE fak = afak/100 * ona gegenparteiklasse = XEN_Zuordnung_Gegenparteiklasse(MA, gegenpartei, repDate) // Datensatz für AT1 Neuer_Datensatz(gfId, typ_at1_fk, gegenparteiklasse, rang_at1, gegenpartei, ona * at1/100, 0, nbwez * at1/100, 0, 0, MIN(mrelb, ona * at1/100), MIN(imrelb, ona * at1/100), 0) mrelb = mrelb - MIN(mrelb, ona * at1/100) imrelb = imrelb - MIN(imrelb, ona * at1/100) // Datensatz für T2 Neuer_Datensatz(gfId, typ_t2_fk, gegenparteiklasse, rang_t2, gegenpartei, ona * t2/100, 0, nbwez * t2/100, 0, 0, MIN(mrelb, ona * t2/100), MIN(imrelb, ona * t2/100), 0) mrelb = mrelb - MIN(mrelb, ona * t2/100) imrelb = imrelb - MIN(imrelb, ona * t2/100) // Datensatz der nicht EM-anrechenbar ist Neuer_Datensatz(gfId, typ_nachrang, gegenparteiklasse, rang_restmenge, gegenpartei, ona - ona * (at1+t2)/100, zh, nbwez - nbwez * (at1+t2)/100 + zhb, fak, 0, mrelb, imrelb, 0) ENDE SONST typ = "r0360 - Senior unsecured liabilities (R0360)" Neue_Datensaetze(gfId, typ, rang, ona, zh, nbw, 0, WAHR) ENDE ENDE //Verarbeitung von (relevanten) Eigenkapitalinstrumenten SONST WENN(eigenkapitalklassifikation ENTHAELT ("Gezeichnetes Kapital (KAP)", "Eigenkapitalkomponente zusammengesetzter Finanzinstrumente (EKZ)", "Instrumente ohne Stimmrechte gem. § 26a BWG (SB1)", "Sonstige begebene Eigenkapitalinstrumente (SB2)", "Sonstige begebene Eigenkapitalinstrumente (SB)")) DANN //Bestimmung Typ für CET1 (hängt von der Eigenmittelklassifikation des Instruments ab) WENN(eigenkapitalklassifikation ENTHAELT ("Gezeichnetes Kapital (KAP)") DANN typ_cet1 = "r0511 - Common Equity Tier 1 Capital o/w capital instruments/share capital (R0511)" SONST WENN(eigenkapitalklassifikation ENTHAELT ("Eigenkapitalkomponente zusammengesetzter Finanzinstrumente (EKZ)", "Instrumente ohne Stimmrechte gem. § 26a BWG (SB1)", "Sonstige begebene Eigenkapitalinstrumente (SB2)", "Sonstige begebene Eigenkapitalinstrumente (SB)")) DANN typ1_cet1 = "r0512 - Common Equity Tier 1 Capital o/w instruments ranking pari passu with ordinary Shares (R0512)" ENDE //Iteration über Investoren, bei der die Datensätze generiert werden WENN(geschaeftsfallkategorie ENTHAELT ("Wertpapier (H)", "Investmentfonds (I)", "Verbriefung (J)") UND bilanzseite ISTGLEICH "Passiv in der Bilanz (PAS)" UND short ISTGLEICH FALSCH) DANN investoren = SELEKTIERE ALLE AI_Geschaeftsfall_Investor_ID VON GI_Geschaeftsfall_Investor MIT GI.AI_Geschaeftsfall_ID ISTGLEICH gfId ITERIERE investor VON 0 BIS Max(investoren) einheit = SELEKTIERE GI.AI_Einheitennummer_ID VON GI_Geschaeftsfall_Investor MIT (GI.AI_Geschaeftsfall_Investor_ID ISTGLEICH investor UND GI.AI_Geschaeftsfall_ID ISTGLEICH gfId) anteil = SELEKTIERE GIW.Wert VON GIW_Geschaeftsfall_Investor_Wert MIT (GIW.AI_Wertart_Code ISTGLEICH "gehaltener Anteil der Emission (GAE)" UND GIW.AI_Geschaeftsfall_Investor_ID ISTGLEICH investor UND GIW.AI_Geschaeftsfall_ID ISTGLEICH gfId) cet1 = SELEKTIERE GIW.Wert VON GIW_Geschaeftsfall_Investor_Wert MIT (GIW.AI_Wertart_Code ISTGLEICH "CET1-anrechenbarer Anteil (CET1)" UND GIW.AI_Geschaeftsfall_Investor_ID ISTGLEICH investor UND GIW.AI_Geschaeftsfall_ID ISTGLEICH gfId) at1 = SELEKTIERE GIW.Wert VON GIW_Geschaeftsfall_Investor_Wert MIT (GIW.AI_Wertart_Code ISTGLEICH "AT1-anrechenbarer Anteil (AT1)" UND GIW.AI_Geschaeftsfall_Investor_ID ISTGLEICH investor UND GIW.AI_Geschaeftsfall_ID ISTGLEICH gfId) t2 = SELEKTIERE GIW.Wert VON GIW_Geschaeftsfall_Investor_Wert MIT (GIW.AI_Wertart_Code ISTGLEICH "T2-anrechenbarer Anteil (T2)" UND GIW.AI_Geschaeftsfall_Investor_ID ISTGLEICH investor UND GIW.AI_Geschaeftsfall_ID ISTGLEICH gfId) mrel = SELEKTIERE GIW.Wert VON GIW_Geschaeftsfall_Investor_Wert MIT (GIW.AI_Wertart_Code ISTGLEICH "MREL-anrechenbarer Anteil (MREL)" UND GIW.AI_Geschaeftsfall_Investor_ID ISTGLEICH investor UND GIW.AI_Geschaeftsfall_ID ISTGLEICH gfId) imrel = SELEKTIERE GIW.Wert VON GIW_Geschaeftsfall_Investor_Wert MIT (GIW.AI_Wertart_Code ISTGLEICH "Intern MREL-anrechenbarer Anteil (IMREL)" UND GIW.AI_Geschaeftsfall_Investor_ID ISTGLEICH investor UND GIW.AI_Geschaeftsfall_ID ISTGLEICH gfId) nbwez_pro_investor = nbwez * anteil/100 ruel_pro_investor = ruel * anteil/100 mrelb = mrel/100 * (nbwez_pro_investor + ruel_pro_investor) imrelb = imrel/100 * (nbwez_pro_investor + ruel_pro_investor) WENN(einheit UNGLEICH einheitennummer_mandant) DANN //Bestimmung Gegenparteiklasse WENN(einheit UNGLEICH NULL) DANN gegenparteiklasse = XEN_Zuordnung_Gegenparteiklasse(MA, einheit, repDate) SONST boersenotiert = SELEKTIERE WM.WMA14_boersenotiert_Kennzeichen VON WM_Wertpapier_MS VON GF_Geschaeftsfall WENN(boersenotiert ISTGLEICH WAHR) DANN gegenparteiklasse = "c009x - Non identified, listed on an exchange platform (C009X)" SONST gegenparteiklasse = "c010x - Non-identified, not listed on an exchange platform (C010X)" ENDE ENDE // Datensatz für CET1 Neuer_Datensatz(gfId, typ_cet1, gegenparteiklasse, rang_cet1, einheit, nbwez_pro_investor * cet1/100 + ruel_pro_investor, 0, nbwez_pro_investor * cet1/100, 0, 0, MIN(mrelb, nbwez_pro_investor * cet1/100), MIN(imrelb, nbwez_pro_investor * cet1/100), 0) mrelb = mrelb - MIN(mrelb, nbwez_pro_investor * cet1/100) imrelb = imrelb - MIN(imrelb, nbwez_pro_investor * cet1/100) // Datensatz für AT1 Neuer_Datensatz(gfId, typ_at1_fk, gegenparteiklasse, rang_at1, einheit, nbwez_pro_investor * at1/100, 0, nbwez_pro_investor * at1/100, 0, 0, MIN(mrelb, nbwez_pro_investor * at1/100), MIN(imrelb, nbwez_pro_investor * at1/100), 0) mrelb = mrelb - MIN(mrelb, nbwez_pro_investor * at1/100) imrelb = imrelb - MIN(imrelb, nbwez_pro_investor * at1/100) // Datensatz für T2 Neuer_Datensatz(gfId, typ_t2_fk, gegenparteiklasse, rang_t2, einheit, nbwez_pro_investor * t2/100, 0, nbwez_pro_investor * t2/100, 0, 0, MIN(mrelb, nbwez_pro_investor * t2/100), MIN(imrelb, nbwez_pro_investor * t2/100), 0) ENDE ITERATION ENDE ENDE //Verarbeitung von Derivaten, die aktiv, unter oder nicht in der Bilanz sind SONST WENN(geschaeftsfallkategorie ISTGLEICH "Derivate (Q)") DANN typ = "r0330 - Balance sheet liabilities arising from derivatives (Close-Out Amounts) (R0330)" Neue_Datensaetze(gfId, typ, rang, ndan, 0, zhb, 0, 0, WAHR) //Verarbeitung von erhaltenen Garantien (diese sind insbesondere in Z04.00 auszuweisen) SONST WENN (geschaeftsfallkategorie ISTGLEICH "Erhaltene Garantien (AC)") imrel = SELEKTIERE GFW.Wert VON GFW_Geschaeftsfall_Investor_Wert MIT (GFW.AI_Wertart_Code ISTGLEICH "Intern MREL-anrechenbarer Anteil (IMREL)" UND GFW.AI_Geschaeftsfall_ID ISTGLEICH gfId) WENN(garantieart ISTGLEICH "Emission") DANN typ = "Issuance" SONST WENN(garantieart ISTGLEICH "Gegenpartei") DANN typ = "Counterparty" SONST WENN(garantieart ISTGLEICH "Unbeschränkt") DANN typ = "Unlimited" SONST WENN(garantieart ISTGLEICH "Sonstige") DANN typ = "Other" ENDE Neue_Datensaetze(gfId, typ, NULL, nn, 0, 0, 0, nn * imrel/100, FALSCH) ENDE FUNKTIONSENDE //Hilfsfunktion, mittels derer neue Datensätze auf RP_Resolution_Planning angelegt werden. //Diese Funktion legt einen oder im Fall von emittierten Wertpapieren mehrere Datensätze auf den Entitäten RP_Resolution_Planning und RPW_Resolution_Planning_Wert an. FUNKTION Neue_Datensaetze(gfId, typ, rang, Wert_ONA, Wert_ZH, Wert_NBW, Wert_HBV, r0210_Kennzeichen) //Liabilities to institutions or entities that are part of the same resolution group typ_same_res_group = "r210 - liabilities to institutions or entities that are part of the same resolution group (R0210)" typ_vor_RG=typ za_eligible = SELEKTIERE GF.GF243_Zinsabgrenzung_MREL_berücksichtigungsfähig VON GF_Geschaeftsfall boersenotiert = SELEKTIERE WM.WMA14_boersenotiert_Kennzeichen VON WM_Wertpapier_MS VON GF_Geschaeftsfall short = SELEKTIERE GF.GF40_Short_Position_Kennzeichen VON GF_Geschaeftsfall ifrs_kennzeichen = SELEKTIERE MO.MO04_IFRS_Kennzeichen VON MO_Meldeobjekt MIT MO.AI_Kons_ID ISTGLEICH konsId WENN(ifrs_kennzeichen ISTGLEICH WAHR) DANN bilanzseite = SELEKTIERE GF.GFA171_Bilanzseite_IFRS_Code VON GF_Geschaeftsfall SONST bilanzseite = SELEKTIERE GF.GFA109_Bilanzseite_local_GAAP_Code VON GF_Geschaeftsfall ENDE WENN(geschaeftsfallkategorie ENTHAELT ("Wertpapier (H)", "Investmentfonds (I)", "Verbriefung (J)") UND bilanzseite ISTGLEICH "Passiv in der Bilanz (PAS)" UND short ISTGLEICH FALSCH) DANN investoren = SELEKTIERE ALLE AI_Geschaeftsfall_Investor_ID VON GI_Geschaeftsfall_Investor MIT GI.AI_Geschaeftsfall_ID ISTGLEICH gfId ITERIERE investor VON 0 BIS Max(investoren) einheit = SELEKTIERE GI.AI_Einheitennummer_ID VON GI_Geschaeftsfall_Investor MIT (GI.AI_Geschaeftsfall_Investor_ID ISTGLEICH investor UND GI.AI_Geschaeftsfall_ID ISTGLEICH gfId) anteil = SELEKTIERE GIW.Wert VON GIW_Geschaeftsfall_Investor_Wert MIT (GIW.AI_Wertart_Code ISTGLEICH "gehaltener Anteil der Emission (GAE)" UND GIW.AI_Geschaeftsfall_Investor_ID ISTGLEICH investor UND GIW.AI_Geschaeftsfall_ID ISTGLEICH gfId) institutsart_investor = SELEKTIERE EM.EMA69_Art_des_Instituts_Code VON EM_Einheit_MS MIT EM.AI_Einheitennummer_ID ISTGLEICH einheit land_investor = SELEKTIERE EM.EMA48_Land_fuer_Meldezwecke_Code VON EM_Einheit_MS MIT EM.AI_Einheitennummer_ID ISTGLEICH einheit mrel = SELEKTIERE GIW.Wert VON GIW_Geschaeftsfall_Investor_Wert MIT (GIW.AI_Wertart_Code ISTGLEICH "MREL-anrechenbarer Anteil (MREL)" UND GIW.AI_Geschaeftsfall_Investor_ID ISTGLEICH investor UND GIW.AI_Geschaeftsfall_ID ISTGLEICH gfId) imrel = SELEKTIERE GIW.Wert VON GIW_Geschaeftsfall_Investor_Wert MIT (GIW.AI_Wertart_Code ISTGLEICH "intern MREL-anrechenbarer Anteil (IMREL)" UND GIW.AI_Geschaeftsfall_Investor_ID ISTGLEICH investor UND GIW.AI_Geschaeftsfall_ID ISTGLEICH gfId) afak = SELEKTIERE GIW.Wert VON GIW_Geschaeftsfall_Investor_Wert MIT (GIW.AI_Wertart_Code ISTGLEICH "Anteil des Finanzierungsbeitrags anderer Konzerneinheiten (AFAK)" UND GIW.AI_Geschaeftsfall_Investor_ID ISTGLEICH investor UND GIW.AI_Geschaeftsfall_ID ISTGLEICH gfId) WENN(za_eligible ISTGLEICH WAHR) DANN mrelb = (Wert_ONA + Wert_ZH) * anteil/100 * mrel/100 imrelb = (Wert_ONA + Wert_ZH) * anteil/100 * imrel/100 SONST mrelb = Wert_ONA * anteil/100 * mrel/100 imrelb = Wert_ONA * anteil/100 * imrel/100 ENDE //Bestimmung Gegenparteiklasse WENN(einheit UNGLEICH NULL) DANN gegenparteiklasse = XEN_Zuordnung_Gegenparteiklasse(MA, einheit, repDate) SONST boersenotiert = SELEKTIERE WM.WMA14_boersenotiert_Kennzeichen VON WM_Wertpapier_MS VON GF_Geschaeftsfall WENN(boersenotiert ISTGLEICH WAHR) DANN gegenparteiklasse = "c009x - Non identified, listed on an exchange platform (C009X)" SONST gegenparteiklasse = "c010x - Non-identified, not listed on an exchange platform (C010X)" ENDE ENDE //Generierung der Datensätze WENN(einheit UNGLEICH einheitennummer_mandant) DANN rolle_einheit = SELEKTIERE EM.EMA93_Rolle_in_Resolution_Group_Code VON EM_Einheit_MS MIT EM.AI_Einheitennummer_ID ISTGLEICH einheit WENN(r0210_Kennzeichen ISTGLEICH WAHR UND rolle_einheit ISTGLEICH "Unternehmen innerhalb der Resolution Group außer der Resolution Entity (RG)" UND nachrangigkeit ISTGLEICH "Vorrangig (V)" UND institutsart_investor IN ("Kreditinstitut, das die CRR-Definition (Art 4 Abs 1 Nr. 1 CRR) erfüllt (1)", "Wertpapierfirma nach Art 4 Abs 1 Nr 2 CRR (9)", "Kreditinstitut, das CRR-Definition eines Kreditinstituts nicht erfüllt, jedoch ein national Kreditinstitut gemäß § 1a BWG darstellt (CRR-FI) (2)", "Finanzholdinggesellschaft nach Art 4 Abs 1 Nr. 20 CRR (6)", "gemischte Finanzholdinggesellschaft nach Art 4 Abs 1 Nr 21 CRR (7)") UND land_investor IN ("EU_GR")) DANN //Anm.: MREL sollte in diesem Fall immer = 0 sein Neuer_Datensatz(gfId, typ_same_res_group, typ_vor_RG, gegenparteiklasse, rang, einheit, Wert_ONA * anteil/100, Wert_ZH * anteil/100, Wert_NBW * anteil/100, Wert_ONA * afak/100 * anteil/100, Wert_HBV * anteil/100, 0 , 0 , 0) SONST WENN(typ ISTGLEICH typ_gedeckt ODER typ ISTGLEICH typ_besichert) DANN Neuer_Datensatz(gfId, typ, typ_vor_RG, gegenparteiklasse, rang, einheit, Wert_ONA * anteil/100, Wert_ZH * anteil/100, Wert_NBW * anteil/100, Wert_ONA * afak/100 * anteil/100, Wert_HBV * anteil/100, 0 , 0, 0) SONST Neuer_Datensatz(gfId, typ, typ_vor_RG, gegenparteiklasse, rang, einheit, Wert_ONA * anteil/100, Wert_ZH * anteil/100, Wert_NBW * anteil/100, Wert_ONA * afak/100 * anteil/100, Wert_HBV * anteil/100, Wert_ONA * anteil/100 * mrel/100, Wert_ONA * anteil/100 * imrel/100, 0) ENDE ENDE ITERATION ENDE //Andere Verbindlichkeiten SONST inhaber = SELEKTIERE EM.AI_Einheitennummer_ID VON EM_Einheit_MS VON KR_Kundenrollen MIT KR.AI_Rolle_Code ISTGLEICH "Gegenpartei gem. FinRep (GF)" VON GF_Geschaeftsfall Gegenparteiklasse = XEN_Zuordnung_Gegenparteiklasse(MA, inhaber, repDate) rolle_einheit = SELEKTIERE EM.EMA93_Rolle_in_Resolution_Group_Code VON EM_Einheit_MS MIT EM.AI_Einheitennummer_ID ISTGLEICH inhaber land = SELEKTIERE EM.EMA48_Land_fuer_Meldezwecke_Code VON EM_Einheit_MS MIT EM.AI_Einheitennummer_ID ISTGLEICH inhaber institutsart = SELEKTIERE EM.EMA69_Art_des_Instituts_Code VON EM_Einheit_MS MIT EM.AI_Einheitennummer_ID ISTGLEICH inhaber ndas = SELEKTIERE GFW.Wert VON GFW_Geschaeftsfall_Wert MIT GFW.AI_Wertart_Code ISTGLEICH " Nettoverbindlichkeiten aus Derivaten (nach Aufrechnung von Sicherheiten) (NDAS)" VON GF_Geschaeftsfall ndgg = SELEKTIERE GFW.Wert VON GFW_Geschaeftsfall_Wert MIT GFW.AI_Wertart_Code ISTGLEICH "Nettoverbindlichkeiten aus Derivaten (inkl. geschätzter Glattstellungsbeträge) (NDGG)" VON GF_Geschaeftsfall mrel = SELEKTIERE GFW.Wert VON GFW_Geschaeftsfall_Wert MIT GFW.AI_Wertart_Code ISTGLEICH "MREL-anrechenbarer Anteil (MREL)" VON GF_Geschaeftsfall imrel = SELEKTIERE GFW.Wert VON GFW_Geschaeftsfall_Wert MIT GFW.AI_Wertart_Code ISTGLEICH "intern MREL-anrechenbarer Anteil (IMREL)" VON GF_Geschaeftsfall afak = SELEKTIERE GFW.Wert VON GFW_Geschaeftsfall_Wert MIT GFW.AI_Wertart_Code ISTGLEICH "Anteil des Finanzierungsbeitrags anderer Konzerneinheiten (AFAK)" VON GF_Geschaeftsfall WENN(za_eligible ISTGLEICH WAHR) DANN mrelb = (Wert_ONA + Wert_ZH) * mrel/100 imrelb = (Wert_ONA + Wert_ZH)* imrel/100 SONST mrelb = Wert_ONA * mrel/100 imrelb = Wert_ONA * imrel/100 ENDE WENN(typ_vor_RG ISTGLEICH "r0330 - Balance sheet liabilities arising from derivatives (Close-Out Amounts) (R0330)") DANN Wert_GGB = MAX(ndgg-ndas,0) SONST Wert_GGB = 0 ENDE WENN(r0210_Kennzeichen ISTGLEICH WAHR UND rolle_einheit ISTGLEICH "Unternehmen innerhalb der Resolution Group außer der Resolution Entity (RG)" UND nachrangigkeit ISTGLEICH "Vorrangig (V)" UND institutsart IN ("Kreditinstitut, das die CRR-Definition (Art 4 Abs 1 Nr. 1 CRR) erfüllt (1)", "Wertpapierfirma nach Art 4 Abs 1 Nr 2 CRR (9)", "Kreditinstitut, das CRR-Definition eines Kreditinstituts nicht erfüllt, jedoch ein national Kreditinstitut gemäß § 1a BWG darstellt (CRR-FI) (2)", "Finanzholdinggesellschaft nach Art 4 Abs 1 Nr. 20 CRR (6)", "gemischte Finanzholdinggesellschaft nach Art 4 Abs 1 Nr 21 CRR (7)") UND land IN ("EU_GR")) DANN //Anm.: MREL sollte in diesem Fall immer = 0 sein WENN(typ_vor_RG ISTGLEICH "r0330 - Balance sheet liabilities arising from derivatives (Close-Out Amounts) (R0330)") DANN Wert_ONA = Wert_GGB ENDE Neuer_Datensatz(gfId, typ_same_res_group, typ_vor_RG, gegenparteiklasse, rang, inhaber, Wert_ONA, Wert_ZH, Wert_NBW, Wert_ONA * afak/100, Wert_HBV, 0 , 0, Wert_GGB) SONST WENN(typ ISTGLEICH typ_gedeckt ODER typ ISTGLEICH typ_besichert) DANN Neuer_Datensatz(gfId, typ, typ_vor_RG, gegenparteiklasse, rang, inhaber, Wert_ONA, Wert_ZH, Wert_NBW, Wert_ONA * afak/100, Wert_HBV, 0 , 0, Wert_GGB) SONST Neuer_Datensatz(gfId, typ, typ_vor_RG, gegenparteiklasse, rang, inhaber, Wert_ONA, Wert_ZH, Wert_NBW, Wert_ONA * afak/100, Wert_HBV, mrelb, imrelb, Wert_GGB) ENDE ENDE FUNKTIONSENDE FUNKTION Neuer_Datensatz(Geschäftsfall-ID, Typ, Typ_vor_RG, Gegenparteiklasse, Rang, Gläubiger, Wert_ONA, Wert_ZH, Wert_NBW, Wert_FAK, Wert_HBV, Wert_MRELB, Wert_IMRELB, Wert_GGB) id = EINDEUTIGE_ID() ERSTELLE NEUEN RP_Resolution_Planning UND SETZE: SETZE AI_Resolution_Planning_ID = id SETZE AI_Geschaeftsfall_ID = Geschäftsfall-ID SETZE AI_Einheitennummer_ID = Gläubiger SETZE RP01_Resolution_Planning_Kategorie_Code = Typ SETZE RP03_Insolvenzrang_Code = Rang SETZE RP05_Resolution_Planning_Gegenparteiklasse_Code = Gegenparteiklasse SETZE RP07_Resolution_Planning_Kategorie_vor_Resolution_Group_Code = Typ_vor_RG ENDE WENN(Wert_ONA != 0) DANN ERSTELLE NEUEN RPW_Resolution_Planning_Wert UND SETZE: SETZE AI_Resolution_Planning_ID = id SETZE AI_Wertart_Code = "Ausstehender Nominalwert (ONA)" SETZE Wert = Wert_ONA ENDE ENDE WENN(Wert_ZH !=0) DANN ERSTELLE NEUEN RPW_Resolution_Planning_Wert UND SETZE: SETZE AI_Resolution_Planning_ID = id SETZE AI_Wertart_Code = "Zinsabgrenzungen Haben (Kundensicht) (ZH)" SETZE Wert = Wert_ZH ENDE ENDE WENN(Wert_NBW !=0) DANN ERSTELLE NEUEN RPW_Resolution_Planning_Wert UND SETZE: SETZE AI_Resolution_Planning_ID = id SETZE AI_Wertart_Code = "Netto-Buchwert inkl. Zinsabgrenzungen (NBW)" SETZE Wert = Wert_NBW ENDE ENDE WENN(Wert_FAK != 0) DANN ERSTELLE NEUEN RPW_Resolution_Planning_Wert UND SETZE: SETZE AI_Resolution_Planning_ID = id SETZE AI_Wertart_Code = "Finanzierungsbeitrag (anderer Konzerneinheiten) (FaK)" SETZE Wert = Wert_FAK ENDE ENDE WENN(Wert_HBV != 0) DANN ERSTELLE NEUEN RPW_Resolution_Planning_Wert UND SETZE: SETZE AI_Resolution_Planning_ID = id SETZE AI_Wertart_Code = "Höhe der Besicherung der Verbindlichkeit (HBV)" SETZE Wert = Wert_HBV ENDE ENDE WENN(Wert_MRELB != 0) DANN ERSTELLE NEUEN RPW_Resolution_Planning_Wert UND SETZE: SETZE AI_Resolution_Planning_ID = id SETZE AI_Wertart_Code = "MREL-anrechenbarer Betrag (MRELB)" SETZE Wert = Wert_MRELB ENDE ENDE WENN(Wert_IMRELB != 0) DANN ERSTELLE NEUEN RPW_Resolution_Planning_Wert UND SETZE: SETZE AI_Resolution_Planning_ID = id SETZE AI_Wertart_Code = "Intern MREL anrechenbarer Betrag (IMRELB)" SETZE Wert = Wert_IMRELB ENDE ENDE WENN(Wert_GGB != 0) DANN ERSTELLE NEUEN RPW_Resolution_Planning_Wert UND SETZE: SETZE AI_Resolution_Planning_ID = id SETZE AI_Wertart_Code = "Geschätzter Glattstellungsbetrag (GGB)" SETZE Wert = Wert_GGB ENDE ENDE RUECKGABE = id FUNKTIONSENDE