Commit Graph

352 Commits

Author SHA1 Message Date
Benjamin Admin
19214bfd66 fix(pitch-deck): remove Sonst. Erträge tab + add investments
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m7s
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 30s
CI / test-python-voice (push) Successful in 34s
CI / test-bqas (push) Successful in 33s
- Removed 'sonst_ertraege' from SHEET_LIST (empty, irrelevant for pre-seed)
- DB: Added Mac Studio (LLM Training) 13.000 EUR, Jan 2027, AfA 3 Jahre
- DB: Added Software-Lizenzen (GWG) 800 EUR/Jahr (2026-2030)
- DB: Added Domain/SSL/Zertifikate (GWG) 500 EUR at founding
- DB: Removed GPU-Server (wrong assumption — Mac Studio used instead)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-20 09:52:19 +02:00
Benjamin Admin
53e61c6dcd fix(pitch-deck): no costs before founding month (FOUNDING_MONTH)
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m8s
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 32s
CI / test-bqas (push) Successful in 31s
Engine: All formula-based rows (F) now start at FOUNDING_MONTH (m8),
not m1. Affects: Fortbildung, Fahrzeug, KFZ, Reise, Bewirtung,
Internet, BG, Marketing, Serverkosten, Gewerbesteuer.

DB: All manual (M) betriebliche rows zeroed for m1-m7 across all
6 scenarios.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-20 09:45:45 +02:00
Benjamin Admin
728f698f9e fix(pitch-deck): remove redundant Summe rows from Umsatz/Material/Kunden tabs + total line styling
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m7s
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 33s
CI / test-python-voice (push) Successful in 29s
CI / test-bqas (push) Successful in 34s
- Removed auto-generated SUMME footer from umsatzerloese, materialaufwand, kunden tabs
  (GESAMTUMSATZ/Bestandskunden gesamt rows already exist in DB data)
- GESAMT/Total rows now have thicker top border (border-t-2 white/20)
- unit_cost rows show unit price instead of annual sum

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-20 09:42:16 +02:00
Benjamin Admin
511a7de627 fix(pitch-deck): unit_cost rows show price not annual sum in Finanzplan
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m10s
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 31s
CI / test-python-voice (push) Successful in 33s
CI / test-bqas (push) Successful in 28s
Einkaufspreis rows (Mac Mini/Studio) showed sum of 12 months (e.g. 38,400)
instead of the unit price (3,200). Now detected via section='unit_cost'
or label contains 'Einkaufspreis' and shows the price value instead.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-20 09:36:42 +02:00
Benjamin Admin
9d82f15c53 fix(pitch-deck): FinanzplanSlide selects correct fp_scenario per version
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m8s
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 34s
CI / test-python-voice (push) Successful in 35s
CI / test-bqas (push) Successful in 33s
Bug: Finanzplan data grid always loaded Base Case (is_default=true)
even for Wandeldarlehen version, showing 35 employees + module-based
customers instead of lean 10-person plan.

Fix: isWandeldarlehen prop passed to FinanzplanSlide. On load, picks
Wandeldarlehen scenario by name match instead of is_default.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-19 20:37:00 +02:00
Benjamin Admin
b0918fd946 fix(pitch-deck): GuV + Cashflow tabs read from fp_* data, Break-Even as year
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m31s
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 40s
CI / test-python-voice (push) Successful in 37s
CI / test-bqas (push) Successful in 31s
FinancialsSlide:
- Break-Even: shows year (2029) instead of formatted number (2.029)
- GuV tab: replaced AnnualPLTable (useFinancialModel) with fp_guv data table
  Shows: Revenue, Personnel, EBIT, Taxes, Net Income per year
- Cashflow tab: replaced AnnualCashflowChart (useFinancialModel) with
  fp_liquiditaet bar chart showing cash position + EBIT per year
