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 (line ~1296)
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, validity windows

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

Seed Data

Real German funding programs are seeded via backend/src/db/seeds/:

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

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, only one active per program
  • 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