Zum Inhalt

Berechnungsmodell – Überblick

Status: informativ
Spezifikationsversion: 1.0.1
Modellbezug: 0.6.2
Stand: 2026-07-05

1. Zweck

Diese Datei beschreibt das Immohai-Berechnungsmodell ausschließlich auf Überblicksebene. Die vollständige und allein verbindliche Formelwahrheit steht in:

docs/calculations/model-specification.md

Diese Datei definiert keine parallelen Formeln, Schwellen oder Ratingregeln.

2. Quellenhierarchie

1. docs/calculations/model-specification.md
2. docs/specification/data-quality-and-validation/data-model.md
3. docs/specification/model-and-calculations/calculation-interfaces.md
4. weitere führende Spezifikationen des jeweiligen Themas
5. maschinenlesbare Modellkonfiguration
6. Implementierung und Tests
7. UI und Reports

Die vollständige Eigentümerschaft steht in docs/governance/documentation-system.md.

3. Ziel der Berechnung

Immohai bewertet:

Gesamtinvestition
Eigenkapital und Darlehen
LTV und Kapitaldienst
NOI und Cashflow vor Steuer
Liquiditätsbedarf
Immobilienvermögen
ETF-Alternative
Exit
Best-/Base-/Stress-Robustheit
Investment Rating
Datenqualität und offene Prüfungen

4. Rechenarchitektur

Einzelanalyse ─┐
               ├──> PropertyInput -> Single-Property-Engine -> AnalysisResult
Batch-Analyse ─┘

Identische PropertyInputs und versionierte Konfigurationen liefern unabhängig vom Eingabeweg identische Ergebnisse.

5. Quick und Expert Mode

Quick und Expert Mode verwenden dieselbe Engine.

Quick:
  wenige Pflichtfelder
  sichtbare Defaults

Expert:
  zusätzliche Annahmen
  vollständige Herkunft
  finale Overrides

6. Annahmenauflösung

finaler manueller Wert
manuelle Eingabe
bewusst übernommener Schätzwert oder Importwert
Profilwert
Objektprofil-Anpassung nur auf Profil- oder Defaultwert
Default
missing

Finale Werte bleiben unverändert.

7. Szenarien

Base:
  aufgelöste Annahmen ohne Szenario-Delta

Best und Stress:
  dokumentierte Deltas nur auf scenario_adjustable-Felder

ETF-Rendite bleibt zwischen den Immobilien-Szenarien identisch.

Fachstatus wie rent_basis und interest_basis bestimmt mit, ob ein Wert fixed oder scenario_adjustable ist.

8. Erwerb und Finanzierung

closing_costs = purchase_price × closing_costs_pct
total_acquisition_cost = purchase_price + closing_costs
total_initial_investment = total_acquisition_cost + initial_renovation_costs
loan_amount = max(0, total_initial_investment - equity_contributed)
non_purchase_costs_financed_amount = max(0, loan_amount - purchase_price)

cash_reserve_after_closing ist ein Informationsfeld.

9. Kosten und Cashflow

NOI
= Nettokaltmiete
- Leerstand
- nicht umlagefähige Betriebskosten

Cashflow vor Steuer
= NOI
- Reservebeitrag
- wiederkehrender CAPEX
- Sonder-CAPEX
- Kapitaldienst

Die gewählte CAPEX-Methode steuert genau eine Berechnungsmethode.

10. DSCR und LTV

initial_ltv = loan_amount / purchase_price
current_ltv_y = debt_y / property_value_y
dscr_y = (noi_y - reserve_contribution_y) / debt_service_y

Bei fehlendem Kapitaldienst ist DSCR null und not_applicable.

11. Rendite

gross_yield_y1 = gross_rent_y1 / purchase_price
noi_yield_y1 = noi_y1 / total_initial_investment

net_yield_before_financing_y1 ist nur ein Legacy-Lesealias.

12. ETF und Exit

ETF und Side Account verwenden Jahresend-Timing. Die ETF-Alternative startet mit dem eingesetzten Eigenkapital und erhält dieselben negativen Nachschüsse. Hauptvergleich ist terminal_net_vs_etf_after_exit nach Verkaufskosten und Restschuld.

13. Datenqualität und Rating

Fehlende oder unzureichende Datenqualität führt zu UNRATED; es gibt keinen Ersatzscore.

Best und Stress erhalten ScenarioAssessment. Nur Base beziehungsweise AnalysisResult erhält das vollständige Investment Rating. Robustness wird aus Stress abgeleitet.

14. Market Screening und Vollanalyse

Pre-Screening enthält objektbezogene Kennzahlen. NOI-basierte Kennzahlen sind nur mit vorhandenen oder transparent defaulted Kosten- und Erwerbsdaten zulässig. Vollanalyse ergänzt Finanzierung und verwendet die vollständige Single-Property-Engine.

15. Marktmiet-Schnittstelle

published RentReferenceDataset innerhalb seines Scope
-> RentEstimate
-> PropertyInput.rental.monthly_cold_rent
-> Engine

Die Engine berechnet keine Marktmiete.

16. Versionierung

Zusammengehörige Versionen stehen in:

model/config/model-manifest.json
frontend/assets/config/model-manifest.json

17. Weiterführende Spezifikationen

docs/governance/documentation-system.md
docs/calculations/model-specification.md
docs/specification/data-quality-and-validation/data-model.md
docs/specification/model-and-calculations/calculation-interfaces.md
docs/specification/data-quality-and-validation/data-quality-assessment.md
docs/specification/model-and-calculations/kpi-assessments.md
docs/specification/data-quality-and-validation/validation.md
docs/specification/user-interface-and-reporting/reporting.md