- Both tabs now show "Quelle: Finanzplan" label

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-19 20:33:30 +02:00
Benjamin Admin
7b31b462a0 fix(pitch-deck): 1 Mio investment amount everywhere (975k → 1M)
Some checks failed
Build pitch-deck / build-push-deploy (push) Failing after 25s
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) Failing after 7s
CI / test-python-voice (push) Failing after 10s
CI / test-bqas (push) Failing after 9s
Updated:
- CapTable: 975k → 1M, 19.6% → 20%, Gründer 37.5% → 37.3%
- FAQ: investment-captable answer updated to 1M
- Production DB: fp_liquiditaet Fremdkapital 975k → 1M (Base + Bear + Bull)
- Production DB: pitch_version_data funding amount → 1M
- All 3 scenarios (Base/Bear/Bull) recomputed with new amounts

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-19 18:16:26 +02:00
Benjamin Admin
021faedfa3 fix(pitch-deck): CapTable slide — remove Gehälter/Gewinnverwendung, fix BAFA + 1M amounts
Some checks failed
Build pitch-deck / build-push-deploy (push) Failing after 23s
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) Failing after 10s
CI / test-python-voice (push) Failing after 10s
CI / test-bqas (push) Failing after 11s
Removed:
- Gründergehälter card (entire section)
- Gewinnverwendung card (entire section)
- Instrument line from Pre-Seed Runde

Updated:
- Series A → "Series A Ausblick (Optional)"
- Investment: 975.000 → 1.000.000 EUR
- Post-Money: 4.975.000 → 5.000.000 EUR
- BAFA INVEST: 20% → 15% Erwerbszuschuss + 25% Exit-Zuschuss

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-19 18:07:30 +02:00
Benjamin Admin
0b30c5e66c feat(pitch-deck): Bear/Bull scenarios from DB + Assumptions slide reads all 3
Some checks failed
Build pitch-deck / build-push-deploy (push) Failing after 21s
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) Failing after 6s
CI / test-python-voice (push) Failing after 9s
CI / test-bqas (push) Failing after 8s
4 new fp_scenarios created on production:
- Wandeldarlehen Bear (5%/8% growth, 1.5x churn → 11 customers 2030)
- Wandeldarlehen Bull (12%/16% growth, 0.7x churn → 999 customers 2030)
- 1 Mio Bear (6%/10% growth, 1.5x churn → 22 customers 2030)
- 1 Mio Bull (12%/18% growth, 0.7x churn → 2574 customers 2030)

AssumptionsSlide loads all 3 scenarios (Bear/Base/Bull) from their
respective fp_* tables. No more scaling factors — real DB data.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-19 18:04:59 +02:00
Benjamin Admin
824f8a7ff2 fix(pitch-deck): remove duplicate phases from GTM slide
Some checks failed
Build pitch-deck / build-push-deploy (push) Failing after 25s
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) Failing after 11s
CI / test-python-voice (push) Failing after 10s
CI / test-bqas (push) Failing after 12s
Phases were duplicated between GTM slide and Strategy slide.
GTM now shows only: ICP (Ideal Customer Profile) + Channel Mix.
Phases remain exclusively on Strategy slide (version-aware).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-19 17:57:45 +02:00
Benjamin Admin
5914ec6cd5 feat(pitch-deck): AIPipeline slide numbers from pitch_pipeline_stats DB table
Some checks failed
Build pitch-deck / build-push-deploy (push) Successful in 1m8s
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) Failing after 9s
CI / test-python-voice (push) Failing after 27s
CI / test-bqas (push) Failing after 27s
All KPI numbers on the AI Pipeline slide now load from the
pitch_pipeline_stats table via /api/pipeline-stats:
- Legal sources: 380+ (was hardcoded 75+)
- Unique controls: 25k+ (was 70k+)
- Obligations: 47k+ (from DB)
- EU regulations, DACH laws, frameworks: from DB
- Pipeline steps text: all counts dynamic

Numbers can be updated via SQL without code deploy:
UPDATE pitch_pipeline_stats SET value = X WHERE key = 'legal_sources';

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-19 17:55:22 +02:00
Benjamin Admin
30c63bbef6 feat(pitch-deck): Use of Funds computed from fp_* spending data
Some checks failed
Build pitch-deck / build-push-deploy (push) Successful in 1m20s
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) Failing after 22s
CI / test-python-voice (push) Successful in 32s
CI / test-bqas (push) Successful in 35s
Use of Funds pie chart now shows actual spending breakdown from fp_* tables
(months 8-24) instead of manually set percentages:
- Engineering & Personal: from fp_personalkosten
- Vertrieb & Marketing: from fp_betriebliche (marketing category)
- Betrieb & Infrastruktur: from fp_betriebliche (other categories)
- Hardware & Ausstattung: from fp_investitionen

