Funding Programs

Government and institutional funding programs for building renovations. Covers federal (KfW, BAFA), state (IFB Hamburg), regional, and municipal programs. Programs are versioned to track rule changes over time.

Source Files

LayerPath
Schemabackend/src/db/schema.ts
Routesbackend/src/routes/funding-programs.ts
Admin Routesbackend/src/routes/admin/funding-programs/ (programs.ts, versions.ts, measures.ts, loans.ts)
Admin Pagesfrontend/src/pages/admin/FundingProgramsList.tsx, FundingProgramDetail.tsx
Admin Formsfrontend/src/pages/admin/FundingProgramForm.tsx, FundingProgramVersionForm.tsx, FundingProgramMeasureForm.tsx, FundingProgramLoanForm.tsx
Queriesfrontend/src/lib/queries/fundingProgramQueries.ts

Database Tables

TablePurpose
funding_programsMain entity — name, provider, type, validity period
funding_program_versionsVersioned rules — rates, max amounts, bonuses/limits/requirements jsonb, validity windows
funding_program_measuresEligible measure definitions per version (types, rates, caps)
funding_program_loansLoan definitions per version (per-dwelling amounts, subsidy rates)

Key Fields — Programs

FieldTypeNotes
namevarchar(255)Program name (e.g., “KfW BEG WG”)
providervarchar(255)Issuing body — KfW, BAFA, IFB Hamburg, etc.
typeenumfederal, state, regional, municipal, private
isActivebooleanWhether the program is currently accepting applications
validFrom / validTotimestampProgram availability window

Key Fields — Versions

FieldTypeNotes
versionNumbervarcharVersion identifier
baseFundingRatedecimalBase percentage for funding calculation
maxFundingAmountdecimalCap per application
maxEligibleCostsdecimalMaximum eligible renovation costs
bonusesjsonbArray of bonus definitions (percentage, flat, per-unit) with applicability rules
applicationUrlvarcharLink to official application form

Mock Data

Pivot: “seeding” is retired (Database Seeding is historical). Real German funding programs now load as mock/demo data from backend/src/db/mocks/ (kfw-beg-wg.ts, kfw-beg-em-heating.ts, bafa-beg-em-building-envelope.ts, ifb-hamburg-funding.ts) — only when AUTO_MOCK=true (local/pr-preview/development).

ProgramProviderType
KfW BEG WGKfWFederal (loan-based)
KfW BEG EMKfWFederal (grant/heating)
BAFA BEG EMBAFAFederal (grant-based)
IFB HamburgIFBState (regional)

Förderung domain terms (Förderung, Tilgungszuschuss, …) stay German as proper nouns; identifiers are English.

Bonus System

Versions support a flexible bonus structure stored in the bonuses JSONB column:

  • Calculation types: percentage, flat_amount, per_unit
  • Apply-to targets: eligible_cost, funding_amount, area, quantity
  • Scoping rules: filter by measure IDs, measure types, measure categories, component types

Relationships

Funding Program 1──* Funding Program Versions
Funding Program Version 1──* Funding Program Measures
Funding Program Version 1──* Funding Program Loans
Funding Program Version *──* Funding Applications (via applications)

Features

  • Version management — different rules over time (validity windows + isActive flag)
  • Measure definitions per version specifying eligible renovation types and rates
  • Loan definitions for loan-based programs (KfW) with per-dwelling calculations
  • Bonus configuration with hierarchical applicability rules
  • Admin management via Admin Dashboard with CRUD for programs, versions, measures, loans
  • Calculator integration via Financial Calculations and backend/src/lib/funding-calculator.ts

Funding Applications | Measures | Financial Calculations | Energy Calculations | Admin Dashboard | Quotes | Invoices | Database Architecture