# Prompt: Sparraten-Auswertung aus Parqet

Erstelle mir eine Excel-Datei mit meiner Sparrate der letzten 10 Jahre über alle meine Portfolios in Parqet hinweg. Gehe wie folgt vor:

## 1. Datenbeschaffung
- Ermittle über die Parqet-Tools alle Portfolios.
- Lies für jedes Portfolio alle Aktivitäten der Typen `buy`, `sell`, `deposit`, `withdrawal`, `interest` ein (inkl. `assetType`, `holdingId`, `amount`, `datetime`).
- Prüfe für jedes Immobilien-Portfolio die `buy`-Aktivität mit `holdingAssetType: real_estate`: Der Wert im Feld `shares` ist der Eigentümeranteil (z. B. 0,5 = 50 %). Notiere ihn pro Portfolio.

## 2. Zeitzone (wichtig!)
Parqet liefert Zeitstempel in UTC. Rechne **jeden** Zeitstempel zuerst in die lokale Zeitzone **Europe/Berlin** um und leite erst danach Jahr/Monat für die Zuordnung ab. Viele Buchungen stehen z. B. mit „22:00" oder „23:00" UTC im System – das ist lokal bereits 00:00 Uhr des **nächsten** Tages und verschiebt die Buchung sonst in den falschen Monat.

## 3. Sparraten-Definition
Für jeden Monat und jedes Portfolio gilt (alle Vorzeichen wie angegeben, unabhängig davon, ob eine Buchung wirtschaftlich eine Umbuchung zwischen eigenen Konten ist oder nicht):

| Aktivität | Vorzeichen | Betrag |
|---|---|---|
| Einzahlung auf Cashkonto (`deposit`, `assetType: cash`) | **+** | `amount` |
| Auszahlung von Cashkonto (`withdrawal`, `assetType: cash`) | **−** | `amount` |
| Wertpapierkauf (`buy`, `assetType: security`) | **+** | `amount` (Bruttokaufwert, vor Gebühren) |
| Wertpapierverkauf (`sell`, `assetType: security`) | **−** | `amount` |
| Zinsen auf Cashkonto, **negativ** (Kreditzinsen) | **−** | `abs(amount)` |
| Zinsen auf Cashkonto, positiv (Zinserträge) | – | zählt **nicht** |
| Einzahlung in Versicherung (`deposit`/`buy`, `assetType: insurance`) | **+** | `amount` (inkl. Gebühren) |
| Auszahlung aus Versicherung (`withdrawal`, `assetType: insurance`) | **−** | `amount` |
| Immobilienkauf (`buy`, `assetType: real_estate`) | **+** | `amount` (spiegelt über `shares` bereits den Eigentümeranteil wider – nicht zusätzlich skalieren) |
| Dividenden, Mieteinnahmen | – | zählt **nicht** |
| Wertsteigerungen (Kurs-/Immobilien-/Sammlerwert) | – | zählt **nicht** |

**Sonderregel Miteigentum:** Ist bei einer Immobilie ein Eigentümeranteil < 100 % hinterlegt, müssen bei den zugehörigen Cashkonten **desselben Portfolios** sowohl Einzahlungen als auch Auszahlungen als auch Kreditzinsen mit diesem Anteil multipliziert werden. Der Immobilienkauf selbst braucht keine zusätzliche Skalierung (siehe oben).

## 4. Tabellenstruktur (pro Portfolio + eine Tabelle "Gesamt" als Summe aller Portfolios)
- Kopfbereich: Name des Portfolios + **aktueller Portfoliostand** (Summe aller Holdings/Cashkonten laut Parqet, live abgefragt).
- Zeilen: Jahre, **absteigend** sortiert.
- Spalten: Jan–Dez, danach **Ø Jahr** (Durchschnitt der vorhandenen Monate) und **Summe Jahr** (Summe der vorhandenen Monate).
- Zeitraum: die letzten 10 Kalenderjahre bis heute. Ist ein Portfolio jünger (erkennbar an der ältesten Aktivität), Tabelle entsprechend verkürzen – nicht mit Nullen auffüllen.

## 5. Diagramm (pro Tabelle)
- Kombiniertes Diagramm: **Balken** = monatliche Sparrate, **Linie** = laufender 12-Monats-Durchschnitt (wie eine 200-Tage-Linie).
- Technischer Hinweis für die Umsetzung in openpyxl: Hilfsdatenspalten für das Diagramm **nicht ausblenden** (sonst plottet Excel sie nicht) und zusätzlich `plotVisOnly = False` setzen.

## 6. Reihenfolge in der Datei
Erst die Tabelle+Diagramm für **Gesamt** (Summe aller Portfolios), danach je ein Tabellenblatt pro Einzelportfolio.