Falls back to funding.use_of_funds if fp_* data not yet loaded.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-19 17:50:08 +02:00
Benjamin Admin
7be1a296c6 feat(pitch-deck): NRR + Payback formula-based from fp_* data
Some checks failed
Build pitch-deck / build-push-deploy (push) Successful in 1m11s
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 39s
CI / test-python-voice (push) Successful in 33s
CI / test-bqas (push) Has been cancelled
- NRR: Revenue year N / Revenue year N-1 × 100 (no more "target > 120%")
- Payback: CAC / monthly gross profit (no more "target < 3 months")
- Both computed in useFpKPIs hook from fp_guv data
- BusinessModelSlide shows computed values with "(berechnet)" label

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-19 17:47:11 +02:00
Benjamin Admin
e524786ac0 chore: trigger deploy after GuV recompute + isWandeldarlehen fix
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m48s
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 35s
CI / test-python-voice (push) Successful in 41s
CI / test-bqas (push) Successful in 37s
2026-04-19 17:41:03 +02:00
Benjamin Admin
0ee2b1538a fix(pitch-deck): critical — isWandeldarlehen exact match, not includes
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m18s
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 40s
CI / test-python-voice (push) Successful in 31s
CI / test-bqas (push) Successful in 42s
Bug: 1 Mio version instrument "Stammkapital + Wandeldarlehen + Equity"
matched includes('wandeldarlehen'), applying lean logic to 1 Mio version.

Fix: === 'wandeldarlehen' (exact match).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-19 17:11:57 +02:00
Benjamin Admin
dd6e2f8bd7 feat(pitch-deck): MOAT on USP slide + version-aware GTM slide
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m11s
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 37s
CI / test-python-voice (push) Successful in 36s
CI / test-bqas (push) Successful in 36s
USP Slide:
- Added 3 MOAT statements as prominent section:
  1. End-to-End Traceability (Law → Obligation → Control → Code)
  2. Continuous Compliance Engine (every change, real-time evidence)
  3. EU-Trust & Governance Stack (sovereign, GDPR/AI Act native)

GTM Slide (version-aware):
- Wandeldarlehen: Founder sales → Content/SEO → Organic growth
  3 phases (Pilot → Organic → Scaling), no AEs in 2027
- 1 Mio: Direct sales + Channel (unchanged)
  3 phases with 5-20 KMU target, 2 AEs from 2027

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-19 17:06:14 +02:00
Benjamin Admin
f66f32ee9d fix(pitch-deck): all financial slides now read from fp_* tables via useFpKPIs
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m18s
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 34s
CI / test-python-voice (push) Successful in 32s
CI / test-bqas (push) Successful in 32s
New shared hook: useFpKPIs — loads annual KPIs from fp_guv/liquiditaet/personal/kunden.
Replaces useFinancialModel (simplified model) for KPI display on all slides.

Slides updated:
- CompetitionSlide: "110 Gesetze" → "380+ Regularien & Normen"
- BusinessModelSlide: ACV + Gross Margin from fp_* (was useFinancialModel)
- ExecutiveSummarySlide: Unternehmensentwicklung from fp_* (was useFinancialModel)
- FinancialsSlide: KPI cards from fp_* (ARR, Customers, Break-Even, EBIT 2030)

All slides now show consistent numbers from the same source of truth (fp_* tables).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-19 17:00:27 +02:00
Benjamin Admin
de308b7397 fix(pitch-deck): Assumptions slide reads KPIs from fp_* tables + version-aware text
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m18s
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 35s
CI / test-python-voice (push) Successful in 37s
CI / test-bqas (push) Successful in 35s
- Base Case KPIs now loaded from fp_guv/fp_liquiditaet/fp_kunden (source of truth)
- Bear/Bull derived from Base with scaling factors
- Assumptions text conditional: Wandeldarlehen shows lean plan (3→10, 8%/15% growth),
  1 Mio shows original (5→35, aggressive growth)
