SPEC-2026-009 – Szenario-Verlaufsgrafik und einheitlicher Chart-Standard¶
Status: Entwurf
Proposal-Status: accepted
Kategorie: specification
Erstellt: 2026-07-06
Stand: 2026-07-06
Anlass¶
Der neue Tab Szenariovergleich zeigt Best, Base und Stress derzeit nur tabellarisch. Gleichzeitig verwenden Finanzierung, Cashflow, ETF & Vermögen sowie die Reports unterschiedliche Logiken für Jahresmarken, Rasterlinien und Legenden. Dadurch wirken die Diagramme uneinheitlich und einzelne X-Achsen sind nur grob oder nicht gleichmäßig beschriftet.
Ausgangsproblem¶
Szenariovergleich:
keine Verlaufsgrafik über die Jahre
UI-Charts:
Finanzierung, Cashflow und Vermögen verwenden unterschiedliche Tick-Logiken
Legenden sind unterschiedlich aufgebaut
Report-Charts:
Liniencharts zeigen nur Start-/Endbereich statt sauberer Jahres-Ticks
Legenden liegen als Text im SVG und sind schwer vergleichbar
Relevanter bestehender Stand¶
docs/calculations/model-specification.mddefiniert Best, Base und Stress sowie die identische ETF-Rendite zwischen den Cases.frontend/assets/js/result-visualization-ui.jsrendert den kanonischen Restschuldverlauf.frontend/assets/js/cashflow-projection-chart.jsrendert den Base-Case-Cashflowverlauf.frontend/assets/js/single-analysis-controller.jsrendert den Base-Case-Vermögensvergleich.frontend/assets/js/reports.jsrendert Linien- und Balkendiagramme in den Reports.frontend/assets/js/chart-format-fixes.jskorrigiert nachträglich einzelne Achsenlabels und ist damit ein Hinweis auf fehlende gemeinsame Chart-Regeln.
Vorgeschlagene Änderung¶
- Im Tab
Szenariovergleichwird unter der Tabelle eine VerlaufsgrafikNet vs ETF über die Jahreergänzt. - Die Grafik zeigt drei Linien in stabiler Reihenfolge:
- Best
- Base
- Stress
- Alle Jahresverlaufsdiagramme verwenden eine gemeinsame Utility für:
- gleichmäßig verteilte Jahres-Ticks
- erste und letzte Jahresmarke
- verständliche Intervalle abhängig vom Betrachtungszeitraum
- konsistente Legendenstruktur
- Die standardisierte X-Achse wird auf folgende UI-Charts angewendet:
- Restschuldverlauf
- Cashflow-Verlauf
- Vermögensvergleich Base Case
- neuer Szenariovergleich
- Die standardisierte X-Achse und Legende wird auf die Report-Liniencharts angewendet:
- Darlehensverlauf
- Vermögensentwicklung
- Cashflow-Projektion
- Report-Balkendiagramme behalten ihre Kategorienachse, erhalten aber dieselbe Legendensprache und visuelle Hierarchie, soweit eine Legende fachlich sinnvoll ist.
- Die Chart-Utilities rechnen keine Fachwerte neu. Sie skalieren und formatieren ausschließlich vorhandene Projektionswerte.
Entscheidungsmehrwert¶
Die Nutzer können die Robustheit der Immobilie gegenüber der ETF-Alternative über den gesamten Betrachtungszeitraum erkennen. Einheitliche Achsen und Legenden verbessern Vergleichbarkeit, Lesbarkeit und Reportqualität.
Auswirkungen auf Architektur, Roadmap und Spezifikation¶
Architektur: keine Änderung der Fachengine
Roadmap: keine Prioritätsänderung
Fachmodell: keine Änderung
Reporting-Vertrag: zusätzliche Visualisierung vorhandener Szenariowerte
Frontend- und Reportdarstellung: Änderung
Auswirkungen auf Formeln, KPIs und Ratings¶
Keine. Die neue Grafik verwendet ausschließlich:
ScenarioResult.projection[].year
ScenarioResult.projection[].terminal_net_vs_etf
Bestehende Charts verwenden weiterhin ihre bereits gespeicherten Projektionswerte.
Auswirkungen auf Datenverträge und Versionen¶
PropertyInput: unverändert
AnalysisResult: unverändert
PropertyRecord: unverändert
Modellversion: unverändert
Engine-Version: unverändert
Schemaversionen: unverändert
Auswirkungen auf UI, Reporting und Speicherung¶
- neuer Chart-Container im Szenariovergleich
- gemeinsame Chart-Utility für Jahresachsen und Legenden
- einheitliche Legendenreihenfolge und Beschriftung
- keine Speicherung zusätzlicher Daten
- gespeicherte Snapshots bleiben unverändert
Auswirkungen auf Tests und Referenzfälle¶
Zu prüfen:
- Szenariovergleich zeigt nach der Berechnung genau drei Linien Best/Base/Stress
- alle Linien verwenden dieselben Jahrespositionen
- X-Ticks sind gleichmäßig verteilt und enthalten erstes sowie letztes Jahr
- 30 Jahre ergeben beispielsweise Jahr 1, 5, 10, 15, 20, 25, 30
- Legenden enthalten keine Duplikate und stimmen mit den Linien überein
- UI-Charts und Report-Liniencharts verwenden dieselbe Tick-Utility
- bestehende Berechnungs- und Browserregressionen bleiben erfolgreich
Legacy- und Migrationsfolgen¶
Keine. Fehlen Projektionswerte in älteren Snapshots, zeigt die Grafik den bestehenden leeren Datenhinweis.
Risiken und offene Fragen¶
Viele Linien können auf kleinen Bildschirmen unübersichtlich werden. Der Szenariochart bleibt deshalb auf genau drei Linien begrenzt und verwendet eine responsive, außerhalb der Plotfläche angeordnete Legende.
Prüfergebnis¶
Die Änderung wurde gegen Modell-Spezifikation, AnalysisResult, bestehende UI-Charts, Report-Charts und Browserabnahme geprüft. Es ist keine neue fachliche Berechnung erforderlich.
Entscheidung¶
Angenommen. Umsetzung als Visualisierungs- und Teständerung ohne Modell-, Engine- oder Schemaversionserhöhung.
Zieldokumente¶
frontend/index.html
frontend/assets/js/chart-axis-utils.js
frontend/assets/js/scenario-comparison-chart.js
frontend/assets/js/result-visualization-ui.js
frontend/assets/js/cashflow-projection-chart.js
frontend/assets/js/single-analysis-controller.js
frontend/assets/js/reports.js
frontend/assets/js/reports-entry.js
frontend/assets/css/single-analysis.css
frontend/assets/css/report-expanded.css
scripts/check-chart-standardization.mjs
scripts/check-single-analysis-browser.mjs
.github/workflows/contract-check.yml
docs/changes/proposals/specification-additions.md
Integrationscommit¶
Offen bis erfolgreichem Contract Check und Browserreview.