Version 5.5.0

D2G Investment Model
Workshop Q&A

Technical reference for the Hamburg Bismarckstraße deal — answering every question from the workshop catalog with sheet references, formulas, and visual walkthroughs.

How everything connects

Three-Tier Architecture

D2G v5.5.0 is organized in three tiers — Input → Calculation → Output. Every sheet is prefixed with a code that tells you its role:

PrefixSheetRole
3ACRM_INPUTMarket rent tiers from CRM (7 size cohorts, lower/mid/upper)
2FInput Rent RollUnit-level lease data (145 resi + 14 commercial + 56 parking)
2EOutput Rent RollMonthly rent projections per unit (BGB, Staffel, Index logic)
2BGRIAggregated gross/net rental income by cohort
2HSubsidiesKfW, IfB, DUS grant & loan programs
2ACF Engine48-month cash flow: NOI, CAPEX, debt service
2CP&L + Tax EngineP&L waterfall, depreciation, corporate + trade tax
2DPromote & IRRInvestor/GP waterfall with 3 hurdle tiers
2GSensitivity2D matrices (exit month × multiple, rent × CAPEX)
1AInvest. MemoIC-ready executive summary
1BIC ChartsVisual presentation charts for the Investment Committee

Data-Flow Diagram

This is the dependency map Ansgar asked about (Q8). Every arrow is a real cross-sheet formula reference.

3A CRM INPUT Market rent tiers 2F Input Rent Roll Unit-level lease data 2E Output Rent Roll Monthly rent projections 2H Subsidies KfW / IfB / DUS grants 2B GRI Rent aggregation & cohorts 2A CF ENGINE 48-month cash flow (core) 2C P&L + Tax Tax engine & depreciation 2D Promote & IRR Waterfall & returns 2G Sensitivity Scenario matrices 1A INVEST. MEMO & 1B IC CHARTS IC-ready outputs INPUT CALCULATION OUTPUT

Every arrow represents a live cross-sheet formula reference in D2G v5.5.0

Where does the "core logic" sit? (Ansgar Q3)

The 1A Invest. Memo is not a passive printout — it contains toggle switches and linked formulas that pull from the calculation sheets. However, the heavy lifting happens in three sheets:

  • 2E Output Rent Roll — the single largest calculation block in the entire model (1,300+ rows), computing every unit's rent trajectory month by month
  • 2A CF Engine — aggregates everything into a 48-month cash-flow waterfall (rental income, opex, CAPEX, debt service)
  • 2C P&L + Tax — layered P&L from NOI down to net income, then shareholder loan mechanics

The memo (1A) and charts (1B) reference these via cross-sheet lookups. You can trust the memo values, but to audit them you must trace back to 2A/2C/2D.

Critical Inputs & Their Impact

Input Categories & Semantic Meaning

InputWhereWhat It MeansImpact
EK Draw 2A row 62+ "Eigenkapital-Abruf" — the equity drawdown schedule. Determines when investor cash is called (months 0-48). Very High. Timing directly shifts IRR — earlier draws dilute returns. The model distributes equity calls across CAPEX milestones.
LTV 2A row 80+ Loan-to-Value — ratio of senior debt to asset value. Drives debt quantum and interest cost. Very High. Higher LTV = more leverage = higher IRR if returns > cost of debt, but more downside risk. Typical range: 55-70%.
CAPEX (EE / TI / General) 2A rows 43-56 Three categories: Energy-Efficiency (EE: €875/m²), Tenant Improvements (TI: €712/m²), General maintenance. Very High. EE-CAPEX alone = €6.99M on this deal. It unlocks subsidies (2H) and rent upside via Modernisierungsumlage. TI-CAPEX triggers on churn events.
Subsidies 2H rows 6-19 Government grants (KfW, IfB) that offset CAPEX. On this deal: €7.16M total. High. Subsidies cover ~50% of EE-CAPEX. Without them, levered returns drop dramatically. But timing risk exists ("cash traps").
Target rents 3A CRM / 2B GRI Expected achievable rents by size cohort at exit. Resi entry: €7.24/m²; commercial: €17.26/m². Very High. The exit multiple × GRI at that date = terminal value. A €0.50/m² swing can shift IRR by 200+ bps.
Exit month & multiple 2G Sensitivity When the asset is sold and at what yield. Base case: month 48, multiple ~23x. Very High. The single biggest lever. See Sensitivity tab for matrices.
Building metrics 2F col J Total NLA (9,501 m²), unit count (215), vacancy (2.6%), average lease age, Wohnlage (location quality). Medium. These are structural — they set the ceiling for rent potential and subsidy eligibility.

