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.
All amount columns are decimal(12,2) — they leave Drizzle as strings and stay decimal strings on the wire. Arithmetic uses Big.js via @shared/money (fromString, add/sub/mul/div, round(m, 2) HALF_UP); never Number()/parseFloat() on money columns (spec 2026-04-24-money-arithmetic-bigjs-design.md).
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