Files
padelnomics/web/src/padelnomics/templates/businessplan/plan.html
Deeman 5d0e52ade7 feat(score): methodology page, i18n, and business plan (Phase D)
- Rename /market-score → /padelnomics-score with 301 redirect
- Rewrite methodology page as single Padelnomics Score (pnscore_* keys)
- Replace all mscore_* i18n keys with pnscore_* in both EN and DE
- Business plan: query opportunity_score from location_profiles
- Footer link updated to padelnomics-score route

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 12:18:47 +01:00

677 lines
30 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="{{ s.lang }}">
<head>
<meta charset="utf-8">
<style>{{ css }}</style>
</head>
<body>
{# Named strings for running headers #}
<span class="doc-company-anchor">{% if s.narrative.company_name %}{{ s.narrative.company_name }}{% else %}Padelnomics{% endif %}</span>
<span class="doc-confidential-anchor">{{ s.labels.confidential }}</span>
{# ============================================================ #}
{# COVER PAGE #}
{# ============================================================ #}
<div class="cover">
<div class="cover__sidebar">
<div>
<div class="cover__logo">Padel<span class="cover__logo-dot">.</span></div>
<div class="cover__tagline">Business Plan</div>
</div>
<div class="cover__sidebar-footer">
Generated by Padelnomics<br>
<a href="https://padelnomics.io">padelnomics.io</a>
</div>
</div>
<div class="cover__main">
<div>
<div class="cover__type-label">{{ s.labels.confidential }} — Business Plan</div>
<div class="cover__title">
{% if s.narrative.company_name %}{{ s.narrative.company_name }}{% else %}{{ s.scenario_name or s.title }}{% endif %}
</div>
<div class="cover__subtitle">{{ s.subtitle }}</div>
{% if s.location %}<div class="cover__subtitle">{{ s.location }}</div>{% endif %}
<div class="cover__divider"></div>
<div class="cover__meta">
<div class="cover__meta-item">
<div class="cover__meta-label">{{ s.labels.scenario }}</div>
<div class="cover__meta-value">{{ s.scenario_name or "—" }}</div>
</div>
{% if s.narrative.legal_entity %}
<div class="cover__meta-item">
<div class="cover__meta-label">Rechtsform</div>
<div class="cover__meta-value">{{ s.narrative.legal_entity }}</div>
</div>
{% endif %}
{% if s.narrative.founder_name %}
<div class="cover__meta-item">
<div class="cover__meta-label">{{ s.labels.founder_profile }}</div>
<div class="cover__meta-value">{{ s.narrative.founder_name }}</div>
</div>
{% endif %}
{% if s.narrative.planned_opening_date %}
<div class="cover__meta-item">
<div class="cover__meta-label">Planned Opening</div>
<div class="cover__meta-value">{{ s.narrative.planned_opening_date }}</div>
</div>
{% endif %}
<div class="cover__meta-item">
<div class="cover__meta-label">Courts</div>
<div class="cover__meta-value">{{ s.courts }}</div>
</div>
<div class="cover__meta-item">
<div class="cover__meta-label">{{ s.labels.total_investment }}</div>
<div class="cover__meta-value">{{ s.executive_summary.total_capex }}</div>
</div>
</div>
</div>
<div class="cover__footer-strip">
<span>{{ s.labels.generated_by }}</span>
<span>{{ s.labels.confidential }}</span>
</div>
</div>
</div>
{# ============================================================ #}
{# TABLE OF CONTENTS #}
{# ============================================================ #}
<div class="toc-page">
<div class="toc-heading">{{ s.labels.table_of_contents }}</div>
<ul class="toc-list">
<li class="toc-item toc-item--heading"><span class="toc-num">1</span><span class="toc-text">{{ s.executive_summary.heading }}</span></li>
{% if s.narrative.founder_background %}
<li class="toc-item"><span class="toc-num">2</span><span class="toc-text">{{ s.labels.founder_profile }}</span><span class="toc-dots"></span></li>
{% endif %}
<li class="toc-item"><span class="toc-num">3</span><span class="toc-text">{{ s.labels.venture_description }}</span><span class="toc-dots"></span></li>
{% if s.market_data %}
<li class="toc-item"><span class="toc-num">4</span><span class="toc-text">{{ s.labels.market_analysis }}</span><span class="toc-dots"></span><span class="toc-section-badge">Data</span></li>
{% endif %}
<li class="toc-item"><span class="toc-num">5</span><span class="toc-text">{{ s.investment.heading }}</span><span class="toc-dots"></span></li>
<li class="toc-item"><span class="toc-num">6</span><span class="toc-text">{{ s.use_of_funds.heading }}</span><span class="toc-dots"></span></li>
<li class="toc-item"><span class="toc-num">7</span><span class="toc-text">{{ s.opening_balance.heading }}</span><span class="toc-dots"></span></li>
<li class="toc-item"><span class="toc-num">8</span><span class="toc-text">{{ s.financing.heading }}</span><span class="toc-dots"></span></li>
<li class="toc-item"><span class="toc-num">9</span><span class="toc-text">{{ s.operations.heading }}</span><span class="toc-dots"></span></li>
<li class="toc-item"><span class="toc-num">10</span><span class="toc-text">{{ s.revenue.heading }}</span><span class="toc-dots"></span></li>
<li class="toc-item"><span class="toc-num">11</span><span class="toc-text">{{ s.annuals.heading }}</span><span class="toc-dots"></span></li>
<li class="toc-item"><span class="toc-num">12</span><span class="toc-text">{{ s.cashflow_12m.heading }}</span><span class="toc-dots"></span></li>
<li class="toc-item"><span class="toc-num">13</span><span class="toc-text">{{ s.metrics.heading }}</span><span class="toc-dots"></span></li>
<li class="toc-item"><span class="toc-num">14</span><span class="toc-text">{{ s.sensitivity.heading }}</span><span class="toc-dots"></span><span class="toc-section-badge">Bank</span></li>
{% if s.narrative.marketing_concept %}
<li class="toc-item"><span class="toc-num">15</span><span class="toc-text">{{ s.labels.market_analysis }} / Marketing</span><span class="toc-dots"></span></li>
{% endif %}
<li class="toc-item"><span class="toc-num">16</span><span class="toc-text">{{ s.labels.risk_analysis }}</span><span class="toc-dots"></span></li>
</ul>
</div>
{# ============================================================ #}
{# 1. EXECUTIVE SUMMARY #}
{# ============================================================ #}
<div class="section section--break">
<h2>1 &nbsp; {{ s.executive_summary.heading }}</h2>
<div class="exec-grid">
<div class="exec-card">
<div class="exec-label">{{ s.labels.total_investment }}</div>
<div class="exec-value">{{ s.executive_summary.total_capex }}</div>
</div>
<div class="exec-card">
<div class="exec-label">{{ s.labels.equity_required }}</div>
<div class="exec-value">{{ s.executive_summary.equity }}</div>
</div>
<div class="exec-card">
<div class="exec-label">{{ s.labels.year1_revenue }}</div>
<div class="exec-value">{{ s.executive_summary.y1_revenue }}</div>
</div>
<div class="exec-card exec-card--accent">
<div class="exec-label">{{ s.labels.year3_ebitda }}</div>
<div class="exec-value exec-value--gold">{{ s.executive_summary.y3_ebitda }}</div>
</div>
<div class="exec-card exec-card--accent">
<div class="exec-label">{{ s.labels.irr }}</div>
<div class="exec-value exec-value--gold">{{ s.executive_summary.irr }}</div>
</div>
<div class="exec-card">
<div class="exec-label">{{ s.labels.payback_period }}</div>
<div class="exec-value">{{ s.executive_summary.payback }}</div>
</div>
</div>
<p class="exec-paragraph">{{ s.labels.exec_paragraph }}</p>
</div>
{# ============================================================ #}
{# 2. FOUNDER / MANAGEMENT PROFILE #}
{# ============================================================ #}
<div class="section section--break">
<h2>2 &nbsp; {{ s.labels.founder_profile }}</h2>
{% if s.narrative.founder_name %}
<p style="font-weight: 700; color: var(--navy); margin-bottom: 6pt; font-size: 10pt;">{{ s.narrative.founder_name }}{% if s.narrative.legal_entity %} &nbsp;&mdash;&nbsp; {{ s.narrative.legal_entity }}{% endif %}</p>
{% endif %}
{% if s.narrative.founder_background %}
<p class="narrative-block">{{ s.narrative.founder_background }}</p>
{% else %}
<p class="placeholder-block">
[Gründerprofil: Beschreiben Sie hier Ihren beruflichen Hintergrund, relevante Erfahrungen im Sportbereich oder in der Gastronomie, unternehmerische Vorkenntnisse und Ihr persönliches Netzwerk. Banken möchten verstehen, warum Sie die richtige Person für dieses Vorhaben sind.]
</p>
{% endif %}
</div>
{# ============================================================ #}
{# 3. BUSINESS DESCRIPTION / VENTURE #}
{# ============================================================ #}
<div class="section">
<h2>3 &nbsp; {{ s.labels.venture_description }}</h2>
{% if s.narrative.facility_description %}
<p class="narrative-block">{{ s.narrative.facility_description }}</p>
{% else %}
<p class="narrative-block">
Das geplante Vorhaben ist eine {{ s.executive_summary.facility_type }}-Padelhalle mit
{{ s.executive_summary.courts }} Courts auf einer Nutzfläche von ca. {{ s.executive_summary.sqm }} m².
Die Anlage richtet sich an Freizeitsportler, Unternehmenskunden und organisierte Vereinsspieler im lokalen Einzugsgebiet.
</p>
{% endif %}
{% if s.narrative.planned_location_address %}
<p style="font-size: 8.5pt; color: var(--muted); margin-bottom: 8pt;">
<strong>Geplanter Standort:</strong> {{ s.narrative.planned_location_address }}
{% if s.narrative.planned_opening_date %} &nbsp;&mdash;&nbsp; Eröffnung: {{ s.narrative.planned_opening_date }}{% endif %}
</p>
{% endif %}
</div>
{# ============================================================ #}
{# 4. MARKET ANALYSIS (auto from DuckDB when available) #}
{# ============================================================ #}
<div class="section">
<h2>4 &nbsp; {{ s.labels.market_analysis }}</h2>
{% if s.market_data %}
<p style="font-size: 9pt; color: var(--text); margin-bottom: 10pt;">
<strong>{{ s.market_data.city_name }}{% if s.market_data.country %}, {{ s.market_data.country }}{% endif %}</strong>
&nbsp;&mdash;&nbsp;
Marktdaten aus dem Padelnomics Analytics-Datensatz (Playtomic-Buchungsdaten).
</p>
<div class="market-callout">
{% if s.market_data.padel_venue_count %}
<div class="market-stat">
<div class="market-stat-value">{{ s.market_data.padel_venue_count }}</div>
<div class="market-stat-label">Padel-Anlagen</div>
</div>
{% endif %}
{% if s.market_data.venues_per_100k %}
<div class="market-stat">
<div class="market-stat-value">{{ "%.1f"|format(s.market_data.venues_per_100k) }}</div>
<div class="market-stat-label">{{ s.labels.venues_per_100k }}</div>
</div>
{% endif %}
{% if s.market_data.median_occupancy_rate %}
<div class="market-stat">
<div class="market-stat-value">{{ "%.0f"|format(s.market_data.median_occupancy_rate * 100) }}%</div>
<div class="market-stat-label">{{ s.labels.median_occupancy }}</div>
</div>
{% endif %}
{% if s.market_data.median_peak_rate %}
<div class="market-stat">
<div class="market-stat-value">{{ s.labels.currency_sym }}{{ "%.0f"|format(s.market_data.median_peak_rate) }}</div>
<div class="market-stat-label">{{ s.labels.median_peak_rate }}</div>
</div>
{% endif %}
{% if s.market_data.median_offpeak_rate %}
<div class="market-stat">
<div class="market-stat-value">{{ s.labels.currency_sym }}{{ "%.0f"|format(s.market_data.median_offpeak_rate) }}</div>
<div class="market-stat-label">{{ s.labels.median_offpeak_rate }}</div>
</div>
{% endif %}
{% if s.market_data.opportunity_score %}
<div class="market-stat">
<div class="market-stat-value">{{ "%.0f"|format(s.market_data.opportunity_score) }}/100</div>
<div class="market-stat-label">{{ s.labels.padelnomics_score }}</div>
</div>
{% endif %}
</div>
{% else %}
<p class="placeholder-block">
[Marktanalyse: Beschreiben Sie die Nachfragesituation im Einzugsgebiet: Anzahl aktiver Padelspieler, bestehende Anlagen und deren Auslastung, Wettbewerbsumfeld, demographische Zielgruppe. Sofern eine Playtomic-Auswertung für Ihren Standort vorliegt, fügen Sie die Daten hier ein.]
</p>
{% endif %}
</div>
{# ============================================================ #}
{# 5. INVESTMENT PLAN (CAPEX) #}
{# ============================================================ #}
<div class="section section--break">
<h2>5 &nbsp; {{ s.investment.heading }}</h2>
<table>
<thead>
<tr>
<th>{{ s.labels.item }}</th>
<th class="r">{{ s.labels.amount }}</th>
<th>{{ s.labels.notes }}</th>
</tr>
</thead>
<tbody>
{% for item in s.investment['items'] %}
<tr>
<td>{{ item.name }}</td>
<td class="r">{{ item.formatted_amount }}</td>
<td class="note-cell">{{ item.info }}</td>
</tr>
{% endfor %}
<tr class="total-row">
<td>{{ s.labels.total_capex }}</td>
<td class="r">{{ s.investment.total }}</td>
<td></td>
</tr>
</tbody>
</table>
<p style="font-size: 8pt; color: var(--muted);">{{ s.labels.capex_stats }}</p>
</div>
{# ============================================================ #}
{# 6. USE OF FUNDS (Mittelverwendungsplan) #}
{# ============================================================ #}
<div class="section">
<h2>6 &nbsp; {{ s.use_of_funds.heading }}</h2>
<table>
<thead>
<tr>
<th>{{ s.labels.item }}</th>
<th class="r">{{ s.labels.total }}</th>
<th class="r">{{ s.labels.funded_by_loan }}</th>
<th class="r">{{ s.labels.funded_by_equity }}</th>
</tr>
</thead>
<tbody>
{% for row in s.use_of_funds.rows %}
<tr>
<td>{{ row.item }}</td>
<td class="r">{{ row.total }}</td>
<td class="r">{{ row.from_loan }}</td>
<td class="r">{{ row.from_equity }}</td>
</tr>
{% endfor %}
<tr class="total-row">
<td>{{ s.labels.total }}</td>
<td class="r">{{ s.use_of_funds.total_capex }}</td>
<td class="r">{{ s.use_of_funds.total_loan }}</td>
<td class="r">{{ s.use_of_funds.total_equity }}</td>
</tr>
</tbody>
</table>
</div>
{# ============================================================ #}
{# 7. OPENING BALANCE SHEET (Eröffnungsbilanz) #}
{# ============================================================ #}
<div class="section">
<h2>7 &nbsp; {{ s.opening_balance.heading }}</h2>
<div class="balance-grid">
<div class="balance-side">
<div class="balance-side__header">{{ s.labels.assets }}</div>
<table>
<tbody>
<tr><td>{{ s.labels.fixed_assets }}</td><td class="r">{{ s.opening_balance.fixed_assets }}</td></tr>
<tr><td>{{ s.labels.working_capital }}</td><td class="r">{{ s.opening_balance.working_capital }}</td></tr>
<tr class="balance-total">
<td>{{ s.labels.total }}</td>
<td class="r">{{ s.opening_balance.total_assets }}</td>
</tr>
</tbody>
</table>
</div>
<div class="balance-side">
<div class="balance-side__header">{{ s.labels.liabilities_equity }}</div>
<table>
<tbody>
<tr><td>{{ s.labels.equity }}</td><td class="r">{{ s.opening_balance.equity }}</td></tr>
<tr><td>{{ s.labels.loan }}</td><td class="r">{{ s.opening_balance.loan }}</td></tr>
<tr class="balance-total">
<td>{{ s.labels.total }}</td>
<td class="r">{{ s.opening_balance.total_liabilities_equity }}</td>
</tr>
</tbody>
</table>
</div>
</div>
<p style="font-size: 8pt; color: var(--muted);">
{{ s.labels.equity_ratio }}: <strong>{{ s.opening_balance.equity_ratio }}</strong>
</p>
</div>
{# ============================================================ #}
{# 8. FINANCING STRUCTURE #}
{# ============================================================ #}
<div class="section section--break">
<h2>8 &nbsp; {{ s.financing.heading }}</h2>
<div class="fin-wrap">
<div class="fin-bar">
<div class="fin-bar__equity" style="width:{{ (100 - (s.financing.loan_pct | replace('%','') | float)) }}%">
<span class="fin-bar__label">{{ s.labels.equity }} {{ (100 - (s.financing.loan_pct | replace('%','') | float)) | round(0) | int }}%</span>
</div>
<div class="fin-bar__loan" style="width:{{ s.financing.loan_pct | replace('%','') }}%">
<span class="fin-bar__label">{{ s.labels.loan }} {{ s.financing.loan_pct }}</span>
</div>
</div>
<div class="fin-legend">
<div class="fin-legend-item">
<div class="fin-legend-dot" style="background: var(--navy);"></div>
<span>{{ s.labels.equity }}: {{ s.financing.equity }}</span>
</div>
<div class="fin-legend-item">
<div class="fin-legend-dot" style="background: var(--gold);"></div>
<span>{{ s.labels.loan }}: {{ s.financing.loan }}</span>
</div>
</div>
</div>
<table class="stat-table">
<tbody>
<tr><td>{{ s.labels.equity }}</td><td class="r">{{ s.financing.equity }}</td></tr>
<tr><td>{{ s.labels.loan }} ({{ s.financing.loan_pct }})</td><td class="r">{{ s.financing.loan }}</td></tr>
<tr><td>{{ s.labels.interest_rate }}</td><td class="r">{{ s.financing.interest_rate }}</td></tr>
<tr><td>{{ s.labels.loan_term }}</td><td class="r">{{ s.financing.term }}</td></tr>
<tr><td>{{ s.labels.monthly_payment }}</td><td class="r">{{ s.financing.monthly_payment }}</td></tr>
<tr><td>{{ s.labels.annual_debt_service }}</td><td class="r">{{ s.financing.annual_debt_service }}</td></tr>
<tr><td>{{ s.labels.ltv }}</td><td class="r">{{ s.financing.ltv }}</td></tr>
</tbody>
</table>
</div>
{# ============================================================ #}
{# 9. OPERATING COSTS (OPEX) #}
{# ============================================================ #}
<div class="section">
<h2>9 &nbsp; {{ s.operations.heading }}</h2>
<table>
<thead>
<tr>
<th>{{ s.labels.item }}</th>
<th class="r">{{ s.labels.monthly }}</th>
<th>{{ s.labels.notes }}</th>
</tr>
</thead>
<tbody>
{% for item in s.operations['items'] %}
<tr>
<td>{{ item.name }}</td>
<td class="r">{{ item.formatted_amount }}</td>
<td class="note-cell">{{ item.info }}</td>
</tr>
{% endfor %}
<tr class="total-row">
<td>{{ s.labels.total_monthly_opex }}</td>
<td class="r">{{ s.operations.monthly_total }}</td>
<td></td>
</tr>
</tbody>
</table>
<p style="font-size: 8pt; color: var(--muted);">{{ s.labels.annual_opex }}: <strong>{{ s.operations.annual_total }}</strong></p>
{% if s.narrative.operations_concept %}
<h3>Betriebskonzept</h3>
<p class="narrative-block" style="font-size: 8.5pt;">{{ s.narrative.operations_concept }}</p>
{% endif %}
{% if s.narrative.staffing_plan %}
<h3>Personalplanung</h3>
<p class="narrative-block" style="font-size: 8.5pt;">{{ s.narrative.staffing_plan }}</p>
{% endif %}
</div>
{# ============================================================ #}
{# 10. REVENUE MODEL #}
{# ============================================================ #}
<div class="section">
<h2>10 &nbsp; {{ s.revenue.heading }}</h2>
<table class="stat-table">
<tbody>
<tr><td>{{ s.labels.weighted_hourly_rate }}</td><td class="r">{{ s.revenue.weighted_rate }}</td></tr>
<tr><td>{{ s.labels.target_utilization }}</td><td class="r">{{ s.revenue.utilization }}</td></tr>
<tr><td>{{ s.labels.gross_monthly_revenue }}</td><td class="r">{{ s.revenue.gross_monthly }}</td></tr>
<tr><td>{{ s.labels.net_monthly_revenue }}</td><td class="r">{{ s.revenue.net_monthly }}</td></tr>
<tr><td>{{ s.labels.monthly_ebitda }}</td><td class="r">{{ s.revenue.ebitda_monthly }}</td></tr>
<tr><td>{{ s.labels.monthly_net_cf }}</td><td class="r">{{ s.revenue.net_cf_monthly }}</td></tr>
</tbody>
</table>
{% if s.narrative.marketing_concept %}
<h3>Marketingkonzept</h3>
<p class="narrative-block" style="font-size: 8.5pt;">{{ s.narrative.marketing_concept }}</p>
{% endif %}
</div>
{# ============================================================ #}
{# 11. 5-YEAR PROJECTION (P&L) + CHART #}
{# ============================================================ #}
<div class="section section--break">
<h2>11 &nbsp; {{ s.annuals.heading }}</h2>
{% if s.charts.pnl %}
<div class="chart-wrap">
{{ s.charts.pnl }}
<p class="chart-caption">Revenue, EBITDA and Net Cash Flow — 5-Year Projection</p>
</div>
{% endif %}
<table>
<thead>
<tr>
<th>{{ s.labels.year }}</th>
<th class="r">{{ s.labels.revenue }}</th>
<th class="r">{{ s.labels.ebitda }}</th>
<th class="r">{{ s.labels.debt_service }}</th>
<th class="r">{{ s.labels.net_cf }}</th>
</tr>
</thead>
<tbody>
{% for yr in s.annuals.years %}
<tr>
<td>{{ s.labels.year }} {{ yr.year }}</td>
<td class="r">{{ yr.revenue }}</td>
<td class="r positive-cell">{{ yr.ebitda }}</td>
<td class="r">{{ yr.debt_service }}</td>
<td class="r {% if yr.net_cf.startswith('-') %}negative-cell{% else %}positive-cell{% endif %}">{{ yr.net_cf }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
{# ============================================================ #}
{# 12. 12-MONTH CASH FLOW + CHART #}
{# ============================================================ #}
<div class="section section--break">
<h2>12 &nbsp; {{ s.cashflow_12m.heading }}</h2>
{% if s.charts.cashflow %}
<div class="chart-wrap">
{{ s.charts.cashflow }}
<p class="chart-caption">Monthly NCF and Cumulative Cash Position — Year 1</p>
</div>
{% endif %}
<table>
<thead>
<tr>
<th>{{ s.labels.month }}</th>
<th class="r">{{ s.labels.revenue }}</th>
<th class="r">{{ s.labels.opex }}</th>
<th class="r">{{ s.labels.ebitda }}</th>
<th class="r">{{ s.labels.debt }}</th>
<th class="r">{{ s.labels.net_cf }}</th>
<th class="r">{{ s.labels.cumulative }}</th>
</tr>
</thead>
<tbody>
{% for m in s.cashflow_12m.months %}
<tr>
<td>{{ m.month }}</td>
<td class="r">{{ m.revenue }}</td>
<td class="r">{{ m.opex }}</td>
<td class="r">{{ m.ebitda }}</td>
<td class="r">{{ m.debt }}</td>
<td class="r {% if m.ncf.startswith('-') %}negative-cell{% else %}positive-cell{% endif %}">{{ m.ncf }}</td>
<td class="r {% if m.cumulative.startswith('-') %}negative-cell{% else %}positive-cell{% endif %}">{{ m.cumulative }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
{# ============================================================ #}
{# 13. KEY METRICS #}
{# ============================================================ #}
<div class="section">
<h2>13 &nbsp; {{ s.metrics.heading }}</h2>
<div class="metrics-grid">
<div class="metric-box">
<div class="metric-label">{{ s.labels.irr }}</div>
<div class="metric-value" style="color: var(--gold);">{{ s.metrics.irr }}</div>
</div>
<div class="metric-box">
<div class="metric-label">{{ s.labels.moic }}</div>
<div class="metric-value">{{ s.metrics.moic }}</div>
</div>
<div class="metric-box">
<div class="metric-label">{{ s.labels.cash_on_cash }}</div>
<div class="metric-value">{{ s.metrics.cash_on_cash }}</div>
</div>
<div class="metric-box">
<div class="metric-label">{{ s.labels.payback }}</div>
<div class="metric-value">{{ s.metrics.payback }}</div>
</div>
<div class="metric-box">
<div class="metric-label">{{ s.labels.break_even_util }}</div>
<div class="metric-value">{{ s.metrics.break_even_util }}</div>
</div>
<div class="metric-box">
<div class="metric-label">{{ s.labels.ebitda_margin }}</div>
<div class="metric-value">{{ s.metrics.ebitda_margin }}</div>
</div>
<div class="metric-box">
<div class="metric-label">{{ s.labels.dscr_y3 }}</div>
<div class="metric-value" style="color: var(--green);">{{ s.metrics.dscr_y3 }}</div>
</div>
<div class="metric-box">
<div class="metric-label">{{ s.labels.yield_on_cost }}</div>
<div class="metric-value">{{ s.metrics.yield_on_cost }}</div>
</div>
</div>
</div>
{# ============================================================ #}
{# 14. SENSITIVITY ANALYSIS #}
{# ============================================================ #}
<div class="section section--break">
<h2>14 &nbsp; {{ s.sensitivity.heading }}</h2>
<h3>{{ s.sensitivity.util_heading }}</h3>
<table>
<thead>
<tr>
<th>{{ s.labels.utilization }}</th>
<th class="r">{{ s.labels.revenue }}</th>
<th class="r">{{ s.labels.monthly_ncf }}</th>
<th class="r">{{ s.labels.annual_ncf }}</th>
<th class="r">{{ s.labels.dscr }}</th>
</tr>
</thead>
<tbody>
{% for row in s.sensitivity.sens_rows %}
<tr {% if row.is_target %}class="highlight-row"{% endif %}>
<td>{{ row.util }}%{% if row.is_target %} ★{% endif %}</td>
<td class="r">{{ row.rev_fmt }}</td>
<td class="r {% if row.ncf < 0 %}negative-cell{% endif %}">{{ row.ncf_fmt }}</td>
<td class="r {% if row.annual < 0 %}negative-cell{% endif %}">{{ row.annual_fmt }}</td>
<td class="r {% if row.dscr < 1.2 %}negative-cell{% elif row.dscr > 1.5 %}positive-cell{% endif %}">{{ row.dscr_fmt }}</td>
</tr>
{% endfor %}
</tbody>
</table>
<p style="font-size: 7.5pt; color: var(--muted);">★ = target utilization &nbsp;|&nbsp; DSCR threshold: 1.20× (bank covenant)</p>
<h3>{{ s.sensitivity.price_heading }}</h3>
<table>
<thead>
<tr>
<th>{{ s.labels.price_delta }}</th>
<th class="r">{{ s.labels.hourly_rate }}</th>
<th class="r">{{ s.labels.revenue }}</th>
<th class="r">{{ s.labels.monthly_ncf }}</th>
</tr>
</thead>
<tbody>
{% for row in s.sensitivity.price_rows %}
<tr {% if row.is_base %}class="highlight-row"{% endif %}>
<td>{% if row.delta > 0 %}+{% endif %}{{ row.delta }}%{% if row.is_base %} (base){% endif %}</td>
<td class="r">{{ row.adj_rate_fmt }}</td>
<td class="r">{{ row.rev_fmt }}</td>
<td class="r {% if row.ncf < 0 %}negative-cell{% endif %}">{{ row.ncf_fmt }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
{# ============================================================ #}
{# 15. RISK ANALYSIS #}
{# ============================================================ #}
<div class="section section--break">
<h2>15 &nbsp; {{ s.labels.risk_analysis }}</h2>
<div class="risk-item">
<span class="risk-badge risk-badge--high">Hoch</span>
<div class="risk-text">
<strong>Anlaufphase / Cashflow-Risiko</strong>
Die ersten 612 Betriebsmonate laufen unter Zielbetrieb. Entschärfung: Betriebsmittelreserve eingeplant, tilgungsfreie Anlaufjahre in der Finanzierung, konservative Anlaufkurve im Modell abgebildet.
</div>
</div>
<div class="risk-item">
<span class="risk-badge risk-badge--high">Hoch</span>
<div class="risk-text">
<strong>Baukostenüberschreitung</strong>
Umbau- und Haustechnikkosten können bei Bestandshallen erheblich abweichen. Entschärfung: 1015 % Puffer im CAPEX-Plan, Festpreisverträge mit Generalunternehmer.
</div>
</div>
<div class="risk-item">
<span class="risk-badge risk-badge--medium">Mittel</span>
<div class="risk-text">
<strong>Wettbewerbsrisiko / Angebotsübersättigung</strong>
Schnell wachsender Markt mit erhöhter Neueröffnungsaktivität. Entschärfung: Standortwahl in unterversorgtem Marktgebiet, differenziertes Serviceangebot.
</div>
</div>
<div class="risk-item">
<span class="risk-badge risk-badge--medium">Mittel</span>
<div class="risk-text">
<strong>Zinsänderungsrisiko</strong>
Steigende Zinsen erhöhen den Kapitaldienst bei variabel verzinsten Darlehen. Entschärfung: Festzins-Option prüfen; Sensitivitätsanalyse zeigt Tragfähigkeit bis +150 Bp.
</div>
</div>
<div class="risk-item">
<span class="risk-badge risk-badge--medium">Mittel</span>
<div class="risk-text">
<strong>Schlüsselpersonenrisiko</strong>
Ausfall des Gründers / Hallenleiters würde Betrieb kurzfristig belasten. Entschärfung: frühzeitige Einbindung eines erfahrenen Betriebsleiters, Kranken-/Unfallversicherung.
</div>
</div>
<div class="risk-item">
<span class="risk-badge risk-badge--low">Niedrig</span>
<div class="risk-text">
<strong>Markttrend-Risiko</strong>
Padel ist ein wachsendes Segment, aber kein strukturell gesicherter Markt. Entschärfung: Break-even bei {{ s.metrics.break_even_util }} Auslastung — weit unter typischer Marktauslastung; flexible Hallenkonzeption.
</div>
</div>
<div class="risk-item">
<span class="risk-badge risk-badge--low">Niedrig</span>
<div class="risk-text">
<strong>Regulatorische Risiken</strong>
Baugenehmigung, Nutzungsänderung, Lärmschutzauflagen. Entschärfung: Vorab-Gespräch mit Bauordnungsamt, Lärmschutzgutachten bereits in Planung.
</div>
</div>
</div>
{# ============================================================ #}
{# DISCLAIMER #}
{# ============================================================ #}
<div class="disclaimer">
{{ s.labels.disclaimer }}
</div>
</body>
</html>