Input Constraints & Guardrails (Ansgar Q2)

The model does not hard-block unrealistic inputs — it will happily calculate a 200% LTV scenario. However, several soft constraints exist:

  • BGB rent cap 2F col AK: Maximum 20% increase over 3 years per §558 BGB. The "Noch mögliche BGB Mieterhöhung %" column tracks remaining headroom per unit.
  • Subsidy caps 2H row 17: KfW max loan = €132,414/unit; IfB capped at 60% eligible spend. Exceeding these zeroes out the benefit.
  • Market rent boundaries 3A CRM: Upper/lower bounds per size class. Inputs outside these ranges produce unrealistic GRI projections.
  • Hold period: Model built for 180 months (15 years) of monthly columns. The current Hamburg deal uses 48 months as its exit assumption — extending within the 15-year structure requires only a parameter change. Going beyond 180 months would then require adding new columns across all sheets.

Input & Output Rent Roll

Input Rent Roll — Column Map 2F

ColumnsContentNotes
A–EUnit ID, status, address, location, typeType = "Wohnen" (resi), "Gewerbe" (commercial), "Stellplatz" (parking)
JFläche (m²)Mandatory. Drives all per-m² calculations.
MMiete €/m²/monthAuto-calculated = N ÷ J
NNK Miete (net cold rent)Mandatory. The actual monthly rent excluding services.
Q–WTotal rent, deposit, Nebenkosten, heating, parkingOperating cost breakdown per unit
Y–ACLease dates (start, end, duration)Feed into churn timing in 2E
AKNoch mögliche BGB Mieterhöhung %Remaining allowable rent increase under §558 BGB (max 20%/3yr). Complex — each unit tracks its own headroom based on prior increases.
ALBGB Mieterhöhung €/m²= AK × M (absolute amount per m²)
AQIndex oder Staffel?"Index" = CPI-linked rent; "Staffel" = fixed annual step; blank = standard BGB only
ASHöhe Staffel (€ p.a.)Annual step amount if Staffel lease
AV–AWMarket rent range (lower/upper)Linked from 3A CRM tiers by size class
What is "TIs resi"?

TI = Tenant Improvements (Mieterausbau). These are the renovation costs incurred when a residential unit turns over. In the model, TI costs are 2A row 53 = €712/m² × renovatable area. They're triggered by churn events modeled in 2E rows 15-22. "TIs resi" simply means the tenant-improvement budget allocated to residential (as opposed to commercial) units.

Where are Size Classes and Target Rents used?

Size classes are defined in 3A CRM_INPUT as 7 cohorts (up to 35 m², 35-40, 40-45, 45-50, 50-65, 65-75, 75+). Each cohort has a lower, mid, and upper target rent. These are consumed by 2B GRI via an INDEX/MATCH that selects the appropriate rent tier based on the dropdown in 2B cell E3 ("Rent Index - Upper", "Lower", "Mid", etc.). The formula:

=IF($E$3="Rent Index - Upper", AVERAGE('2F_CAL Input Rent Roll'!$AW$5:$AW$13), IF($E$3="Rent Index - Lower", AVERAGE('2F_CAL Input Rent Roll'!$AV$5:$AV$13), ...))
Noch mögliche BGB Mieterhöhung % — explained

German rent law (§558 BGB) caps residential rent increases at 20% over any rolling 3-year period (15% in "angespannte Wohnungsmärkte" like Hamburg). Column 2F AK tracks how much headroom remains for each unit.

