Zum Inhalt

ADR 0001: Frontend-MVP, Szenario- und Reporting-Architektur

Status: Accepted
Datum: 2026-07-01

Kontext

Immohai soll im ersten Schritt als private Web-App eine schnelle, transparente und nachvollziehbare Immobilienanalyse ermöglichen.

Die zentrale Frage lautet:

Lohnt sich der Kauf dieser Immobilie im Vergleich zu einer ETF-Alternative, und wie robust ist diese Einschätzung unter Best-, Base- und Stress-Annahmen?

Für den ersten MVP wurde bewusst ein statisches Frontend gewählt. Backend, Datenbank, Login, Monte Carlo, eigener PDF-Renderer und Objektvergleich bleiben spätere Ausbaustufen.

Die fachliche Leitlinie lautet:

Ein Berechnungsmodell.
Zwei Eingabetiefen.
Keine parallele vereinfachte Berechnung.
Alle Annahmen bleiben sichtbar.

Entscheidung

Der Frontend-MVP verwendet eine modulare, aber einfache JavaScript-Struktur.

Die wesentlichen Module sind:

Modul Aufgabe
app.js Haupt-UI, Eingaben lesen, Basisergebnisse rendern, Tabs steuern
calculations.js deterministische Berechnung, Jahresprojektion, KPIs, Rating, Plausibilität
scenarios.js Modellkonfiguration laden und Best/Base/Stress-Inputs erzeugen
formatters.js konsistente Zahlen-, Prozent- und Jahresformatierung
wealth-scenarios.js Szenario-Graph und Szenarioannahmentabelle im ETF-&-Vermögen-Tab
scenario-sliders.js Quick-Mode-Slider für Szenario-Spannweiten
dashboard-assumptions.js Annahmenwerte und Herkunft im Dashboard
compact-input-panel.js kompakte Darstellung der Quick-Mode-Eingaben und Initial-Refresh
reports.js Reporttab, Reportauswahl und Reportvorschau

Die UI darf keine eigene Fachberechnung einführen. Sie darf Daten nur anzeigen, gruppieren, formatieren oder erklären.

Szenariomodell

Die Szenarien werden zentral über buildScenarioInputs(...) erzeugt.

Base ist der Referenzfall. Best und Stress werden daraus abgeleitet.

Im Quick Mode können Szenario-Spannweiten über Slider verändert werden. Diese Slider ändern nicht die Berechnungsformeln, sondern nur die Eingabewerte für Best und Stress.

Grundsatz:

Base = Referenzannahme
Best = immobilienfreundlichere Abweichung
Stress = immobilienkritischere Abweichung

Quick-Mode-Slider

Im MVP gibt es Slider für:

Slider Wirkung im Best Case Wirkung im Stress Case
Mietniveau-Variation Monatsmiete höher Monatsmiete niedriger
Zinsvariation Anfangs- und Anschlusszins niedriger Anfangs- und Anschlusszins höher
Wachstumsvariation Miet- und Wertwachstum höher Miet- und Wertwachstum niedriger
Inflationsvariation Kosteninflation niedriger Kosteninflation höher
Leerstandsvariation Leerstand niedriger Leerstand höher
CAPEX-Variation CAPEX-Quote niedriger CAPEX-Quote höher
ETF-Rendite-Variation ETF-Rendite niedriger ETF-Rendite höher

Die ETF-Rendite wird als Opportunitätskostenannahme behandelt. Für die Immobilienbewertung ist eine niedrigere ETF-Rendite im Best Case günstiger, eine höhere ETF-Rendite im Stress Case ungünstiger.

CAPEX wirkt besonders stark, weil capex_pct jährlich auf den Immobilienwert angewendet wird:

running_capex_y = property_value_y * capex_pct

Deshalb ist die CAPEX-Spannweite im Quick Mode bewusst begrenzt.

Reporting-Architektur

Die Ergebnisansicht ist in Tabs gegliedert:

Dashboard
Finanzierung
Jahresprojektion
ETF & Vermögen
Reports

Dashboard

