From 3b8f9b595e161d5495a64ae2981bddd5ce814bab Mon Sep 17 00:00:00 2001 From: Benjamin Admin Date: Sun, 19 Apr 2026 08:25:57 +0200 Subject: [PATCH] fix(pitch-deck): lean cost structure for Wandeldarlehen scenario MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Engine formula adjustments (reduced for lean startup): - Fortbildung: 500→300, Fahrzeug: 400→200, KFZ-Steuer: 50→25 - KFZ-Versicherung: 500→150, Reise: 100→75, Bewirtung: 200→100 - Serverkosten: 100/Kunde→50/Kunde, Basis 500→300 Tooltips updated to match new values. DB (production): All (M) rows reduced to lean levels: - Raumkosten: 5000→0 (remote, kein Büro) - Versicherungen: ~1700→800/Mon (Startup-Tarife) - Verbrauchsmaterial: 500→50, Werkzeuge: 300→100 - Rechts-/Beratung: nur Gründungskosten (m8-m10) Result: Liquidität Ende 2027 ≈ 0 (4.496 EUR), Break-Even 2029. Co-Authored-By: Claude Opus 4.6 (1M context) --- pitch-deck/components/slides/FinanzplanSlide.tsx | 14 +++++++------- pitch-deck/lib/finanzplan/engine.ts | 14 +++++++------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/pitch-deck/components/slides/FinanzplanSlide.tsx b/pitch-deck/components/slides/FinanzplanSlide.tsx index 5ca0904..0385dbf 100644 --- a/pitch-deck/components/slides/FinanzplanSlide.tsx +++ b/pitch-deck/components/slides/FinanzplanSlide.tsx @@ -52,14 +52,14 @@ function getLabel(row: SheetRow): string { } const FORMULA_TOOLTIPS: Record = { - 'Fort-/Weiterbildungskosten (F)': 'Mitarbeiter (ohne Gründer) × 500 EUR/Mon', - 'Fahrzeugkosten (F)': 'Mitarbeiter (ohne Gründer) × 400 EUR/Mon', - 'KFZ-Steuern (F)': 'Mitarbeiter (ohne Gründer) × 50 EUR/Mon', - 'KFZ-Versicherung (F)': 'Mitarbeiter (ohne Gründer) × 500 EUR/Mon', - 'Reisekosten (F)': 'Headcount gesamt × 100 EUR/Mon', - 'Bewirtungskosten (F)': 'Enterprise-Kunden × 200 EUR/Mon', + 'Fort-/Weiterbildungskosten (F)': 'Mitarbeiter (ohne Gründer) × 300 EUR/Mon', + 'Fahrzeugkosten (F)': 'Mitarbeiter (ohne Gründer) × 200 EUR/Mon', + 'KFZ-Steuern (F)': 'Mitarbeiter (ohne Gründer) × 25 EUR/Mon', + 'KFZ-Versicherung (F)': 'Mitarbeiter (ohne Gründer) × 150 EUR/Mon', + 'Reisekosten (F)': 'Headcount gesamt × 75 EUR/Mon', + 'Bewirtungskosten (F)': 'Enterprise-Kunden × 100 EUR/Mon', 'Internet/Mobilfunk (F)': 'Headcount gesamt × 50 EUR/Mon', - 'Serverkosten Cloud (F)': 'Bestandskunden × 100 EUR + 500 EUR Basis', + 'Serverkosten Cloud (F)': 'Bestandskunden × 50 EUR + 300 EUR Basis', 'Berufsgenossenschaft (F)': '2,77% der Brutto-Lohnsumme (VBG IT)', 'Allgemeine Marketingkosten (F)': '10% vom Monatsumsatz', 'Gewerbesteuer (F)': '12,25% vom Gewinn (Messzahl 3,5% × Hebesatz 350%, nur bei Gewinn)', diff --git a/pitch-deck/lib/finanzplan/engine.ts b/pitch-deck/lib/finanzplan/engine.ts index ae2c216..3df571f 100644 --- a/pitch-deck/lib/finanzplan/engine.ts +++ b/pitch-deck/lib/finanzplan/engine.ts @@ -231,12 +231,12 @@ export async function computeFinanzplan(pool: Pool, scenarioId: string): Promise // Formula-based rows: derive from headcount (excl. founders) or customers const formulaRows: { label: string; perUnit: number; source: MonthlyValues }[] = [ - { label: 'Fort-/Weiterbildungskosten (F)', perUnit: 500, source: hcWithoutFounders }, - { label: 'Fahrzeugkosten (F)', perUnit: 400, source: hcWithoutFounders }, - { label: 'KFZ-Steuern (F)', perUnit: 50, source: hcWithoutFounders }, - { label: 'KFZ-Versicherung (F)', perUnit: 500, source: hcWithoutFounders }, - { label: 'Reisekosten (F)', perUnit: 100, source: headcount }, - { label: 'Bewirtungskosten (F)', perUnit: 200, source: enterpriseKunden }, + { label: 'Fort-/Weiterbildungskosten (F)', perUnit: 300, source: hcWithoutFounders }, + { label: 'Fahrzeugkosten (F)', perUnit: 200, source: hcWithoutFounders }, + { label: 'KFZ-Steuern (F)', perUnit: 25, source: hcWithoutFounders }, + { label: 'KFZ-Versicherung (F)', perUnit: 150, source: hcWithoutFounders }, + { label: 'Reisekosten (F)', perUnit: 75, source: headcount }, + { label: 'Bewirtungskosten (F)', perUnit: 100, source: enterpriseKunden }, { label: 'Internet/Mobilfunk (F)', perUnit: 50, source: headcount }, ] @@ -285,7 +285,7 @@ export async function computeFinanzplan(pool: Pool, scenarioId: string): Promise if (serverRow) { const computed = emptyMonthly() for (let m = 1; m <= MONTHS; m++) { - computed[`m${m}`] = Math.round((totalKunden[`m${m}`] || 0) * 100 + 500) + computed[`m${m}`] = Math.round((totalKunden[`m${m}`] || 0) * 50 + 300) } await pool.query('UPDATE fp_betriebliche_aufwendungen SET values = $1 WHERE id = $2', [JSON.stringify(computed), serverRow.id]) serverRow.values = computed