For example, if a unit's rent was already raised 8% last year, only 12% (or 7% in tight markets) remains available. The Output Rent Roll 2E rows 29-36 uses these percentages to schedule BGB increases at specific months (e.g., month 6 at 15%, month 42 at 11%).

This is critical because it limits how fast rents can be raised to market level even after renovation.

Output Rent Roll — The Biggest Calculation in D2G 2E

At 1,309 rows, this is the most complex sheet. It projects every unit's rent month-by-month for 48 months.

What is "Churn"?

Churn = tenant turnover. When a tenant leaves, the unit goes vacant temporarily, then gets re-let (ideally at a higher rent). Churn is modeled in 2E rows 15-22:

  • Row 15-16: Gewerbe Laden (retail): 79 m² churning at month 0
  • Row 17-18: Gewerbe Büro (office): 304.49 m² churning at month 0
  • Row 22: Total Gewerbe Relet — area requiring re-tenanting

Churn matters because it triggers TI-CAPEX spend, temporary vacancy loss, and unlocks the ability to set a new (higher) rent on the re-let.

What is "VAT Damage"?

VAT Damage = non-recoverable VAT (Vorsteuer-Schaden). When CAPEX is spent on units that are rented to residential tenants (VAT-exempt), the investor cannot reclaim the 19% VAT. This "damage" appears in multiple places:

  • 2E row 20: VAT Damage on churned TI = percentage lost on tenant improvement costs
  • 2E row 77: VAT Damage Modernisierungscapex = 0.72 (72% of modernization VAT is non-recoverable)
  • 2A row 32: Total VAT Damage in CF = –€81k over the hold period
What is "NLA"?

NLA = Net Leasable Area (Nettomietfläche). The rentable floor space excluding common areas, stairwells, and technical rooms. In 2E row 23, NLA starts at 926.49 m² (month 0) and grows to 1,098.99 m² by month 2 as commercial spaces are re-let after churn. Total portfolio NLA is 9,501 m².

What is "EE-Top-Up"?

EE-Top-Up = Energy-Efficiency surcharge (Energetische Modernisierungsumlage). After energy-efficiency renovations, German law (§559 BGB) allows landlords to pass through up to 8% of the renovation cost per year as a rent increase — on top of the normal BGB cap.

In the model: 2E row 43, calculated as a weighted average = €1.97/m²/month.

EE-Top-Up = SUMPRODUCT(W393:W1309, E393:E1309) / SUM(E393:E1309)

This kicks in from 2E row 31 "ModUmlage drawn month" = month 21 — i.e., once renovations complete.

Commercial Rent: Three Calculation Paths