- Removed dependency on useFinancialModel (simplified model)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-19 14:37:31 +02:00
Benjamin Admin
8402e57323 fix(pitch-deck): Umlaute in RiskSlide + Sidebar-Name für Risiken
Some checks failed
Build pitch-deck / build-push-deploy (push) Successful in 1m25s
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 38s
CI / test-python-voice (push) Successful in 40s
CI / test-bqas (push) Has been cancelled
- Alle ä/ö/ü in RiskSlide.tsx korrigiert
- slideNames in i18n.ts: 'Risiken & Mitigation' (DE) + 'Risks & Mitigation' (EN) hinzugefügt

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-19 14:34:06 +02:00
Benjamin Admin
1212f6ddfb feat(pitch-deck): version-aware Strategy slide (Wandeldarlehen vs 1 Mio)
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m16s
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 37s
CI / test-python-voice (push) Successful in 36s
CI / test-bqas (push) Successful in 33s
Strategy slide now shows different phases per pitch version:

Wandeldarlehen (lean):
- Phase 1: 3 Personen, ~60k ARR, Prototyp → Produktiv
- Phase 2: 4-5 Personen, ~200k ARR, erster Dev + Security
- Phase 3: 5-7 Personen, ~500k-1M ARR, Vertrieb + Break-Even
- Phase 4: 7-10 Personen, ~2-3M ARR, profitabel organisch

1 Mio (unchanged):
- Phase 1-4: 5→35 MA, 75k→10M ARR

Risks slide already visible for both versions (in slide order).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-19 11:49:31 +02:00
Benjamin Admin
ac2299226a feat(pitch-deck): add Risks & Mitigation slide (vorletzte Folie)
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m15s
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 37s
CI / test-python-voice (push) Successful in 35s
CI / test-bqas (push) Successful in 33s
New slide with 6 risks and concrete mitigations:
1. AI Commoditization — Layer 2-6 moat, not Layer 1
2. US Platform Expansion — EU-only infrastructure, CLOUD Act barrier
3. Team/Key-Person Risk — Documentation, ESOP, early legal hire
4. Slow Customer Acquisition — Consulting revenue bridge, channel strategy
5. Regulatory Changes — Enlarges market, RAG indexes in days
6. Liquidity Risk — Organic growth, Pre-Seed BW option

Key quote: "We don't compete with AI. We compete with teams that
use AI better than we do."

Presenter script added for the risks slide.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-19 11:45:51 +02:00
Benjamin Admin
607dab4f26 fix(pitch-deck): KPIs + Charts on Folie 28 now read from fp_* tables directly
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m12s
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 34s
CI / test-python-voice (push) Successful in 34s
CI / test-bqas (push) Successful in 29s
Previously KPIs/Charts used useFinancialModel (simplified model) which had
different assumptions than the fp_* tables (source of truth).

Now: KPIs tab loads from fp_guv, fp_liquiditaet, fp_personalkosten, fp_kunden
via API. Charts (MRR, EBIT, Headcount) also use fp_* data.

Removed dependency on useFinancialModel and computeAnnualKPIs for this slide.
Added Liquidität (Dez) row to KPIs table.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-19 08:37:46 +02:00
Benjamin Admin
3b8f9b595e fix(pitch-deck): lean cost structure for Wandeldarlehen scenario
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m15s
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 35s
CI / test-python-voice (push) Successful in 36s
CI / test-bqas (push) Successful in 34s
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) <noreply@anthropic.com>
2026-04-19 08:25:57 +02:00
Benjamin Admin
84a0280c52 feat(pitch-deck): Gewerbesteuer formula + BG/Marketing/Telefon engine formulas + tooltips
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m34s
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 38s
CI / test-python-voice (push) Successful in 39s
CI / test-bqas (push) Successful in 41s
Engine:
- Gewerbesteuer (F): 12.25% of monthly profit (only when positive)
- Berufsgenossenschaft (F): 2.77% of brutto payroll
- Allgemeine Marketingkosten (F): 10% of revenue
- Internet/Mobilfunk (F): Headcount × 50 EUR/Mon

UI: Tooltip for Gewerbesteuer formula added.

DB changes (production):
- Gewerbesteuer: (M) → (F), auto-calculated
- Rechtsanwalt/Datenschutz: new hire Oct 2026, 7500 EUR brutto
- Beratung & Services: new revenue line (5k→30k/Mon)
- Investitionen: Home Office 2500 EUR per new hire
- Marketing Videos moved to marketing category
- Bank → Bank-/Kreditkartengebühren
- Jahresabschluss costs filled (1000-2000 EUR/year)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-18 14:29:38 +02:00
Benjamin Admin
dc36e59d17 feat(pitch-deck): formula engine + tooltips for betriebliche Aufwendungen
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m27s
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 36s
CI / test-python-voice (push) Successful in 36s
CI / test-bqas (push) Successful in 34s
Engine formulas added:
- Berufsgenossenschaft (F): 2.77% of total brutto payroll (VBG IT rate)
- Internet/Mobilfunk (F): Headcount × 50 EUR/Mon
- Allgemeine Marketingkosten (F): 10% of monthly revenue

