Product Requirements Document + Engineering Implementation Guide
CONFIDENTIAL — PreFi, Inc. / Purpose Technology, Inc. d/b/a Purlend Version 1.0 | March 2026 | Gear 1 Sprint
Document Clarity Engine VA Module PRD v1.0 Prepared For BIX Technology Corp — Pedro, Eduardo, Helio Authorized By David Kawata, CEO & Founder — Purlend Source Workbook VA_Rules_Workbook_10-10.xlsx (verified March 2026) Primary Authority VA Pamphlet 26-7, Chapter 4 Credit Underwriting Scope Base VA underwriting rules — does not replace AUS, lender overlays, or COE workflow
This document is the engineering implementation guide for the VA Loan Module of the Clarity Engine. It defines every rule, formula, lookup table, field, and test case required for BIX to implement VA underwriting logic correctly — without mortgage domain expertise in the room. This document is the single source of truth for base VA rules in Gear 1. Every number, every rule, and every table has been verified against the source workbook and official VA guidance.
Tier Source Purpose in This Module Workbook ID 1 VA.gov Eligibility Page COE, service eligibility, occupancy, income/credit requirements
1 VA Chapter 4 Credit Underwriting Residual income tables, DTI benchmark, 120% rule, net income treatment
1 VA Funding Fee & Closing Costs Page Fee tables (eff. Apr 7 2023), financing rules, seller concession cap
1 VA Loan Limits Page Full vs. partial entitlement, loan limit interaction
1 VA Cash-Out Refinance Page Cash-out rules, occupancy, Type I vs Type II distinction
1 VA IRRRL Page IRRRL rules — VA-to-VA, no cash proceeds, 0.50% fee
2 Ginnie Mae MBS Guide SECURITIZATION ONLY — pooling, issuance, capital markets. NOT borrower underwriting.
3 Lender Overlays Separate overlay layer. Never mixed into base VA rules. Overlay Registry
Ginnie Mae does NOT determine borrower eligibility. It does not set DTI limits. It does not govern residual income. Ginnie Mae guarantees MBS backed by VA-guaranteed loans — that is its entire role. Any VA underwriting rule attributed to Ginnie Mae is an implementation error that must be corrected.
Attribute Value program_family VA secondary_market_family GINNIE_MAE — execution only, separate module underwriting_authority VA Pamphlet 26-7 / VA.gov official guidance primary_affordability_test RESIDUAL INCOME — not DTI. DTI 41% is a benchmark, not a hard stop. down_payment $0 for full entitlement / calculated for partial entitlement mortgage_insurance NONE — replaced by VA Funding Fee (one-time, can be financed) occupancy_requirement Primary residence for purchase and cash-out. Special prior-occupancy rule for IRRRL.
# Decision Object Function Section 1 Eligibility + COE Validates service eligibility, COE status, occupancy, discharge type. HARD GATE. Section 3 2 Entitlement Full vs. partial entitlement — computes required down payment if partial. Section 4 3 Loan Purpose Router Routes to correct rule tree: Purchase / IRRRL / Cash-Out Type I / Cash-Out Type II. Section 5 4 Residual Income Engine Core qualification. Shelter expense, actual residual, required residual, DTI, 120% rule. Section 6 5 Funding Fee Calculator Exemption check, purpose/use/tier lookup, fee amount, total loan with financed fee. Section 7 6 Closing Cost Validator Financing limit (funding fee only), seller concession 4% cap distinction. Section 8 7 Income Handler Tax-free gross-up logic — applies to DTI only, NOT to residual income. Section 9
Execution rule: Objects execute in sequence. A Hard Gate failure stops all downstream processing. IRRRL bypasses Objects 4 and 7 in most cases.
Validates legal eligibility for VA loan benefits before any underwriting math runs. Hard gate — if any rule fails, the system stops. No qualification output is produced.
Field Type Required Allowed Values Source coe_status enum Yes obtained | pending | not_applied
service_eligibility_status enum Yes eligible | ineligible | pending
surviving_spouse_flag boolean Yes true | false
occupancy_intent enum Yes primary_residence | second_home | investment
discharge_type enum Yes honorable | general | other_than_honorable
va_loan_purpose enum Yes purchase | irrrl | cash_out_type1 | cash_out_type2
VA_ELIG_001 [COE Hard Gate] Source: SRC-VA-COE IF coe_status != obtained THEN recommendation_status = conditional_pending_coe severity = HARD_GATE DO NOT advance to residual income or funding fee calculation
VA_ELIG_002 [Service Eligibility] Source: SRC-VA-ELIG IF service_eligibility_status != eligible AND surviving_spouse_flag = false THEN program_status = ineligible severity = HARD_GATE
VA_ELIG_003 [Purchase Occupancy] Source: SRC-VA-ELIG IF va_loan_purpose = purchase AND occupancy_intent != primary_residence THEN program_status = ineligible severity = HARD_GATE
VA_ELIG_004 [Cash-Out Occupancy] Source: SRC-VA-CASHOUT IF va_loan_purpose IN (cash_out_type1, cash_out_type2) AND occupancy_intent != primary_residence THEN program_status = ineligible severity = HARD_GATE
VA_ELIG_005 [Discharge Review Flag] Source: SRC-VA-ELIG IF discharge_type = other_than_honorable THEN program_status = flag_for_human_review note = 'VA has limited exceptions — human review required' severity = REVIEW_REQUIRED
IRRRL uses prior occupancy certification — the borrower certifies they previously lived in the home. VA_ELIG_003 (current primary residence) must NOT be applied to IRRRL transactions. These require different occupancy handling in the Loan Purpose Router (Object 3). Source: SRC-VA-IRRRL.
Determines full vs. partial entitlement. Full entitlement: no loan limit, no down payment required. Partial entitlement: down payment required if loan exceeds available guaranty.
Field Type Required Description full_entitlement_flag boolean Yes True = full entitlement. No loan limit cap. No down payment required. partial_entitlement_flag boolean Yes True = reduced entitlement. Down payment may be required. remaining_entitlement_amount decimal If partial Dollar amount from COE document county_loan_limit decimal If partial FHFA table by county — required for partial entitlement math only base_loan_amount decimal Yes Loan amount before funding fee addition required_down_payment_amount decimal Derived OUTPUT: $0 for full entitlement. Calculated for partial entitlement.
VA_ENT_001 [Full Entitlement] Source: SRC-VA-LIMITS IF full_entitlement_flag = true THEN county_loan_limit_cap_applies = false required_down_payment_amount = 0
// No ceiling on loan amount for no-down-payment eligibility
VA_ENT_002 [Partial Entitlement] Source: SRC-VA-LIMITS
IF partial_entitlement_flag = true
THEN guaranty_available = remaining_entitlement_amount * 4
IF base_loan_amount > guaranty_available
THEN required_down_payment_amount =
(base_loan_amount - guaranty_available) * 0.25
ELSE
required_down_payment_amount = 0
4.4 Worked Examples
Scenario
Loan Amount
Guaranty Available
Down Payment Required
Full entitlement — any loan amount
$600,000
Unlimited
$0
Partial — $180K remaining entitlement — $550K loan
$550,000
$720,000
$0 (loan < guaranty)
Partial — $180K remaining entitlement — $800K loan
$800,000
$720,000
$20,000
Calculation for $800K partial: Gap = ($800K − $720K) = $80K. Down payment = $80K × 25% = $20,000.
Routes the transaction to the correct rule tree. Each loan purpose has incompatible rules. Do NOT share one rules tree across purchase, IRRRL, and cash-out. This is the most common VA implementation failure.
va_loan_purpose Rule Tree Key Constraints — Unique to This Branch purchase
Full underwriting. Residual income required. Appraisal/NOV required. Primary occupancy required. Funding fee by use count + down payment tier. irrrl
Must refinance existing VA-guaranteed loan. No cash out allowed. Income/credit/appraisal not required in standard cases. Rate must decrease OR ARM-to-fixed. Occupancy: prior occupancy certification only. Fee: 0.50% flat, no tiers. cash_out_type1
Existing VA loan. Loan amount must not exceed payoff balance (no net cash). Full underwriting. Residual income required. Appraisal required. Borrower must currently occupy. Fee: purchase table. cash_out_type2
Any loan type to VA. Borrower may receive cash above closing costs. Full underwriting. Residual income required. Appraisal required. Borrower must currently occupy. Fee: purchase table.
VA_PURPOSE_001 [IRRRL: No Cash Out] Source: SRC-VA-IRRRL IF va_loan_purpose = irrrl AND cash_out_requested > 0 THEN program_status = ineligible severity = HARD_GATE
VA_PURPOSE_002 [IRRRL: VA-to-VA Only] Source: SRC-VA-IRRRL IF va_loan_purpose = irrrl AND existing_loan_family != VA THEN program_status = ineligible severity = HARD_GATE
VA_PURPOSE_003 [IRRRL: Bypass Full Underwriting] Source: SRC-VA-IRRRL IF va_loan_purpose = irrrl THEN skip_residual_income_engine = true skip_income_verification = true skip_appraisal = true occupancy_check_type = PRIOR_OCCUPANCY_CERT
VA_PURPOSE_004 [Cash-Out: Current Occupancy] Source: SRC-VA-CASHOUT IF va_loan_purpose IN (cash_out_type1, cash_out_type2) THEN require_current_primary_occupancy = true
VA uses GROSS monthly income for the DTI denominator. VA uses NET effective income for residual income calculation. These produce different numbers from the same borrower. If the engine stores one income variable and uses it for both calculations, the residual income output will be wrong for virtually every borrower. This is the #1 VA implementation error.
Field Type Status Description gross_monthly_income decimal Required Used as DTI denominator. Tax-free gross-up applies here (Object 7). net_effective_income decimal Required After taxes/deductions. Used in residual income formula ONLY. No gross-up. monthly_debt_obligations decimal Required Total recurring monthly debts in loan analysis (same liabilities as DTI) principal_and_interest decimal Required Monthly P&I on subject loan monthly_property_tax decimal Required Monthly property tax escrow monthly_hazard_insurance decimal Required Monthly hazard/homeowners insurance hoa_monthly decimal Required HOA dues if applicable, $0 if none property_sqft integer Required Living area sq ft — used to calculate maintenance_utilities_allowance maintenance_utilities_allowance decimal Derived = property_sqft x $0.14 (VA standard rate per sq ft, Source: SRC-VA-CH4) monthly_shelter_expense decimal Derived = P&I + Tax + Insurance + HOA + maintenance_utilities_allowance dti_ratio decimal Derived = (monthly_shelter_expense + monthly_debt_obligations) / gross_monthly_income family_size_for_residual_income integer Required Household size including all dependents (1–5+) residual_income_region enum Required Northeast | Midwest | South | West required_residual_income decimal Derived SUMIFS lookup from official VA table by bucket, family size, region actual_residual_income decimal Derived = net_effective_income - monthly_shelter_expense - monthly_debt_obligations residual_income_pass_flag boolean Derived True if actual >= required (or 120% threshold when DTI > 41%)
maintenance_utilities_allowance = property_sqft * 0.14
monthly_shelter_expense = principal_and_interest + monthly_property_tax + monthly_hazard_insurance + hoa_monthly + maintenance_utilities_allowance
dti_ratio = (monthly_shelter_expense + monthly_debt_obligations) / gross_monthly_income dti_over_41_flag = (dti_ratio > 0.41)
actual_residual_income = net_effective_income
bucket = IF base_loan_amount >= 80000 THEN '80k+' ELSE 'Under80k' family_cap = MIN(family_size_for_residual_income, 5) required_residual_income = LOOKUP(bucket, family_cap, residual_income_region) IF family_size_for_residual_income > 5: addon_per_person = ADD_ON_TABLE[bucket][residual_income_region] required_residual_income += (family_size_for_residual_income - 5) * addon_per_person
IF dti_ratio <= 0.41: threshold = required_residual_income
threshold = required_residual_income * 1.20 // 120% rule residual_income_pass_flag = (actual_residual_income >= threshold) IF NOT residual_income_pass_flag: result = HUMAN_REVIEW_REQUIRED (not auto-decline)
// VA does not use residual income failure as automatic hard stop
6.4 Official Residual Income Tables
Table A: Loans $80,000 and Above (Source: SRC-VA-CH4)
Family
Northeast
Midwest
South
West
1
$450
$441
$441
$491
2
$755
$738
$738
$823
3
$909
$889
$889
$990
4
$1,025
$1,003
$1,003
$1,117
5
$1,062
$1,039
$1,039
$1,158
+$80 per person over 5
+$80
+$80
+$80
+$80
Table B: Loans Below $80,000 (Source: SRC-VA-CH4)
Family
Northeast
Midwest
South
West
1
$390
$382
$382
$425
2
$654
$641
$641
$713
3
$788
$772
$772
$859
4
$888
$868
$868
$967
5
$921
$902
$902
$1,004
+$75 per person over 5
+$75
+$75
+$75
+$75
6.5 DTI Rule Set
VA_DTI_001 [DTI at or Below 41%] Source: SRC-VA-CH4
IF dti_ratio <= 0.41
THEN continue_standard_va_evaluation = true
residual_income_threshold = required_residual_income
VA_DTI_002 [120% Rule — DTI Above 41%] Source: SRC-VA-CH4
IF dti_ratio > 0.41
THEN residual_income_threshold = required_residual_income * 1.20
IF actual_residual_income >= residual_income_threshold
THEN residual_income_120_pass = true
ELSE residual_income_120_pass = false
// DOES NOT auto-decline
// Routes to: human_review_required = true
// Compensating factors may apply
6.6 VA Residual Income Rules
VA_RESID_001 [Bucket Selection] Source: SRC-VA-CH4
IF base_loan_amount >= 80000: bucket = '80k+'
ELSE: bucket = 'Under80k'
VA_RESID_002 [Pass Test] Source: SRC-VA-CH4
IF actual_residual_income >= residual_income_threshold
THEN residual_income_pass_flag = true
ELSE residual_income_pass_flag = false
Calculates the VA funding fee. Exemption check must run first. If exempt, fee is zero. If not exempt, fee is determined by loan purpose, prior use count, and down payment tier. The fee can be financed into the loan, which changes the total loan amount and must trigger payment recalculation.
Field Type Status Description funding_fee_exempt_flag boolean Required True if veteran has service-connected disability rating ≥10%, surviving spouse receiving DIC, or active duty Purple Heart (post Jan 1 2020) va_loan_purpose enum Required From Object 3: purchase | irrrl | cash_out_type1 | cash_out_type2 prior_va_use_count integer Required 0 = first use. 1+ = subsequent use. down_payment_percent decimal Purchase Purchase only — used for fee tier lookup. Not applicable to cash-out or IRRRL. base_loan_amount decimal Required Loan amount before funding fee addition funding_fee_percent decimal Derived OUTPUT: Rate from table lookup below funding_fee_amount decimal Derived OUTPUT: = base_loan_amount x funding_fee_percent funding_fee_financed_flag boolean Required True if borrower chooses to roll funding fee into loan total_loan_amount decimal Derived OUTPUT: = base_loan_amount + funding_fee_amount (if financed), else = base_loan_amount
Purpose Group Use Type Down Payment Tier Fee Rate Can Finance? Purchase First use (0) Less than 5% 2.15% Yes Purchase First use (0) 5% to less than 10% 1.50% Yes Purchase First use (0) 10% or more 1.25% Yes Purchase Subsequent use (1+) Less than 5% 3.30% Yes Purchase Subsequent use (1+) 5% to less than 10% 1.50% Yes Purchase Subsequent use (1+) 10% or more 1.25% Yes Cash-Out Refinance First use (0) N/A 2.15% Yes Cash-Out Refinance Subsequent use (1+) N/A 3.30% Yes
Any N/A 0.50% Yes Note: Down payment tiers do NOT apply to cash-out refinance or IRRRL. Cash-out fee is determined by use count only.
VA_FF_001 [Exemption Check — Run FIRST] Source: SRC-VA-FEE IF funding_fee_exempt_flag = true THEN funding_fee_percent = 0 funding_fee_amount = 0 STOP — do not evaluate remaining fee rules
VA_FF_002 [IRRRL Fee] Source: SRC-VA-IRRRL IF va_loan_purpose = irrrl THEN funding_fee_percent = 0.005 // 0.50% flat, no tier
VA_FF_003 [Cash-Out Fee] Source: SRC-VA-FEE IF va_loan_purpose IN (cash_out_type1, cash_out_type2) THEN funding_fee_percent = IF prior_va_use_count = 0 THEN 0.0215 ELSE 0.033
VA_FF_004 [Purchase Fee — Tier Lookup] Source: SRC-VA-FEE IF va_loan_purpose = purchase IF prior_va_use_count = 0: // first use IF down_payment_percent < 0.05: fee = 0.0215 IF down_payment_percent < 0.10: fee = 0.015 ELSE: fee = 0.0125 ELSE: // subsequent use IF down_payment_percent < 0.05: fee = 0.033 IF down_payment_percent < 0.10: fee = 0.015 ELSE: fee = 0.0125
VA_FF_005 [Fee Amount] funding_fee_amount = base_loan_amount * funding_fee_percent
VA_FF_006 [Total Loan Amount + Recalculation Trigger] IF funding_fee_financed_flag = true THEN total_loan_amount = base_loan_amount + funding_fee_amount
// MUST trigger recalculation of:
// LTV = total_loan_amount / appraised_value
// monthly_PI = PMT(rate/12, term*12, total_loan_amount)
ELSE
total_loan_amount = base_loan_amount
VA has specific rules about what can be financed and what counts toward the seller concession cap. Closing costs and seller concessions are NOT the same thing in VA. This distinction is a common implementation error.
VA_CTC_001 [Purchase: Financing Limit] Source: SRC-VA-FEE IF va_loan_purpose = purchase THEN only_funding_fee_may_be_financed = true
// All other fees (origination, title, appraisal, prepaid)
// must be paid at closing — may NOT be rolled into loan amount
VA_SELL_001 [Seller Concession Cap] Source: SRC-VA-FEE
IF seller_concessions > 0.04 * reasonable_value
THEN fail_seller_concession_cap = true
// reasonable_value = VA-determined appraised value
CLOSING COSTS vs. SELLER CONCESSIONS — CRITICAL DISTINCTION
The 4% seller concession cap applies ONLY to seller-paid concessions: prepaid taxes/insurance, discount points above 2 points, funding fee if paid by seller. Standard closing costs (origination, title, appraisal) are NOT subject to the 4% cap — they are negotiated separately. A system that applies the 4% cap to ALL closing costs is wrong. Source: SRC-VA-FEE.
Governs income stability standards and the tax-free gross-up rule. The gross-up is the key complexity: it applies to DTI but NOT to residual income. If misapplied, both calculations are wrong.
VA_INC_001 [Income Stability Standard] Source: SRC-VA-ELIG Only include income streams that are:
// Same general principle as agency — verify source, history, continuance
VA_INC_002 [Tax-Free Income Gross-Up] Source: SRC-VA-CH4
IF income_stream_type = tax_free
(examples: disability compensation, Social Security, BAH in some cases)
THEN:
gross_up_allowed_for_dti = true
gross_up_allowed_for_residual_income = FALSE
// For DTI: use grossed-up amount as income in denominator
// For residual income: use ACTUAL net amount — no gross-up
// This means DTI and residual income will produce DIFFERENT numbers
// from the same income stream. Both must be computed separately.
9.3 Net Effective Income Derivation
The workbook takes net_effective_income as an input. In production, it must be derived as follows:
net_effective_income =
gross_monthly_income
- estimated_federal_income_tax
- estimated_state_income_tax
- social_security_fica (6.2% on applicable wages)
- medicare_fica (1.45% on applicable wages)
- other_mandatory_deductions
Source: VA Chapter 4 — use actual withholding from most recent paystub OR VA's published tax deduction tables if paystub is not available.
All 10 test cases computed against workbook rules. DTI highlighted gold when over 41% (120% rule triggered). Final loan amount highlighted green = Pass, red = Ineligible or Fail.
TC Purpose Gross / Net Shelter DTI Req Resid Act Resid 120% Thresh FF% Total Loan
purchase 1st use / 0%dn $9,000 $7,000 $3,150 42.8% $1,117 $3,150 $1,340 2.1% $408,600
purchase Subs. / 0%dn $9,000 $7,000 $3,150 42.8% $1,117 $3,150 $1,340 3.3% $413,200
purchase 1st use / 10.0%dn $8,500 $6,500 $2,720 39.1% $889 $3,180 $889 1.3% $354,375
cash_out_refinance 1st use / 0%dn $10,000 $7,600 $2,990 41.9% $738 $3,410 $886 2.1% $306,450
cash_out_refinance Subs. / 0%dn $10,000 $7,600 $2,990 41.9% $738 $3,410 $886 3.3% $309,900
Subs. / 0%dn $8,000 $6,300 $2,520 37.8% $823 $3,280 $823 0.5% $251,250
purchase 1st use / 0%dn $9,200 $7,100 $3,290 42.8% $1,117 $3,160 $1,340 0.0% $425,000
purchase 1st use / 0%dn $7,000 $5,000 $2,860 53.7% $1,003 $1,240 $1,204 2.1% $357,525
purchase 1st use / 0%dn $7,000 $6,500 $2,860 53.7% $1,003 $2,740 $1,204 2.1% $357,525
purchase 1st use / 0%dn $8,000 $6,200 $2,590 41.1% $990 $2,910 $1,188 2.1% $331,988
Input Value Loan Amount $400,000 Gross Monthly Income $9,000 Net Effective Income $7,000 Monthly Debt Obligations $700 Shelter Expense (P&I+Tax+Ins+Maint) $3,150 DTI = (3,150+700)/9,000
Required Residual (Family 4, West, 80k+) $1,117 120% Threshold = $1,117 x 1.20 $1,340 Actual Residual = 7,000-3,150-700 $3,150 $3,150 >= $1,340?
Funding Fee (1st use, 0% down) 2.15% = $8,600 Total Loan (fee financed) $408,600
Calculation Step TC08 (Lower Net Income) TC09 (Higher Net Income) Gross Monthly Income $7,000 $7,000 Net Effective Income $5,000 $6,500 Monthly Shelter Expense $2,860 $2,860 Monthly Debt Obligations $900 $900 DTI 53.7% — Over 41% 53.7% — Over 41% Required Residual (Family 4, South) $1,003 $1,003 120% Threshold = $1,003 x 1.20 $1,204 $1,204 Actual Residual = Net - Shelter - Debt $5,000-$2,860-$900 = $1,240 $6,500-$2,860-$900 = $2,740 Actual >= 120% Threshold? $1,240 >= $1,204 — PASS $2,740 >= $1,204 — PASS IMPORTANT: TC08 shows the 120% rule working correctly. The workbook Expected_Result column labeled TC08 as 'Fail 120% rule' — this is a labeling error in the workbook. The formula and computed math both produce a PASS. BIX should implement the math as defined above — TC08 is a pass.
Check Result va_loan_purpose purchase occupancy_intent investment VA_ELIG_003 fires? YES — purchase + non-primary program_status INELIGIBLE — Hard Gate Residual income evaluated? NO — downstream objects do not run
Rule Reason / Consequence of Violation Never apply Fannie Mae underwriting rules to VA loans DTI limits, LTV rules, credit score floors, and income treatment differ fundamentally. Cross-contamination produces wrong qualification results. Residual income is always required for purchase and cash-out VA_DTI_002 does not replace the residual income test. Both must be computed. DTI alone cannot qualify or disqualify a VA loan. DTI is a benchmark, not a hard stop 41% is a threshold that triggers the 120% residual rule, not an automatic decline. A VA borrower with DTI of 55% and strong residual income is not automatically disqualified. Keep Ginnie Mae in a separate module Ginnie governs securitization and delivery. It does not set borrower eligibility, DTI limits, or underwriting standards. Mixing Ginnie and VA rules is a hard architectural error. Two income variables — not one gross_monthly_income feeds DTI. net_effective_income feeds residual income. Same borrower, different numbers. One variable breaks both calculations. Tax-free gross-up: DTI yes / Residual income NO Applying gross-up to residual income inflates the residual income result and misrepresents the borrower's actual financial position. IRRRL is its own rule tree Do not reuse purchase or cash-out logic for IRRRL. IRRRL bypasses residual income, income verification, credit, and appraisal in most cases. Fee is always 0.50% regardless of use count or down payment. Treat lender overlays as a separate layer Do not hardcode lender-specific credit score floors, DTI overlays, or reserve requirements into base VA rules. Both residual income tables must be implemented Loans below $80,000 use a different (lower) table. Using the 80k+ table for all loans produces a higher required residual for small loans. Seller concession cap applies to concessions — not all closing costs Standard closing costs (origination, title, appraisal) are outside the 4% cap. Only seller-paid concessions (prepaid items, buydowns above 2 points, etc.) count toward the cap.
When the Clarity Engine presents VA outcomes to borrowers through the Nova interface, the following rules apply:
Component Section Ref
VA eligibility validator — 5 rules, 6 fields, produces program_status enum Section 3
Entitlement calculator — 2 rules, 7 fields, produces required_down_payment_amount Section 4
Loan purpose router — 4 branches, gates downstream objects (IRRRL bypasses Objects 4, 7) Section 5
Residual income engine — 6 calculation steps, 2 lookup tables (80k+ and Under80k), 4 regions, family sizes 1-5+ Section 6
Funding fee calculator — exemption check first, 3-path lookup (purchase/cash-out/IRRRL), financed fee triggers LTV + payment recalc Section 7
Closing cost validator — 2 rules, closing cost vs. seller concession distinction enforced Section 8
Income handler — tax-free gross-up for DTI only, net_effective_income derivation logic Section 9
Regression test suite — all 10 test cases with computed expected outputs, including TC08 correct pass result Section 10
Ginnie_Execution_Module scaffolded as separate service — does not touch borrower underwriting logic Section 1.4
Overlay layer scaffolded as separate service — no lender overlays in base VA rules Section 11.1
Clarity Engine VA Module PRD v1.0 | CONFIDENTIAL | PreFi, Inc. / Purpose Technology, Inc. d/b/a Purlend