Commercial units use three separate rent development mechanisms (Felix's question about rent-development, VPI, last indexation):

  1. Rent Development — The base annual rent growth assumption applied to commercial rents. Market-driven.
  2. VPI (Verbraucherpreisindex) — Consumer Price Index indexation. Commercial leases often tie rent adjustments to CPI. Triggered when cumulative CPI exceeds a threshold (typically 5-10%).
  3. Last Indexation — Tracks when the rent was last CPI-adjusted. The model checks if enough time has passed and enough inflation has accrued since the last adjustment before applying the next one.

The logic in 2E row 24 uses a conditional INDEX/MATCH:

=IF(L$10*12 > CEILING($H$2/12,1)*12, "", IFERROR(INDEX($AC24:$HA24, 1, IFERROR(MATCH(L$10*12, $AC$8:$HA$8, 0), MATCH($H$2, $AC$8:$HA$8, 0))), ""))

This finds the rent value for the specific month, falling back to the hold-period end if the month lookup fails.

Residential Rent — Staffel, Index, and BGB (the big one)

This is the largest single calculation block in D2G. Each residential unit follows one of three paths based on 2F col AQ:

TypeMechanismBGB Interaction
Staffel
(fixed step)
Rent increases by a fixed €/m²/year 2F col AS. Predictable, contractually locked in. Staffel increases count against the BGB 20% cap. But since they're contractual, they're guaranteed.
Index
(CPI-linked)
Rent adjusts with CPI (Verbraucherpreisindex). Triggered when cumulative inflation exceeds threshold. Index-linked increases are outside the BGB cap — they follow their own contractual rules.
None
(standard BGB)
No contractual escalation. Rent can only be increased by landlord request per BGB §558. Fully subject to the 20%/3yr cap. Requires comparable rent evidence (Mietspiegel). 15-month minimum between increases.

The combined rent development formula in 2E row 39 sums all components:

Rent development = Base rent (AC41) + BGB increase (J42) + EE-Top-Up (J43) + Index/Staffel (J44)

Color formatting in the rent roll: Cells with colored backgrounds typically indicate override zones where investment managers have manually adjusted assumptions for specific units — e.g., accelerated churn, custom renovation timing, or rent-free periods.

Modernisierungsumlage & the Investment Manager Process

Modernisierungsumlage is the legal mechanism for passing renovation costs through to tenants. After energy-efficiency or other qualifying renovations:

  1. Landlord completes renovation (CAPEX in 2A rows 43-56)
  2. After completion (modeled at month 21 in 2E row 31), landlord can announce Umlage
  3. Max pass-through: 8% of allocated renovation cost per year (§559 BGB), adding ~€1.97/m²/month 2E row 43
  4. This is on top of normal BGB increases — it has its own cap

Investment manager decision process: The manager decides when and how much to increase, weighing: BGB headroom remaining (col AK), EE-Top-Up eligibility (post-renovation), tenant sensitivity, and market comparables. The sheet provides the maximum possible increase; the manager often applies less to manage tenant relations.

GRI, NRI, and Rent Aggregation

Definitions

TermFull NameMeaningWhere
GRIGross Rental IncomeTheoretical maximum income if 100% occupied at current rents. This deal: ~€898k p.a. at entry.2B
NRINet Rental IncomeActual rent collected after vacancy, rent loss, and letting fees. NRI = GRI minus leakage.2A row 19
NLANet Leasable AreaRentable floor space (m²), excluding common areas. This deal: 9,501 m².2E row 23
Blended NRIWeighted-average NRISingle €/m² figure combining resi, commercial, and parking — weighted by area. Used for quick benchmarking.2B
GDPGross Development ProfitTotal profit from the deal at exit = sale proceeds minus all-in cost (purchase + CAPEX + financing + fees).2A / 1A

Rent Roll → GRI: How Aggregation Works

Why a separate rent cohorts table? (Felix's question) — Because the Output Rent Roll (2E) has 1,300+ rows of unit-level data. Direct references from the CF Engine to individual units would be unmaintainable. GRI (2B) solves this by:

  1. Grouping units into 7 size cohorts (from 3A CRM)
  2. Computing weighted-average rents per cohort (weighted by m²)
  3. Running 4 rent-index scenarios (Lower, Mid, Upper, Mid-Upper) via the dropdown in 2B E3
  4. Producing a single monthly GRI row that the CF Engine can reference cleanly

So yes — the main purpose of GRI is weighted aggregation of unit-specific rent developments into a clean, auditable intermediate layer.

Averages vs. Rent Roll — how weighting works

"Rent development based on averages" uses the cohort-level weighted average (from GRI), while "rent development based on rent roll" traces back to unit-level projections in 2E. They should converge, but small discrepancies arise because:

  • Averages smooth out timing differences (one unit's BGB increase hits month 6, another's hits month 9)
  • Weighting is by m² (area), so a 100 m² unit has more influence than a 35 m² unit

The CF Engine 2A row 19 uses the GRI-aggregated figures (not individual unit rows), making GRI the authoritative rent source for everything downstream.

Cash Flow Engine

CF Engine Structure 2A

The CF Engine runs monthly (columns K onward, one per month for 48 months). Here's the waterfall:

€5.54M
NRI (48 months)
–€698k
Total OPEX
€4.84M
NOI
–€10.3M
Total CAPEX
RowLine ItemTotal (48m)Notes
19Rental Income (NRI)€5.54MFrom 2B GRI via SUMIF
24Non-Recs / Maintenance–€374k€8/m²/yr inflating
25Vacancy Cost–€41k€12/m²/yr on vacant units
26Standard Rent Loss–€55k1% of NRI — collection/bad-debt provision
27Development Rent Loss–€38k3% of NRI during active renovation period
28Letting Fees (Resi)–€99k2× monthly NRI per new lease
32VAT Damage–€81kNon-recoverable VAT on resi OPEX
34Total Opex Leakage–€698k12.6% of NRI
37NOI€4.84MNRI minus total OPEX
52EE-CAPEX–€6.99M€875/m² × 9,501 m²; months 4-18
53TI-CAPEX–€3.29M€712/m² × ~5,253 m² renovatable
What is "Rent Loss"? (Felix's question)

Two separate provisions:

  • Standard Rent Loss row 26 = 1% of NRI — covers tenants who pay late or default (Mietausfall)
  • Development Rent Loss row 27 = 3% of NRI — additional provision during active renovation, when construction disruption causes temporary rent reductions or concessions

These are not the same as vacancy (row 25), which covers structurally empty units.

CAPEX distribution timing

CAPEX doesn't hit all at once — it's phased across the hold period 2A rows 43-46:

  • EE-CAPEX: Months 4–18 (energy retrofit phase)
  • TI-CAPEX: Triggered by churn events (as units turn over)
  • General CAPEX: Months 4–18 (general maintenance)
  • Expansion CAPEX: Months 7–21 (building extensions/conversions)

P&L + Tax Engine

P&L Waterfall 2C

The P&L cascades from NOI down to net income after tax. Key rows:

RowLevelDeductions at this level
19NOI(from 2A CF Engine)
22→ less VAT loss on TI-CAPEXNon-recoverable VAT on renovation
25→ less VAT loss on Partner fees
28FFO (Funds from Operations)NOI minus interior CAPEX, VAT, partner fees
38EBITDAFFO minus acquisition & asset-management fees
40DepreciationStandard 2% p.a. on building value (Gebäude-AfA)
42EBITEBITDA minus depreciation
44Bank debt interestSenior loan interest expense
46GrantsSubsidy income (positive — from 2H Subsidies)
49EBTEBIT minus interest plus grants
52–55Corporate tax + Trade tax~15% KSt + ~15% GewSt ≈ 30% total
57Net IncomeAfter all taxes

Shareholder Loan Mechanics 2C rows 59-73

A key tax-optimization feature: 90% of equity is structured as a shareholder loan (SHL) rather than pure equity.

  • Row 66: Drawdown = 90% of total equity
  • Row 69: SHL Interest = 9% p.a. — this is tax-deductible, reducing the corporate tax base
  • Row 71: Repayment = Month 48 (at exit)

The SHL effectively converts equity returns into interest income, which can be more tax-efficient for certain investor structures.

Promote & IRR Waterfall

What is "Promote"?

Promote (also called "carried interest" or "carry") is the GP's (General Partner / fund manager) performance fee. It's a share of profits that increases as returns exceed certain thresholds (hurdles). Think of it as: "the better the deal does, the more the manager earns."

Three-Tier Waterfall 2D

TierIRR HurdleInvestorRENEO (GP)
Below Hurdle 1< 11%100%0%
Hurdle 1 → 211% – 15%89%11%
Hurdle 2 → 315% – 20%80%20%
Above Hurdle 3> 20%75%25%

The output is the Levered IRR (post-tax, post-promote) — the investor's true net return after all fees, taxes, and GP share.

Subsidy Programs

Program Comparison 2H

ProgramTypeThis DealKey Feature
KfW
Kreditanstalt für Wiederaufbau
Federal €4.0M
(repayment subsidy + WPB bonus)
Main driver. Provides a low-interest loan (max €132,414/unit) with a repayment subsidy (€14,911/unit) and a WPB bonus (€9,941/unit). The loan itself reduces the need for bank debt.
IfB
Investitionsbank Hamburg
State (Hamburg) €3.97M Per-m² subsidy (€470/m² for IFB55 standard). Includes bonus for brick facades / monument protection (€110/m²). Hamburg-specific.
BAFA
Bundesamt für Wirtschaft
Federal Energy-audit and individual-measure grants. Typically combined with KfW, not standalone. Not the main driver in this deal.
DUS
Düsseldorf state program
Municipal €0 Only applies if city = "Düsseldorf." This deal is Hamburg, so DUS is zeroed out.
€7.16M
Total Subsidies
€19.2M
Max KfW Loan
~50%
EE-CAPEX Offset
Are subsidy programs combined?

Yes — KfW and IfB stack. In this deal, KfW provides €4.0M and IfB provides €3.97M = €7.16M total. However, there's a 60% eligible-spend cap 2H row 17: total subsidies cannot exceed 60% of qualifying CAPEX. The model enforces this with a MIN() formula.

What are "Cash Traps"? (FKG-related)

A cash trap occurs when subsidy conditions restrict cash distributions to investors. Some subsidy programs (particularly Hamburg's IfB/FKG programs) require:

  • Maintaining certain rent levels below market for a defined period
  • Restricting dividend payments until subsidy conditions are met
  • The timing lag between CAPEX spend and subsidy receipt creates a cash-flow gap where equity is "trapped"

In the model, this manifests as a period where cash flow is positive but cannot be distributed — it must be reinvested or held as reserve. The FKG (Förderung klimagerechter Gebäudesanierung) programs are particularly strict about this.

Sensitivity Analysis

Three 2D Matrices 2G

The sensitivity sheet produces three scenario grids, each showing IRR% / equity multiple for every combination:

MatrixX-AxisY-AxisExample Output
1Exit month (54–58)Exit multiple (22.5–24.5×)"16.8% / 1.89×"
2Target rent resi (€/m²)Target rent expansionIRR / multiple at various rent combos
3CAPEX EE (€/m²)CAPEX ExtensionIRR / multiple at various cost levels

Each matrix lets investment managers see how returns shift across the most impactful levers — confirming which inputs have the highest IRR sensitivity.

End-to-End Walk-through

Hamburg Bismarckstraße — Full Deal Flow

Step 1 — CRM Inputs

3A CRM_INPUT provides 7 market-rent cohorts (€5.69–€11.49/m²) for Hamburg. These set the target-rent ceiling.

Step 2 — Rent Roll Entry

2F Input Rent Roll — 145 resi units + 14 commercial + 56 parking are entered. Current resi rent: €7.24/m². Key fields: area (J), net cold rent (N), BGB headroom (AK), lease type (AQ).

Step 3 — Rent Projection

2E Output Rent Roll projects each unit's rent monthly for 48 months. BGB increases at months 6 and 42. EE-Top-Up kicks in at month 21 (~€1.97/m²). Churn releases 383 m² of commercial space for re-letting at higher rents.

Step 4 — Rent Aggregation

2B GRI aggregates all units into cohort-level GRI (~€898k/yr at entry). The selected rent-index scenario (E3 dropdown) determines which market-rent band is used for target pricing.

Step 5 — Subsidies

2H Subsidies models KfW (€4.0M) + IfB (€3.97M) = €7.16M in grants. Max KfW loan: €19.2M. Subject to 60% eligible-spend cap.

Step 6 — Cash Flow

2A CF Engine builds the 48-month cash flow: NRI €5.54M – OPEX €698k = NOI €4.84M. CAPEX: EE €6.99M + TI €3.29M spread across months 4-21. Net CF after subsidies and debt service flows to P&L.

Step 7 — Tax & P&L

2C P&L + Tax deducts depreciation (2% p.a.), interest, and applies ~30% combined tax rate. The SHL structure (9% on 90% of equity) optimizes the tax position.

Step 8 — Returns

2D Promote & IRR runs the 3-tier waterfall. Below 11% IRR = 100% to investor. 11–15% = 89/11 split. 15–20% = 80/20. Above 20% = 75/25. Output: levered post-tax post-promote IRR.

Step 9 — IC Output

1A Invest. Memo + 1B IC Charts pull everything together. Acquisition: €22.5M asking / €20.8M expected (€2,192/m²). Going-in multiple: 23.2× NRI. Charts visualize the return profile for the Investment Committee.

Detailed Data-Flow Map

Hover over any connection arrow to see exactly what data moves between sheets. Click a sheet node to highlight all its connections.

Rent / lease data
Aggregated income
Cash flow / NOI
Subsidy / CAPEX
Returns / tax
Output / reference
INPUT CALC CALC OUTPUT 3A CRM INPUT 7 rent cohorts by m² lower / mid / upper 2F Input Rent Roll 215 units: area, NK-rent, BGB% lease type, start/end dates 2H Subsidies KfW · IfB · BAFA · DUS €7.16M grants + €19.2M loan 2E Output Rent Roll Monthly rent / unit × 180 months BGB · Staffel · Index · EE-Top-Up 2B GRI Rent aggregation 4 index scenarios 2G Sensitivity 3 × 2D matrices exit · rent · CAPEX 2A CF ENGINE 180-month cash flow waterfall NRI · OPEX · CAPEX · Debt service 2C P&L + Tax NOI → FFO → EBITDA → EBT AfA · KSt · GewSt · SHL 2D Promote & IRR 3-hurdle waterfall 11% · 15% · 20% IRR 1A INVEST. MEMO + 1B IC CHARTS IC-ready summary · acquisition metrics IRR · CoC · GRI yield · sensitivity tables rent tiers mkt benchmarks unit leases rent proj. monthly NRI churn events €7.16M grants + KfW loan NOI + P&L lines levered CF post-tax base CF IRR · MoC yields · CAPEX scenarios P&L summary

Reading the diagram

Each arrow is a real cross-sheet reference in D2G v5.5.0. Solid lines are direct cell references; dashed lines are parameter-driven (script or dropdown). Click any sheet node to highlight only its connections. Hover an arrow to see the exact data, row references, and why it flows that way.

Glossary

TermExplanation
GRIGross Rental Income — theoretical max rent at 100% occupancy
NRINet Rental Income — actual rent after vacancy and losses
NLANet Leasable Area — rentable m² excluding common areas
P&LProfit & Loss statement — income minus all expenses and taxes
PromoteGP's performance fee — escalating share of profits above IRR hurdles
IRRInternal Rate of Return — annualized return accounting for cash-flow timing
NOINet Operating Income — NRI minus operating expenses (before CAPEX and debt)
FFOFunds From Operations — cash earnings before depreciation and financing
EBITDAEarnings Before Interest, Tax, Depreciation & Amortization
CoCCash-on-Cash yield — annual cash distributions ÷ invested equity
LTVLoan-to-Value — senior debt ÷ asset value
EKEigenkapital (equity) — the investor's cash contribution
SHLShareholder Loan — equity structured as a loan for tax efficiency (9% interest)
BGB §558German Civil Code rent-increase rule: max 20% over 3 years (15% in tight markets)
§559 BGBModernization surcharge: max 8% of renovation cost p.a. passed to tenants
StaffelmieteStepped rent — fixed annual increases written into the lease
IndexmieteIndex-linked rent — tied to CPI (Verbraucherpreisindex)
VPIVerbraucherpreisindex — German Consumer Price Index
ModernisierungsumlageRenovation cost pass-through to tenants under §559 BGB
MietspiegelLocal rent index — official benchmark for comparable rents (required for BGB increases)
Nebenkosten (NK)Service charges / operating costs passed to tenants
AfAAbsetzung für Abnutzung — tax depreciation (typically 2% p.a. for buildings)
KStKörperschaftsteuer — German corporate income tax (~15%)
GewStGewerbesteuer — German trade tax (~15%, varies by municipality)
KfWKreditanstalt für Wiederaufbau — federal development bank providing subsidized loans
IfBInvestitionsbank Hamburg — Hamburg's state investment bank
VAT DamageNon-recoverable 19% VAT on CAPEX/OPEX for VAT-exempt (residential) units
ChurnTenant turnover — when a unit becomes vacant and must be re-let
TITenant Improvements — renovation costs for a unit at turnover
EE-CAPEXEnergy-Efficiency capital expenditure (insulation, heating, windows)
Cash TrapPeriod when cash is generated but cannot be distributed due to subsidy conditions