UI: Hover tooltips on all (F) and computed rows showing the formula.
SUMME matcher updated for renamed "SUMME Betriebliche Aufwendungen".

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-18 14:15:16 +02:00
Benjamin Admin
9bb689b7e6 Merge branch 'main' of ssh://gitea.meghsakha.com:22222/Benjamin_Boenisch/breakpilot-core
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m22s
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 37s
CI / test-python-voice (push) Successful in 40s
CI / test-bqas (push) Successful in 39s
2026-04-18 13:03:31 +02:00
Benjamin Admin
d01a50a4b1 feat(pitch-deck): formula-based betriebliche rows in Finanzplan engine
Compute engine now auto-calculates these rows from headcount/customers:
- Fort-/Weiterbildungskosten (F): MA (excl. founders) × 500 EUR/Mon
- Fahrzeugkosten (F): MA (excl. founders) × 400 EUR/Mon
- KFZ-Steuern (F): MA (excl. founders) × 50 EUR/Mon
- KFZ-Versicherung (F): MA (excl. founders) × 500 EUR/Mon
- Reisekosten (F): Headcount × 100 EUR/Mon
- Bewirtungskosten (F): Enterprise-Kunden × 200 EUR/Mon
- Serverkosten Cloud (F): Bestandskunden × 100 EUR + 500 EUR Basis

