Funding Applications

Applications submitted to Funding Programs for specific Projects/Scenarios. Track the full lifecycle from eligibility check through approval and disbursement. Each application references a specific program version and contains measures, adjustments, and loans.

Source Files

LayerPath
Schemabackend/src/db/schema.ts (line ~1566)
Routesbackend/src/routes/funding-applications.ts
Servicebackend/src/services/funding-application-service.ts
Calculatorbackend/src/lib/funding-calculator.ts
Pagesfrontend/src/pages/FundingApplications.tsx
Componentsfrontend/src/components/funding/ (7+ files)
Frontend Libfrontend/src/lib/funding/ (fundingFormService.ts, useFundingFormState.ts)
Queriesfrontend/src/lib/queries/fundingApplicationQueries.ts

Database Tables

TablePurpose
funding_applicationsMain entity — program version, state, amounts, approval tracking
funding_measuresIndividual measures within an application (cost, area, eligibility, rates)
funding_adjustmentsBonuses/deductions applied at measure, category, or program scope
funding_loansLoan-specific details for loan-based programs (KfW)

Key Fields — Applications

FieldTypeNotes
buildingIduuid FKParent building (cascade)
projectIduuid FKParent project (cascade)
fundingProgramVersionIduuid FKReferences specific Funding Programs version
statevarcharApplication lifecycle state
totalEligibleCosts / totalEligibleAreadecimalAggregated from measures
calculatedFundingAmount / fundingAmountdecimalSystem-calculated vs. actual
applicationDate / applicationReferencetimestamp/varcharSubmission tracking
approvalDate / approvedFundingAmounttimestamp/decimalApproval tracking
disbursedAmountdecimalActual payout received
isCombinablebooleanWhether combinable with other funding
sourceFundingApplicationIduuid FKSelf-referential for application variants

Key Fields — Measures

FieldTypeNotes
componentIduuid FKOptional link to Building Components
fundingProgramMeasureIduuid FKLinks to program measure definition
measureCost / measureAreadecimalCost and area for this measure
fundingRate / calculatedAmountdecimalCalculated funding values
eligibleCost / eligibleAreadecimalEligible amounts after caps
isEligiblebooleanWhether measure meets program criteria
calculationBasisenumHow funding is calculated

Relationships

Funding Application *──1 Building
Funding Application *──1 Project
Funding Application *──1 Funding Program Version
Funding Application 1──* Funding Measures ──* Building Components
Funding Application 1──* Funding Adjustments
Funding Application 1──* Funding Loans
Funding Application *──* Quotes (via funding_quote_allocations)
Funding Application *──* Invoices (via funding_invoice_allocations)

Frontend Components

ComponentPurpose
FundingApplicationCardSummary card for a single application
FundingApplicationFormDialogCreate/edit application with measure configuration
CreateFundingApplicationWithProjectDialogQuick-create with project selection
InlineFundingApplicationsTableCompact table within Quotes/Invoices views
BuildingFundingApplicationsListApplications scoped to a building
ProjectFundingApplicationsApplications within a project detail view
ScenarioFundingApplicationsApplications within a scenario view

Features

  • Eligibility checking based on program version rules and building characteristics
  • Funding calculation via funding-calculator.ts — applies rates, caps, and bonuses
  • Adjustment system with three scopes: program-wide, category-level, measure-level
  • Loan calculations for KfW programs (numberOfDwellings x loanPerDwelling)
  • Combinability tracking for stacking multiple funding sources
  • Application variants via sourceFundingApplicationId self-reference
  • Cross-entity linking to Quotes and Invoices via allocation tables

Funding Programs | Projects | Buildings | Scenarios | Measures | Building Components | Quotes | Invoices | Financial Calculations | Energy Calculations | Database Architecture