Bitte wenn möglich verbessern und in English beschreiben:

Beschreibung des Prozesses zur Ermittlung von Bestandsveränderungen (Delta-Ermittlung)
Dieser Prozess dient dazu, die monatliche Veränderung (das "Delta" oder die "Bewegung") von finanziellen Bestandsdaten, wie z.B. Beitragsüberträgen oder Schadenrückstellungen, zu identifizieren und als Bewegungsdatensätze bereitzustellen.
 
1. Zielsetzung
Das Ziel ist die Transformation von Bestandsdaten aus zwei aufeinanderfolgenden Perioden (Vormonat und aktueller Monat) in Bewegungsdaten (Movements), die die Veränderung zwischen diesen Perioden darstellen. Dies ist die Voraussetzung, um die monatlichen Veränderungen der Bestände im Hauptbuch (SAP FI) zu buchen.
2. Eingangsdaten
Der Prozess basiert auf Bestandsdatensätzen für zwei Perioden:
Vormonat (PM - Previous Month): Der Bestandswert am Ende des Vormonats.
Aktueller Monat (CM - Current Month): Der Bestandswert am Ende des aktuellen Monats.
Die Ermittlung des jeweiligen Bestandsdatensatzes (Vormonatsbestand) im Integration_Layer erfolgt über einen kombinierten Schlüssel aus fachlichen und technischen Attributen, dem DELTA_KEY:
 