Labels marked (F) for formula, (M) for manual in production DB.
Gesamtkosten matcher updated for renamed "SUMME Betriebliche Aufwendungen".

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-18 13:03:18 +02:00
Sharang Parnerkar
51e75187ed feat(pitch-deck): add force recompute to bypass stale pitch_fm_results cache
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m1s
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 27s
CI / test-python-voice (push) Successful in 25s
CI / test-bqas (push) Successful in 28s
Adds `force: true` body param to POST /api/financial-model/compute that
skips the cached results check and recomputes from assumptions directly.
Exposes this via a "Force Recompute" button on the scenario edit admin page,
so updating assumptions directly in the DB can be followed by a cache bust
without touching the UI assumption flow.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17 11:10:35 +02:00
Sharang Parnerkar
e37fd3bbe4 fix: remove scenario dropdown from FinanzplanSlide
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m2s
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 28s
CI / test-python-voice (push) Successful in 29s
CI / test-bqas (push) Successful in 26s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17 11:04:26 +02:00
Sharang Parnerkar
11fa490599 fix: finanzplan scenario selector — load from API, no hardcoded UUID
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m4s
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 29s
CI / test-python-voice (push) Successful in 27s
CI / test-bqas (push) Successful in 28s
Replaces the FM-name-based 'wandeldarlehen' hack with a proper scenario
picker. Scenarios are fetched from /api/finanzplan, default is selected
automatically. Dropdown appears when multiple scenarios exist.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17 10:56:52 +02:00
Sharang Parnerkar
27ef21a4f0 feat: git SHA version badge in admin, fix finanzplan caching, drop gitea remote
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m4s
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 28s
CI / test-python-voice (push) Successful in 28s
CI / test-bqas (push) Successful in 26s
- AdminShell: shows NEXT_PUBLIC_GIT_SHA in sidebar footer
- Dockerfile + build-pitch-deck.yml: pass --build-arg GIT_SHA at build time
- FinanzplanSlide: fetch with cache:no-store to always show current DB values
- finanzplan routes: Cache-Control: no-store to prevent CDN/proxy staling
- CLAUDE.md: remove dead gitea remote (only origin exists)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17 10:47:51 +02:00
Sharang Parnerkar
b3643ddee9 Merge branch 'main' of ssh://coolify.meghsakha.com:22222/Benjamin_Boenisch/breakpilot-core
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m2s
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 26s
CI / test-python-voice (push) Successful in 29s
CI / test-bqas (push) Successful in 26s
2026-04-17 10:39:54 +02:00
Sharang Parnerkar
68b7660ce3 docs: replace all Coolify references with Orca across core repo
CI/CD pipeline migrated from Coolify to Orca.
Updated CLAUDE.md, pre-push-checks, docs-src, and pitch-deck scripts/slides.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17 10:39:47 +02:00
Benjamin Admin
2d61911d98 chore: trigger pitch-deck CI + deploy
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m12s
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 30s
CI / test-python-voice (push) Successful in 29s
CI / test-bqas (push) Successful in 31s
2026-04-17 10:23:31 +02:00
Benjamin Admin
9f642901ab chore: trigger pitch-deck CI build
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m17s
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 34s
CI / test-python-voice (push) Successful in 35s
CI / test-bqas (push) Successful in 34s
2026-04-17 09:53:47 +02:00
Benjamin Admin
add7400b78 chore: retrigger CI for pitch-deck fm_scenarios fix
All checks were successful
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 41s
CI / test-python-voice (push) Successful in 35s
CI / test-bqas (push) Successful in 32s
2026-04-17 09:45:48 +02:00
Benjamin Admin
65cc5200ea chore: trigger coolify rebuild (fm_scenarios fix)
All checks were successful
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 35s
CI / test-python-voice (push) Successful in 33s
CI / test-bqas (push) Successful in 33s
2026-04-17 08:55:11 +02:00
Benjamin Admin
ede93a7774 chore: trigger rebuild after build verification
All checks were successful
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 33s
CI / test-python-voice (push) Successful in 34s
CI / test-bqas (push) Successful in 32s
2026-04-17 08:47:05 +02:00
Benjamin Admin
bc020e9f64 Merge branch 'main' of ssh://gitea.meghsakha.com:22222/Benjamin_Boenisch/breakpilot-core
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 36s
CI / test-python-voice (push) Successful in 34s
CI / test-bqas (push) Successful in 33s
2026-04-17 08:36:07 +02:00
Benjamin Admin
bad4659d5b fix(pitch-deck): include fm_scenarios in preview-data API response
The admin preview was not returning fm_scenarios/fm_assumptions,
so preferredScenarioId was always null and all financial slides
fell back to Base Case (1M) instead of the version's scenario.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-17 08:35:22 +02:00
Sharang Parnerkar
e3b33ef596 docs: add AGENTS.python/go/typescript.md and pre-push check rules
Some checks failed
CI / go-lint (push) Has been cancelled
CI / python-lint (push) Has been cancelled
CI / nodejs-lint (push) Has been cancelled
CI / test-go-consent (push) Has been cancelled
CI / test-python-voice (push) Has been cancelled
CI / test-bqas (push) Has been cancelled
Mandatory pre-push gates for all three language stacks with exact
commands, common pitfalls, and architecture rules. CLAUDE.md updated
with quick-reference section linking to the new files.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17 08:35:12 +02:00
Sharang Parnerkar
39255f2c9e fix(pitch-deck): hoist textLang const out of fetch object literal
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m8s
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 30s
CI / test-python-voice (push) Successful in 33s
CI / test-bqas (push) Successful in 32s
Syntax error: const declaration was inside the options object.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17 08:16:19 +02:00
Benjamin Admin
030991cb9a chore: trigger rebuild 2
Some checks failed
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 34s
CI / test-bqas (push) Has been cancelled
CI / test-python-voice (push) Has been cancelled
2026-04-17 08:15:13 +02:00
Benjamin Admin
fa9b554f50 fix(pitch-deck): TTS letter spelling (CE/SAST/DAST) + Finanzplan slide loads version scenario
Some checks failed
Build pitch-deck / build-push-deploy (push) Failing after 23s
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 34s
CI / test-python-voice (push) Successful in 32s
CI / test-bqas (push) Successful in 29s
TTS:
- CE → "C. E." for letter-by-letter pronunciation
- SAST → "S. A. S. T.", DAST → "D. A. S. T."

Finanzplan Slide 28:
- Data grid now loads Wandeldarlehen fp_scenario when active FM scenario
  contains "wandeldarlehen" (scenarioId=c0000000-...-000000000200)
