feat(pitch-deck): Pricing slide, GuV hierarchy, Problem/Solution cards, engine fixes
Some checks failed
Build pitch-deck / build-push-deploy (push) Successful in 1m52s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-python-voice (push) Has been cancelled
CI / test-bqas (push) Has been cancelled
CI / test-go-consent (push) Has been cancelled
Some checks failed
Build pitch-deck / build-push-deploy (push) Successful in 1m52s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-python-voice (push) Has been cancelled
CI / test-bqas (push) Has been cancelled
CI / test-go-consent (push) Has been cancelled
- BusinessModel → Pricing: remove Unit Economics, fullwidth tiers - GuV: major sums (EBIT, Rohergebnis, Jahresüberschuss) larger font + border - Engine: compute Rohergebnis, dynamic financing row matching - Problem slide: amber/orange "Die Konsequenz" card - Solution slide: larger Compliance Optimizer card - DB patch: Stammkapital, 2. Finanzierungsrunde 500k, GuV sort order Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -513,10 +513,18 @@ export async function computeFinanzplan(pool: Pool, scenarioId: string): Promise
|
||||
const sonstigeAnnual = annualSums(totalSonstige)
|
||||
|
||||
// Write GuV rows
|
||||
// Rohergebnis = Gesamtleistung - Materialaufwand
|
||||
const rohergebnis: AnnualValues = {}
|
||||
for (let y = 2026; y <= 2030; y++) {
|
||||
const k = `y${y}`
|
||||
rohergebnis[k] = Math.round((umsatzAnnual[k] || 0) - (materialAnnual[k] || 0))
|
||||
}
|
||||
|
||||
const guvUpdates: { label: string; values: AnnualValues }[] = [
|
||||
{ label: 'Umsatzerlöse', values: umsatzAnnual },
|
||||
{ label: 'Gesamtleistung', values: umsatzAnnual },
|
||||
{ label: 'Summe Materialaufwand', values: materialAnnual },
|
||||
{ label: 'Rohergebnis', values: rohergebnis },
|
||||
{ label: 'Löhne und Gehälter', values: personalBruttoAnnual },
|
||||
{ label: 'Soziale Abgaben', values: personalSozialAnnual },
|
||||
{ label: 'Summe Personalaufwand', values: personalAnnual },
|
||||
|
||||
@@ -18,7 +18,7 @@ const translations = {
|
||||
'Modularer Baukasten',
|
||||
'So funktioniert\'s',
|
||||
'Markt',
|
||||
'Geschäftsmodell',
|
||||
'Pricing',
|
||||
'Meilensteine',
|
||||
'Wettbewerb',
|
||||
'Team',
|
||||
@@ -188,8 +188,8 @@ const translations = {
|
||||
growth: 'Wachstum p.a.',
|
||||
},
|
||||
businessModel: {
|
||||
title: 'Geschäftsmodell',
|
||||
subtitle: 'Modulares SaaS mit Savings-Argument',
|
||||
title: 'Pricing',
|
||||
subtitle: 'Mitarbeiterbasiertes SaaS — Kunden sparen mehr als sie zahlen',
|
||||
unitEconomics: 'Unit Economics',
|
||||
amortization: 'Amortisation',
|
||||
margin: 'Marge',
|
||||
@@ -314,7 +314,7 @@ const translations = {
|
||||
'Modular Toolkit',
|
||||
'How It Works',
|
||||
'Market',
|
||||
'Business Model',
|
||||
'Pricing',
|
||||
'Milestones',
|
||||
'Competition',
|
||||
'Team',
|
||||
@@ -484,8 +484,8 @@ const translations = {
|
||||
growth: 'Growth p.a.',
|
||||
},
|
||||
businessModel: {
|
||||
title: 'Business Model',
|
||||
subtitle: 'Modular SaaS with Savings Argument',
|
||||
title: 'Pricing',
|
||||
subtitle: 'Employee-based SaaS — customers save more than they pay',
|
||||
unitEconomics: 'Unit Economics',
|
||||
amortization: 'Amortization',
|
||||
margin: 'Margin',
|
||||
|
||||
Reference in New Issue
Block a user