Fachliche Attribute: Ein Liste an Attributen, die eine spezifische Gruppierung bzw. eine bestimmte Ausprägung der Bestandsdaten repräsentiert
Schlüssel zur Identifizierung der Buchung, z.B. TECH_RECORD_TL_ID für BÜ-Bestände oder SOB_NR bei Schadenrückstellungen
Zusätzlich enthalten die Datensätze die Beträge in der Transaktionswährung sowie Informationen zur Währung selbst und zur Periode (FISCAL_PERIOD).
3. Kernprozess: Identifikation, Matching und Delta-Ermittlung
Der Kern des Prozesses ist der Vergleich der Bestandsdatensätze des aktuellen Monats mit denen des Vormonats. Das Matching erfolgt auf Basis des kombinierten Schlüssels  (DELTA_KEY). 
Die Veränderung (TRANSACTION_CURRENCY_AMOUNT_DELTA) wird in der Transaktionswährung ermittelt, basierend auf den folgenden drei Fällen:
Fall 1: Bestand existiert in beiden Perioden (Matching)
Ein Datensatz mit dem gleichen DELTA_KEY ist sowohl im Vormonat als auch im aktuellen Monat vorhanden.
Die Veränderung ist die Differenz zwischen dem aktuellen Betrag und dem Vormonatsbetrag:
TRANSACTION_CURRENCY_AMOUNT_DELTA = TRANSACTION_CURRENCY_AMOUNT_CM - TRANSACTION_CURRENCY_AMOUNT_PM
Beispiel: Bestand war 1500, ist jetzt 1000 -> Delta = 1000 - 1500 = -500
Fall 2: Bestand existiert nur im Vormonat (Ausbuchung)
Ein Datensatz mit einem bestimmten DELTA_KEY existiert im Vormonat, ist aber im aktuellen Monat nicht mehr vorhanden
Dies wird als vollständige Reduzierung des Bestands betrachtet (eine "Ausbuchung")
Die Veränderung entspricht dem negativen Betrag des Vormonats:
TRANSACTION_CURRENCY_AMOUNT_DELTA = 0 - TRANSACTION_CURRENCY_AMOUNT_PM = -TRANSACTION_CURRENCY_AMOUNT_PM
Beispiel: Bestand war 1500, ist jetzt nicht mehr da -> Delta = 0 - 1500 = -1500
Fall 3: Bestand existiert nur im aktuellen Monat (Einbuchung)
Ein Datensatz mit einem bestimmten DELTA_KEY  existiert im aktuellen Monat, war aber im Vormonat nicht vorhanden
Dies wird als neuer Bestand betrachtet (eine "Einbuchung")
Die Veränderung entspricht dem Betrag des aktuellen Monats:
TRANSACTION_CURRENCY_AMOUNT_DELTA = TRANSACTION_CURRENCY_AMOUNT_CM - 0 = TRANSACTION_CURRENCY_AMOUNT_CM
Beispiel: Bestand war nicht da, ist jetzt 1000 -> Delta = 1000 - 0 = 1000
Sonderfall: Änderung der Gruppierungsmerkmale
Falls sich für einen logischen Bestandsposten (z.B. eine bestimmte Rückstellung für eine bestimmte Police) die identifizierenden Attribute von einem Monat zum anderen ändern, wird dies nicht als Veränderung desselben Eintrags behandelt, sondern als:
1. Eine Ausbuchung des alten Eintrags (Fall 2 für den alten DELTA_KEY)
2. Eine Einbuchung des neuen Eintrags (Fall 3 für den neuen DELTA_KEY)
4. Währungsumrechnung
Die ermittelten Deltas (TRANSACTION_CURRENCY_AMOUNT_DELTA) liegen zunächst in der ursprünglichen Transaktionswährung vor. Diese Beträge werden anschließend basierend auf den relevanten Wechselkursen der Berichtsperiode in die Functional Currency (funktionale Währung des Unternehmens) und die Local Currency (lokale Währung des Standorts) umgerechnet. Dadurch stehen die Bewegungen auch in den relevanten Berichtswährungen zur Verfügung.
5. Ausgabe (Bewegungsdatensätze)
Das Ergebnis des Prozesses sind Bewegungsdatensätze. Jeder Datensatz repräsentiert eine identifizierte Veränderung (Delta) und enthält mindestens folgende Informationen:
Die identifizierenden Attribute (DELTA_KEY - in der Ausprägung des aktuellen Monats oder der relevanten Periode)
Die Berichtsperiode (FISCAL_PERIOD)
Den Betrag der Veränderung (TRANSACTION_CURRENCY_AMOUNT_DELTA) in:
Transaktionswährung
Functional Currency
Local Currency
Zusätzliche Attribute, die für die Identifizierung oder weitere Verarbeitung relevant sind (z.B. Währungsinformationen, Bezug zum Vormonat/aktuellen Monat)
6. Identifizierung von Gruppierungsmerkmalen für eindeutige Bestandsdatensätze
Zur Ermittlung des eindeutigen Bestandsdatensatzes werden spezifische Attribute als Gruppierungsmerkmale herangezogen. Diese Auswahl erfolgt mithilfe einer Metadatentabelle, die als Kreuztabelle (Matrix) aufgebaut ist:
Zeilen: Enthalten die Attribute (z. B. TECH_RECORD_IL_ID, LEGAL_ENTITY), die potenziell für die Gruppierung genutzt werden können.
Spalten: Repräsentieren die Sparten (z. B. FSCD_PREMIUM, GERAS_PREMIUM, FSCD_CA), für die die Gruppierungslogik definiert wird.
Markierung: Ein „x“ in einer Zelle zeigt an, dass das entsprechende Attribut für die Gruppierung in der jeweiligen Sparte verpflichtend ist. Fehlende Markierungen bedeuten, dass das Attribut in diesem Kontext nicht berücksichtigt wird.

Interpretation:
Für die Sparte FSCD_PREMIUM wird das Attribut TECH_RECORD_TL_ID (Beispielwert: 15509) zur Gruppierung verwendet.
In der Sparte GERAS_PREMIUM ist ebenfalls TECH_RECORD_TL_ID relevant, während andere Attribute wie TECH_RECORD_IL_ID oder TECH_SUPPLY_ID keine Rolle spielen.
Zweck: Diese strukturierte Vorgehensweise gewährleistet, dass je nach Sparte konsistente und eindeutige Datensätze identifiziert werden, indem nur die festgelegten Schlüsselattribute berücksichtigt werden.