- Base Case version continues to load default fp_scenario

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-17 08:10:18 +02:00
Benjamin Admin
788714ecec chore: trigger coolify rebuild
All checks were successful
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 33s
CI / test-bqas (push) Successful in 42s
2026-04-17 08:05:09 +02:00
Benjamin Admin
08ca17c876 fix(pitch-deck): presenter script — prototype status, no production claims before Aug 2026
Some checks failed
Build pitch-deck / build-push-deploy (push) Failing after 22s
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 35s
CI / test-python-voice (push) Successful in 35s
CI / test-bqas (push) Successful in 33s
- Traction slide: "funktionsfähig und deployed" → "Prototyp-Stadium, mit Testkunden validiert"
- "bereit für zahlende Kunden" → "Ab August 2026 produktiver Betrieb"
- SDK Demo: "produktive Plattform" → "funktionierender Prototyp, mit Testkunden validiert"
- USP: "produktive Engine" → "leistungsfähige Engine"

Until founding in August 2026, all references must indicate prototype/test status.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-17 01:20:21 +02:00
Benjamin Admin
c157e9cbca fix(pitch-deck): TTS language detection, technical FAQ, proper German umlauts + abbreviations
Some checks failed
Build pitch-deck / build-push-deploy (push) Failing after 23s
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 34s
CI / test-python-voice (push) Successful in 33s
CI / test-bqas (push) Has been cancelled
TTS Language Bug:
- ChatFAB: detect response language from text content instead of UI language
- German text with umlauts/ß triggers German TTS even when UI is in English

Presenter Script (German TTS pronunciation):
- Add proper umlauts (ä/ö/ü) throughout German text
- Expand abbreviations for clear pronunciation:
  DSGVO → Datenschutz-Grundverordnung
  SAST → Static Application Security Testing
  DAST → Dynamic Application Security Testing
  SBOM → Software Bill of Materials
  VVT → Verarbeitungsverzeichnis
  TOMs → technisch-organisatorische Maßnahmen
  BSI → Bundesamt für Sicherheit in der Informationstechnik
  KMU → kleine und mittlere Unternehmen, etc.

Technical FAQ (12 new entries):
- BGE-M3, RAG, Qdrant, Cross-Encoder, Hybrid Search
- SAST/DAST, SBOM, BSI, Cloud Providers (SysEleven/Hetzner)
- Controls/Prüfaspekte, Policy Engine, VVT/TOMs/DSFA

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-17 01:18:03 +02:00
Benjamin Admin
9005a05bd7 fix(pitch-deck): version-aware financial model + layout fix + COMPLAI spelling
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m2s
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 26s
CI / test-python-voice (push) Successful in 25s
CI / test-bqas (push) Successful in 26s
Critical fix: All financial slides now use the version's preferred scenario
instead of always defaulting to Base Case (1M). This ensures the
Wandeldarlehen version shows its own lean financial plan.

- useFinancialModel: add preferredScenarioId parameter
- PitchDeck: extract default scenario from previewData.fm_scenarios
- Pass preferredScenarioId to all 5 financial slides
- FinancialsSlide layout: remove empty right column, full-width charts
- Remove ScenarioSwitcher + unused slider from FinancialsSlide
- Fix COMPLEI → COMPLAI in presenter script (only TTS pronunciation differs)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-17 01:02:57 +02:00
Benjamin Admin
98081ae5eb fix(pitch-deck): add loading fallback for Unternehmensentwicklung tile
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m8s
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 36s
CI / test-python-voice (push) Successful in 36s
CI / test-bqas (push) Successful in 34s
Shows "Lade Finanzplan..." when annualKPIs is empty (data not yet loaded)
instead of rendering nothing.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-17 00:47:34 +02:00
Benjamin Admin
c99e35438c feat(pitch-deck): rewrite presenter script — emotional tone, correct numbers, all slides
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m13s
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 31s
CI / test-python-voice (push) Successful in 32s
CI / test-bqas (push) Successful in 33s
- Fix "110 Gesetze" → "380+ Regularien" (all occurrences)
- Fix savings: 30k/20k → 13k/9k matching SavingsSlide KMU (55k total, 3.7x ROI)
- Fix "COMPLAI" → "COMPLEI" (pronunciation: like Ei, not AI)
- Remove "Frankreich/France" references
- Remove hardcoded financial projections (now reference computed data)
- Add missing slide scripts: usp, cap-table, customer-savings, annex-strategy,
  annex-finanzplan, annex-glossary, legal-disclaimer
- More emotional, positive, investor-focused tone throughout
- Fix "38 Verordnungen" → "380+ Regularien" in AI pipeline
- Fix module count: "12" → "65 Compliance-Module"

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-17 00:43:30 +02:00