Das Dashboard zeigt:

  • Plausibilitätsprüfung.
  • Kern-KPIs.
  • Best/Base/Stress-Vergleich.
  • Annahmenherkunft mit konkreten Werten.
  • Modellgrenzen.
  • Bewertungslegende.

Finanzierung

Der Finanzierungstab zeigt den annuitätsnahen Darlehensverlauf des Base Case.

Die Logik ist bewusst eine Näherung und ersetzt keinen Bank-Tilgungsplan.

Jahresprojektion

Die Jahresprojektion zeigt den operativen Verlauf des Base Case:

  • Bruttomiete.
  • Leerstand.
  • nicht umlagefähige Kosten.
  • CAPEX.
  • NOI.
  • Kapitaldienst.
  • Cashflow vor Steuer.
  • jährlicher und kumulativer Zuschussbedarf.

ETF & Vermögen

Der ETF-&-Vermögen-Tab zeigt:

  • Base-Case-Vermögenssummary.
  • Net-vs-ETF-Graph für Best, Base und Stress.
  • Szenarioannahmen und Ergebniswerte.
  • Base-Case-Detailtabelle mit Immobilienwert, Restschuld, Side Account, Immobilienvermögen, ETF-Wert und Net-vs-ETF.

Reports

Der Reports-Tab zeigt eine erste Reportvorschau.

Aktuelle Reporttypen:

  • Investment One Pager.
  • Investment Report.
  • Bank Report.

Die Reports lesen vorhandene gerenderte Eingaben, KPIs, Szenarioergebnisse, Annahmen und Plausibilitätsmeldungen aus der Oberfläche.

Grundsatz:

Reports berechnen keine Werte neu.
Reports sind Vorschauen auf Basis der aktuellen Analyse.

Der aktuelle Export erfolgt über Browser-PDF-Druck. Ein eigener PDF-Renderer bleibt eine spätere Ausbaustufe.

Annahmentransparenz

Alle relevanten Annahmen sollen eine Herkunft haben.

Im Frontend-MVP werden insbesondere diese Herkunftstypen sichtbar:

Herkunft Bedeutung
manual Nutzer hat den Wert direkt eingegeben
default Wert stammt aus Modell-/Profil-Default
object_type_adjusted Wert wurde durch Objektart angepasst
scenario Wert stammt aus Szenarioannahmen oder Szenario-Spannweiten

Die Annahmenanzeige zeigt nicht nur Herkunft, sondern auch konkrete Werte.

Konsequenzen

Vorteile:

  • Die App bleibt nachvollziehbar.
  • Quick Mode und spätere Expert-Ansicht können dieselbe Engine nutzen.
  • Szenario-Slider sind intuitiv, ohne eine zweite Berechnung einzuführen.
  • Reporting und Berechnung bleiben getrennt.
  • Reportvorschauen sind bereits im statischen Frontend möglich.
  • Der statische MVP bleibt ohne Backend betreibbar.

Nachteile und Grenzen:

  • Szenario-Slider sind im Quick Mode vereinfachte Spannweiten, keine vollständige Expert-Konfiguration.
  • CAPEX- und ETF-Sensitivitäten können über lange Zeiträume sehr starke Effekte erzeugen.
  • Der aktuelle MVP zeigt Base-Case-Detailtabellen, aber noch keine vollständigen Detailtabellen für Best und Stress.
  • Der aktuelle Reportexport ist Browser-PDF-Druck, kein eigener PDF-Renderer.
  • Es gibt noch keine Persistenz, keinen Objektvergleich und keine Monte-Carlo-Simulation.

Nicht entschieden

Noch offen sind:

  • genaue Struktur des späteren Expert Mode.
  • ob Szenario-Spannweiten später in JSON-Konfiguration ausgelagert werden.
  • ob die aktuelle Frontend-Engine später 1:1 durch eine Python-/FastAPI-Engine ersetzt oder gespiegelt wird.
  • welche Kennzahlen in späteren finalen PDF-/Investment-Reports verpflichtend sind.
  • ob ein späterer PDF-Export clientseitig oder serverseitig erzeugt wird.
  • wie Sensitivitäten und Monte Carlo später gemeinsam dargestellt werden.