Bezeichnung des Algorithmus | XEN_Beleihungsquote |
Kurzbezeichnung | Ermittlung der Beleihungsquote |
Verbale Beschreibung/Beispiele | Die Beleihungsquote misst den Grad der Absicherung der Summe der an einen Kreditnehmer vergebenen Kredite beim meldenden KI mit Verwendungszweck Wohnraumschaffung und Erhalt, indem sie dieser Summe die Summe der entsprechenden Sicherheiten gegenüberstellt. Es erfolgt somit eine Gesamtbetrachtung pro Kreditnehmer. Detailbeschreibung Zähler: Summe des aushaftenden Restbetrages der vom meldenden KI an den Kreditnehmer bereits vergebenen Finanzierungen zur Schaffung und Erhaltung von Wohnraum. Diese Summe beinhaltet den Ausstehenden Nominalwert inkl. Zinsabgrenzungen und nicht-ausgenutzten Rahmen sämtlicher Finanzierungen mit entsprechendem Verwendungszweck beim meldenden KI. Detailbeschreibung Nenner: Der Nenner besteht aus 2 Teilen:
Hinweis: Dieser Algorithmus ist auf (auslands-)filialübergreifender Basis mandantenübergreifend durchzuführen. |
Kommt vor in/wird verwendet für | Wertart_CL |
Formale Beschreibung | FUNKTION XEN_Beleihungsquote (AI_Mandant MA, AI_Geschaeftsfall_ID gfId, AI_Stichtag_Datum repDate) //Kennzeichen, ob es sich um einen relevanten Geschäftsfall im Sinne der Immobilienfinanzierungserhebung handelt relevanterKredit = SELEKTIERE GF.GFA185_Private_Wohnimmobilienfinanzierung_Kennzeichen VON GF_Geschaeftsfall //Kennzeichen, ob einer der Wohnimmobilienfinanzierungen des Schuldners eine relevante Besicherung besitzt unbesichert = SELEKTIERE GF.GFA194_Unbesichert_Immobilienfinanzierung_Bestand_Kennzeichen VON GF_Geschaeftsfall WENN(relevanterKredit ISTGLEICH WAHR UND unbesichert ISTGLEICH FALSCH) DANN inhaber = SELEKTIERE EM.EMA72_Identer_Kunde_ID VON EM_Einheit_MS VON KR_Kundenrollen MIT KR.AI_Rolle_Code ISTGLEICH "Inhaber (IH)" VON GF_Geschaeftsfall solidarkreditnehmergruppe = SELEKTIERE EM.EMA72_Identer_Kunde_ID VON EM_Einheit_MS VON KR_Kundenrollen MIT KR.AI_Rolle_Code ISTGLEICH "Solidarkreditnehmergruppe (SK)" VON GF_Geschaeftsfall //Selektion der anderen relevanten Kredite mit demselben Inhaber WENN(NICHT(ISTLEER(solidarkreditnehmergruppe)) DANN //Wenn Solidarkreditnehmergruppe vorliegt selektiere alle GF dieser Solidargruppe wi_finanzierungen = SELEKTIERE ALLE GF.AI_Geschaeftsfall_ID MIT (GF.GF00_Geschaeftsfallkategorie_Code ENTHAELT ("Wechselkredit (B)", "Barvorlage (E)", "Operating Leasing (F)", "Finance Leasing (G)", "Kreditkartenkredit (C)", "Revolvierender Kredit (exkl. Überziehungskredit) (V)", "Überziehungskredit (W)", "Einmalkredit (exkl. Kreditlinie) (X)", "Kreditlinie (Y)") UND GF.GFA185_Private_Wohnimmobilienfinanzierung_Kennzeichen ISTGLEICH WAHR) VON KR_Kundenrollen MIT KR.AI_Rolle_Code ISTGLEICH "Solidarkreditnehmergruppe (SK)" VON EM_Einheit_MS MIT (EM.EMA72_Identer_Kunde_ID ISTGLEICH solidarkreditnehmergruppe) SONST //Wenn keine Solidarkreditnehmergruppe vorliegt - selektiere alle GF des Inhabers, mit der Einschränkung, dass es keinen Co-Inhaber gibt (und damit keine Solidarkreditnehmergruppe vorliegt) wi_finanzierungen = SELEKTIERE ALLE GF.AI_Geschaeftsfall_ID MIT (GF.GF00_Geschaeftsfallkategorie_Code ENTHAELT ("Wechselkredit (B)", "Barvorlage (E)", "Operating Leasing (F)", "Finance Leasing (G)", "Kreditkartenkredit (C)", "Revolvierender Kredit (exkl. Überziehungskredit) (V)", "Überziehungskredit (W)", "Einmalkredit (exkl. Kreditlinie) (X)", "Kreditlinie (Y)") UND GF.GFA185_Private_Wohnimmobilienfinanzierung_Kennzeichen ISTGLEICH WAHR) VON KR_Kundenrollen MIT KR.AI_Rolle_Code ISTGLEICH "Inhaber (IH)" VON EM_Einheit_MS MIT (EM.EMA72_Identer_Kunde_ID ISTGLEICH inhaber) UND MIT ISTLEER(KR.AI_Rolle_Code ISTGLEICH "Co-Inhaber (CI)") ENDE zaehler = 0 ITERIERE wi_finanzierung VON 0, Max(wi_finanzierungen) ona = SELEKTIERE GFW.Wert VON GFW_Geschaeftsfall_Wert MIT (GFW.AI_Geschaeftsfall_ID ISTGLEICH wi_finanzierung UND GFW.AI_Wertart_Code ISTGLEICH "Ausstehender Nominalwert (ONA)") zs = SELEKTIERE GFW.Wert VON GFW_Geschaeftsfall_Wert MIT (GFW.AI_Geschaeftsfall_ID ISTGLEICH wi_finanzierung UND GFW.AI_Wertart_Code ISTGLEICH "Zinsabgrenzung Soll (ZS)") nar = SELEKTIERE GFW.Wert VON GFW_Geschaeftsfall_Wert MIT (GFW.AI_Geschaeftsfall_ID ISTGLEICH wi_finanzierung UND GFW.AI_Wertart_Code ISTGLEICH "Nicht ausgenutzer Rahmen (NAR)") zaehler = zaehler + ona + zs + nar ENDE ITERATION immobiliensicherheiten = SELEKTIERE ALLE ST.AI_Sicherheiten_ID VON ST_Sicherheiten_Stammdaten MIT (ST.ST03_Sicherheitenkategorie_Code ENTHAELT ("Wohnimmobilie (WI)", "Büros und sonstige Gewerberäume (GB)", "Sonstige Gewerbeimmobilien (SI)") VON SZ_Sicherheiten_Zerlegung MIT (SZ.AI_Zerlegungsansatz_Code ISTGLEICH "Hypothekarische Besicherung (HYP)" UND NICHT(ISTLEER(SZ.AI_Hypothek_ID))) VON GE_Geschaeftsfall_Exposure MIT GE.AI_Zerlegungsansatz_Code ISTGLEICH "Hypothekarische Besicherung (HYP)" VON GF_Geschaeftsfall MIT GF.AI_Geschaeftsfall_ID ENTHAELT wi_finanzierungen nenner = 0 ITERIERE immobiliensicherheit VON 0, Max(immobiliensicherheiten) //1. Schritt: Es wird diejenige Hypothek identifiziert, die einer Wohnimmobilienfinanzierung des Schuldners (bzw. der Schuldnergruppe) zugeordnet ist, und unter diesen den niedrigsten Rang hat hypotheken = SELEKTIERE ALLE HY.AI_Hypothek_ID VON HY_Hypothek MIT HY.AI_Sicherheiten_ID ISTGLEICH immobiliensicherheit rang_niedrigster_hypothek_fuer_wi_finanzierung = 0 rangniedrigste_hypothek_fuer_wi_finanzierung = NULL ITERIERE hypothek VON 0, Max(hypotheken) verbundene_wi_finanzierungen = SELEKTIERE ALLE GF.AI_Geschaeftsfall_ID MIT GF.AI_Geschaeftsfall_ID ENTHAELT wi_finanzierungen VON GE_Geschaeftsfall_Exposure MIT GE.AI_Zerlegungsansatz_Code ISTGLEICH "Hypothekarische Besicherung (HYP)" VON SZ_Sicherheiten_Zerlegung MIT (SZ.AI_Zerlegungsansatz_Code ISTGLEICH "Hypothekarische Besicherung (HYP)" MIT (SZ.AI_Hypothek_ID ISTGLEICH hypothek UND SZ.AI_Sicherheiten_ID ISTGLEICH immobiliensicherheit)) WENN(NICHT(ISTLEER(verbundene_wi_finanzierungen))) DANN rang = SELEKTIERE HY.HY01_Rang VON HY_Hypothek MIT (HY.AI_Hypothek_ID ISTGLEICH hypothek UND HY.AI_Sicherheiten_ID ISTGLEICH immobiliensicherheit) WENN(rang > rang_niedrigster_hypothek_fuer_wi_finanzierung ODER rang_niedrigster_hypothek_fuer_wi_finanzierung ISTGLEICH 0) DANN rang_niedrigster_hypothek_fuer_wi_finanzierung = rang rangniedrigste_hypothek_fuer_wi_finanzierung = hypothek ENDE ENDE ITERATION ENDE //Vorlasten setzen sich aus den eigenen Vorlasten und Vorlasten Dritter zusammen. Die eigenen Vorlasten werden in der Iteration unten ermittelt. hypothekenwert_vorlast = 0 hypothekenwert_vorlast = SELEKTIERE HYW.Wert VON HYW_Hypothek_Wert MIT (HYW.AI_Hypothek_ID ISTGLEICH rangniedrigste_hypothek_fuer_wi_finanzierung UND HYW.AI_Sicherheiten_ID ISTGLEICH immobiliensicherheit UND HYW.AI_Wertart_Code ISTGLEICH "Vorrangige Ansprüche Dritter (VAD)") hypothekenwert_sonstige_fremdfinanzierungen = 0 hypothekenwert_wi_finanzierung = 0 //2. Schritt: Erneute Iteration über alle der Sicherheit zugeordneten Hypotheken, wobei in diesem Schritt zwischen Hypotheken für Wohnimmobilienfinanzierungen und Vorlasten unterschieden wird ITERIERE hypothek VON 0, Max(hypotheken) //Pro Hypothek und Immobiliensicherheit muss der Rang eindeutig sein. rang = SELEKTIERE HY.HY01_Rang VON HY_Hypothek MIT (HY.AI_Hypothek_ID ISTGLEICH hypothek UND HY.AI_Sicherheiten_ID ISTGLEICH immobiliensicherheit) //Sofern die Hypothek ranghöher oder -gleich als die rangniedrigste Hypothek ist, die zur Besicherung einer Wohnimmobilienfinanzierung dient, so ist die Hypothek in der Beleihungsquotenermittlung relevant: Entweder als hypothekarische Besicherung einer Wohnimmobilienfinanzierung des Kreditnehmers oder als Vorlast, wenn sie die Wohnimmobilienfinanzierungen des Kreditnehmers nicht oder nur teilweise besichert. WENN(rang <= rang_niedrigster_hypothek_fuer_wi_finanzierung) DANN verbundene_wi_finanzierungen = SELEKTIERE ALLE GF.AI_Geschaeftsfall_ID MIT GF.AI_Geschaeftsfall_ID ENTHAELT wi_finanzierungen VON GE_Geschaeftsfall_Exposure MIT GE.AI_Zerlegungsansatz_Code ISTGLEICH "Hypothekarische Besicherung (HYP)" VON SZ_Sicherheiten_Zerlegung MIT (SZ.AI_Zerlegungsansatz_Code ISTGLEICH "Hypothekarische Besicherung (HYP)" UND SZ.AI_Hypothek_ID ISTGLEICH hypothek UND SZ.AI_Sicherheiten_ID ISTGLEICH immobiliensicherheit) wert_verbundene_wi_finanzierungen = 0 ITERIERE verbundene_wi_finanzierung VON 0, Max(verbundene_wi_finanzierungen) ona = SELEKTIERE GFW.Wert VON GFW_Geschaeftsfall_Wert MIT (GFW.AI_Geschaeftsfall_ID ISTGLEICH verbundene_wi_finanzierung UND GFW.AI_Wertart_Code ISTGLEICH "Ausstehender Nominalwert (ONA)") zs = SELEKTIERE GFW.Wert VON GFW_Geschaeftsfall_Wert MIT (GFW.AI_Geschaeftsfall_ID ISTGLEICH verbundene_wi_finanzierung UND GFW.AI_Wertart_Code ISTGLEICH "Zinsabgrenzung Soll (ZS)") nar = SELEKTIERE GFW.Wert VON GFW_Geschaeftsfall_Wert MIT (GFW.AI_Geschaeftsfall_ID ISTGLEICH verbundene_wi_finanzierung UND GFW.AI_Wertart_Code ISTGLEICH "Nicht-ausgenutzter Rahmen (NAR)") wert_verbundene_wi_finanzierungen = wert_verbundene_wi_finanzierungen + ona + zs + nar ITERATION ENDE verbundene_sonstige_fremdfinanzierungen = SELEKTIERE ALLE GF.AI_Geschaeftsfall_ID MIT (NICHT(GF.AI_Geschaeftsfall_ID ENTHAELT wi_finanzierungen) UND GF.GF00_Geschaeftsfallkategorie_Code ENTHAELT ("Wechselkredit (B)", "Barvorlage (E)", "Operating Leasing (F)", "Finance Leasing (G)", "Kreditkartenkredit (C)", "Revolvierender Kredit (exkl. Überziehungskredit) (V)", "Überziehungskredit (W)", "Einmalkredit (exkl. Kreditlinie) (X)", "Kreditlinie (Y)") UND GF.GF112_Zerlegung_Underlying_Kennzeichen ISTGLEICH FALSCH) VON GE_Geschaeftsfall_Exposure MIT GE.AI_Zerlegungsansatz_Code ISTGLEICH "Hypothekarische Besicherung (HYP)" VON SZ_Sicherheiten_Zerlegung MIT (SZ.AI_Zerlegungsansatz_Code ISTGLEICH "Hypothekarische Besicherung (HYP)" UND SZ.AI_Hypothek_ID ISTGLEICH hypothek UND SZ.AI_Sicherheiten_ID ISTGLEICH immobiliensicherheit) wert_verbundene_sonstige_fremdfinanzierungen = 0 ITERIERE verbundene_sonstige_fremdfinanzierung VON 0, Max(verbundene_sonstige_fremdfinanzierungen) glaeubiger = SELEKTIERE KR.AI_Einheitennummer_ID VON KR_Kundenrollen MIT (KR.AI_Rolle_Code ISTGLEICH "Gläubiger (GL)" UND KR.AI_Geschaeftsfall_ID ISTGLEICH verbundene_sonstige_fremdfinanzierung) mandant = SELEKTIERE MA.MA09_Einheitennummer_ID VON MA_Mandant VON GF_Geschaeftsfall MIT GF.AI_Geschaeftsfall_ID ISTGLEICH verbundene_sonstige_fremdfinanzierung WENN(glaeubiger ISTGLEICH mandant) DANN ona = SELEKTIERE GFW.Wert VON GFW_Geschaeftsfall_Wert MIT (GFW.AI_Geschaeftsfall_ID ISTGLEICH verbundene_sonstige_fremdfinanzierung UND GFW.AI_Wertart_Code ISTGLEICH "Ausstehender Nominalwert (ONA)") zs = SELEKTIERE GFW.Wert VON GFW_Geschaeftsfall_Wert MIT (GFW.AI_Geschaeftsfall_ID ISTGLEICH verbundene_sonstige_fremdfinanzierung UND GFW.AI_Wertart_Code ISTGLEICH "Zinsabgrenzung Soll (ZS)") //Nicht ausgenutzte Rahmen werden hier bewusst nicht inkludiert. wert_verbundene_sonstige_fremdfinanzierungen = wert_verbundene_sonstige_fremdfinanzierungen + ona + zs ENDE ITERATION ENDE //Der Nominalwert der Hypothek wird aliquot (nach dem ausstehenden Nominalwert) aufgeteilt. nominalwert_hypothek = SELEKTIERE HYW.Wert VON HYW_Hypothek_Wert MIT (HYW.AI_Hypothek_ID ISTGLEICH hypothek UND HYW.AI_Sicherheiten_ID ISTGLEICH immobiliensicherheit UND HYW.AI_Wertart_Code ISTGLEICH "Nominale (NN)") summe_wert_verbundene_kredite = wert_verbundene_wi_finanzierungen + wert_verbundene_sonstige_fremdfinanzierungen WENN(summe_wert_verbundene_kredite > 0) DANN hypothekenwert_wi_finanzierung = hypothekenwert_wi_finanzierung + (nominalwert_hypothek * wert_verbundene_wi_finanzierungen / summe_wert_verbundene_kredite) hypothekenwert_sonstige_fremdfinanzierungen = (nominalwert_hypothek * wert_verbundene_sonstige_fremdfinanzierungen / summe_wert_verbundene_kredite) //Deckelung der Hypothekenwerte sonstiger Fremdfinanzierungen mit dem ausstehenden Nominalbetrag hypothekenwert_sonstige_fremdfinanzierungen = MIN(hypothekenwert_sonstige_fremdfinanzierungen, wert_verbundene_sonstige_fremdfinanzierungen) hypothekenwert_vorlast = hypothekenwert_vorlast + hypothekenwert_sonstige_fremdfinanzierungen ENDE ENDE ENDE ITERATION mwf = SELEKTIERE STW.Wert VON STW_Sicherheiten_Stammdaten_Wert MIT (STW.AI_Sicherheiten_ID ISTGLEICH immobiliensicherheit UND STW.AI_Wertart_Code ISTGLEICH "Marktwert nach Fertigstellung (MWF)") mw = SELEKTIERE STW.Wert VON STW_Sicherheiten_Stammdaten_Wert MIT (STW.AI_Sicherheiten_ID ISTGLEICH immobiliensicherheit UND STW.AI_Wertart_Code ISTGLEICH "Marktwert (MW)") WENN(mwf ISTGLEICH NULL) DANN marktwert = mw SONST marktwert = mwf ENDE mw_abzgl_vorlasten = MAX(marktwert - hypothekenwert_vorlast, 0) nenner = nenner + MIN(mw_abzgl_vorlasten, hypothekenwert_wi_finanzierung) ENDE ITERATION exposureIds = SELEKTIERE ALLE GE.AI_Exposure_ID VON GE_Geschaeftsfall_Exposure MIT (GE.AI_Zerlegungsansatz_Code ISTGLEICH "CoRep (COR)" UND GE.AI_Geschaeftsfall_ID ENTHAELT wi_finanzierungen) ITERIERE exporsureId VON 0, Max(exposureIds) sicherheit = SELEKTIERE ST.AI_Sicherheiten_ID VON ST_Sicherheiten_Stammdaten VON SZ_Sicherheiten_Zerlegung MIT (SZ.AI_Zerlegungsansatz_Code ISTGLEICH "CoRep (COR)" UND SZ.AI_Exposure_ID ISTGLEICH exposureId) sicherheitenkategorie = SELEKTIERE ST.ST03_Sicherheitenkategorie_Code VON ST_Sicherheiten_Stammdaten MIT ST.AI_Sicherheiten_ID ISTGLEICH sicherheit sicherheitsleistung = SELEKTIERE ST.ST14_Sicherheit_mit_Sicherheitsleistung_Kennzeichen VON ST_Sicherheiten_Stammdaten MIT ST.AI_Sicherheiten_ID ISTGLEICH sicherheit WENN(NICHT(ISTLEER(sicherheit)) UND NICHT(sicherheitenkategorie ENTHAELT ("Wohnimmobilie (WI)", "Büros und sonstige Gewerberäume (GB)", "Sonstige Gewerbeimmobilien (SI)")) UND sicherheitsleistung ISTGLEICH WAHR) DANN sicherheitenWert = SELEKTIERE SZW.Wert VON SZW_Sicherheiten_Zerlegungs_Wert MIT (SZW.AI_Exposure_ID ISTGLEICH exposureId UND SZW.AI_Sicherheiten_ID ISTGLEICH sicherheit UND SZW.AI_Wertart_Code ISTGLEICH "anrechenbarer Wert der Sicherheit (BEL)") nenner = nenner + sicherheitenWert ENDE ENDE ITERATION WENN(nenner > 0) DANN RUECKGABE zaehler / nenner * 100 ENDE ENDE FUNKTIONSENDE |