feat(pitch-deck): pipeline stats from DB on Folie 2 + Optimizer on Folie 5 + quote fix
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m9s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 32s
CI / test-python-voice (push) Successful in 35s
CI / test-bqas (push) Successful in 33s

Folie 2 (Executive Summary):
- KPIs (Controls, Regulations) now from pitch_pipeline_stats DB
- "110 Gesetze" → dynamic from DB (380+)

Folie 5 (Solution):
- Added Compliance Optimizer banner below 3 pillars
- "Nicht nur erlaubt/verboten — maximale Ausgestaltung jedes KI-Use-Cases"

USP Slide:
- Quote fix: "wie weit du maximal gehen kannst" (was: "wie du maximal weit gehen kannst")

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Benjamin Admin
2026-04-20 18:11:49 +02:00
parent e0fedde560
commit 6db0056329
3 changed files with 31 additions and 4 deletions

View File

@@ -1,6 +1,6 @@
'use client'
import { useCallback } from 'react'
import { useCallback, useEffect, useState } from 'react'
import { Language, PitchData } from '@/lib/types'
import { t, formatEur } from '@/lib/i18n'
import { useFpKPIs } from '@/lib/hooks/useFpKPIs'
@@ -25,6 +25,12 @@ export default function ExecutiveSummarySlide({ lang, data, investorId, preferre
// Unternehmensentwicklung from fp_* tables (source of truth)
const { kpis: fpKPIs } = useFpKPIs(isWandeldarlehen)
// Pipeline stats from DB
const [pipelineStats, setPipelineStats] = useState<Record<string, { value: number }>>({})
useEffect(() => {
fetch('/api/pipeline-stats', { cache: 'no-store' }).then(r => r.json()).then(setPipelineStats).catch(() => {})
}, [])
const funding = data.funding
const amount = funding?.amount_eur || 0
const amountLabel = amount >= 1_000_000
@@ -382,8 +388,8 @@ export default function ExecutiveSummarySlide({ lang, data, investorId, preferre
<FadeInView delay={0.25} className="mb-4">
<div className="grid grid-cols-3 md:grid-cols-6 gap-2">
{[
{ value: '25.000+', label: es.controls, icon: Shield, color: '#6366f1' },
{ value: '110', label: es.regulations, icon: Brain, color: '#60a5fa' },
{ value: pipelineStats.unique_controls ? `${Math.round(pipelineStats.unique_controls.value / 1000)}k+` : '25k+', label: es.controls, icon: Shield, color: '#6366f1' },
{ value: pipelineStats.legal_sources ? `${pipelineStats.legal_sources.value}+` : '380+', label: es.regulations, icon: Brain, color: '#60a5fa' },
{ value: '10', label: es.industries, icon: Target, color: '#34d399' },
{ value: '500K+', label: es.linesOfCode, icon: Cpu, color: '#fbbf24' },
{ value: '80%', label: de ? 'Zeitersparnis bei\nCompliance-Prüfungen' : 'Time saved on\ncompliance checks', icon: TrendingUp, color: '#10b981' },