Welcome to The Mortgage LLM
The Mortgage LLM is a housing finance information and decision support platform, built from the ground up for mortgage professionals. Use the sidebar to explore features of the platform, or start below to see what’s new.
Anonymous vs signed in
The Mortgage LLM is free to use without signing in. Signing in (Google or Microsoft, no credit card) gives you a higher daily allowance, a saved chat history, and the persistent context that lets you reopen prior conversations.
| Capability | Anonymous | Signed in (free) |
|---|---|---|
| Chat queries | 10 per day | 100 per day |
| Loan-scoring calls | 10 per day (separate quota) | 20 per day (separate quota) |
| Conversation context | Last 3 turns held in memory; cleared on tab close | Last 3 turns in memory + full chat persisted server-side |
| Chat history sidebar | — | Coming soon |
| Eligibility & scoring models | All models accessible (same quality) | All models accessible (same quality) |
| Insights, User Guide, API connectors | Full access | Full access |
The platform itself — the models, the data, the eligibility engine, the User Guide — works identically for both tiers. The signed-in differences are operational: higher allowance, durable chat history, and (soon) the sidebar UI that lets you reopen prior conversations.
See our Privacy Policy for details on what we persist for signed-in users and how to request deletion.
What’s New
Pricing · LLPA / Credit Fees in Price analysis (Fannie + Freddie)
May 2026
New analytical capability: ask the Mortgage LLM about loan-level price adjustments — Fannie Mae’s LLPAs and Freddie Mac’s Credit Fees in Price — for any vintage from July 2017 through present. The platform now carries cell-by-cell encoded grids from 11 vintage snapshots (5 Fannie + 5 Freddie + a pre-2021 Freddie proxy), covering every published Lender Letter, Exhibit 19 revision, and the FHFA-aligned May 2023 redesign.
What you can ask:
- Per-loan LLPA lookup — “What LLPA did a Fannie 720-FICO / 80% LTV purchase loan in 2019 pay?”
- Cohort averages, loan-weighted — “How much did 740+ FICO Fannie borrowers actually pay in upfront LLPA from 2018 through 2024?”
- Cross-vintage comparison — “How did the May 2023 redesign shift average LLPA paid by FICO band?”
- Cross-GSE alignment — “Compare Fannie vs Freddie LLPA on identical-characteristic loans, May 2023 onward” (the grids are FHFA-aligned cell-for-cell on the base FICO × LTV cells).
- Empirical “was the risk premium earned?” — “Did 2018-2020 Fannie purchase LLPAs exceed realized credit losses on the 740+ FICO cohort?”
- Cross-subsidy / redesign analyses — “Which FICO bands paid more after the May 2023 grid changes, and which paid less?”
What’s in the matrix:
base grids (FICO × LTV per loan purpose),
attribute add-ons (investment property, condo,
second home, manufactured home, high-balance / super conforming,
2-4 unit, subordinate financing, ARM, alt FICO), Minimum MI
coverage option grids, waiver and cap rows (HomeReady, Home
Possible, FTHB ≤100% AMI, Duty-to-Serve), and dollar credits
(HomeStyle Energy, RefiNow, HomePath, HomeReady VLIP,
GreenCHOICE, Refi Possible). Total: ~4,461 vintage-keyed cells.
Who finds this useful:
- Loan officers — for point-of-counsel borrower advice (run sensitivity tests, catch the May 2023 cross-subsidy traps, give borrowers specific dollar-amount savings tied to actions they can take). See worked examples in the Origination use case.
- Capital markets / secondary marketing desks — for best-execution analysis between Fannie and Freddie, cohort-level P&L attribution (LLPA collected vs realized losses), May 2023 LLPA redesign cohort exposure for MSR / CPR re-marking, and pipeline LLPA distribution for rate-sheet calibration. See worked examples in the Capital Markets use case.
Scoring Models · Appraisal Waiver Probability (PIW / Value Acceptance / ACE)
May 2026
New scoring model rating the probability that a conventional conforming loan will be granted an appraisal waiver — Fannie Mae’s Value Acceptance (formerly Property Inspection Waiver / PIW) or Freddie Mac’s Automated Collateral Evaluation (ACE) — instead of requiring a traditional full appraisal. Trained on 22.4M Fannie SFP and Freddie STACR acquisitions, 2018-2023; tested OOT on 2.6M loans from 2024-2025: AUC 0.85 (random-split within the train window: 0.93). Isotonic-calibrated; ECE 0.0008. The positive class bundles pure Value Acceptance (“Waiver Only”) with Fannie’s 2024 Value-Acceptance-Plus-PDC expansion (“Waiver + Property Data”) — both are appraisal-free from the borrower’s perspective.
Why it matters. When a loan qualifies for a waiver, the borrower saves $500-700 on the appraisal fee and the file closes 7-10 days faster (no appraiser scheduling, no comparable-sales review cycle). On the lender side, waiver-eligible files require less collateral-specific QC and free up appraisal-management capacity for the loans that actually need it. Knowing the waiver probability before running through DU/LPA is operationally useful for LO intake messaging, pricing strategy (tighter rate/cost quotes when waiver is likely), and pipeline planning.
Position it correctly. The GSE’s authoritative waiver decision uses property-specific data that lives only inside Fannie / Freddie — Collateral Underwriter database depth on the subject address, neighborhood comparable density, prior valuation history. This model captures the structural-eligibility signal from the features we DO have (loan purpose, LTV, FICO, occupancy, property type, vintage, originator) but cannot match the GSE’s precision on property-level questions. It’s a pre-DU/LPA heuristic, not a substitute for automated underwriting.
Scope. Conventional conforming only. FHA / VA / USDA / jumbo / portfolio-held loans follow entirely different appraisal regimes and are out of scope.
Scoring Models · Credit Approval Probability (sibling of Denial)
May 2026
Positive-framing sibling of the Credit Denial Probability model.
Scores the same HMDA application universe but targets the lender
approval decision (action_taken IN ('1','2') —
originated OR approved-but-not-accepted) rather than the denial
decision. Same architecture, same input schema, same train /
calibrate / OOT split — only the target column differs.
Why both? The two probabilities don’t sum
to 1.0 because the application universe includes withdrawn and
file-closed-for-incompleteness outcomes
(action_taken IN ('4','5')) where no final decision
was rendered — typically 15-20% of HMDA applications.
That gap is real, so we ship both surfaces rather than just one
and its inverse: denial serves risk management
and fair-lending review (denial-rate analysis is the regulated
metric); approval serves loan-officer triage,
lead prioritization, and borrower-facing workflows where the
positive directional tone is the right framing.
Pair with the pull-through model for a joint funding-probability estimate: P(funded | application) ≈ P(approved) × P(pull-through | approved).
Eligibility · GSE Eligibility Check (Fannie + Freddie)
May 2026
Check any loan against Fannie Mae’s Eligibility Matrix and Freddie Mac’s Single-Family Seller/Servicer Guide (Chapter 4203) in a single chat query. The response stacks both GSE verdicts side-by-side, showing every LTV / TLTV / HCLTV / FICO / DTI check each matrix ran and the specific Selling Guide section (B2-1.5-02, 4203.1(b)(ii), etc.) cited on any failures. Built for loan-officer triage before a Desktop Underwriter or Loan Product Advisor submission.
Why it matters. Fannie and Freddie matrices are similar but not identical — the divergences decide which channel a loan can actually go to. Two concrete cases the dual check surfaces today: Fannie permits a 97% LTV FRM purchase for first-time homebuyers while Freddie’s standard tier caps at 95% (HomeOne carries the 97% ceiling on the Freddie side); Fannie tightens 1-unit investment limited cash-out refi to 75% LTV while Freddie lumps purchase + LCOR at 85% for the same segment. The same loan can be deliverable to one GSE and not the other.
Currently codifies the standard-product grid only — high-balance / super-conforming overlays, Community Seconds exceptions, non-occupant overlays, and specialty products (HomeReady, Home Possible, HomeOne, CHOICE Renovation, High-LTV Refi, Refi Possible) are not yet codified and trigger a manual-review disposition. The codified rules are versioned by Selling Guide publication date so refreshes are explicit.
› See sample prompts + full responses, including both divergence cases
Chat UX · Cleaner result panel
May 2026
The result tabs (Table, Graph, SQL) now show only when they have content. Eligibility responses show Summary + Table only; clarifications show just Summary; SQL queries with empty result sets hide Table and Graph but keep SQL visible for inspection. Less clutter when a tab has nothing useful to render.
Scoring Models · How to read these AUC numbers
May 2026
Every scoring-model card below reports two AUCs — in-cohort random-split (the ceiling, given the training cohort) and cross-cycle on a held-out year range (the honest "how does this generalize" number). The OOT AUCs range from 0.72 (Repurchase) to 0.92 (Pull-through). Three points worth understanding before evaluating any individual number.
1. AUC bars differ by problem class. "Good" AUC depends on what's being predicted. Approve / decline at application typically lands in the 0.85-0.95 band (rich signal from credit + DTI + LTV). EPD 12-mo lands at 0.78-0.88. Long-horizon EPD (24 / 36-mo) lands at 0.72-0.82 because macro and home-price effects creep in. Repurchase / R&W defect lands at 0.65-0.78 because the defect cause (UW error, fraud, doc deficiency) is often not in the loan-feature payload at all. Our models land at the upper end of their respective bands — Repurchase at 0.72 OOT is above typical for repurchase models.
2. The OOT vs in-cohort gap is the cycle-shift signal. A small gap (Pull-through: -0.7 pp, Denial: 0.0 pp) means the model is largely cycle-stable — it's learning structural patterns (lender process, applicant credit profile) that don't depend on the rate environment. A larger gap (EPD 36-mo: -11 pp) means the model is more sensitive to the macro cycle, which is expected for long-horizon credit predictions that necessarily extrapolate over a moving home- price + unemployment + rate path. Larger gaps aren't pathological; they're informative about what the model can't see.
3. Calibration matters more than AUC for operational use. AUC measures rank-ordering — "does the model put higher-risk loans above lower-risk ones?" Calibration (ECE) measures absolute accuracy — "if the model says 5% chance, do 5% actually default?" All our models have ECE ≤ 0.0004 after isotonic calibration (near-perfect). For reserve setting, pricing tiers, and expected-loss math, calibration is the binding constraint — an AUC 0.72 + ECE 0.0004 model is operationally better than an AUC 0.85 + ECE 0.05 model.
Decision-use bars. Each model is positioned for a specific decision use, which determines the AUC bar:
- Decline gates (pre-funding accept / reject) need AUC ≥ 0.85. Use Denial (0.91 OOT) and HPML (0.87 OOT) here. Do NOT use Repurchase or long-horizon EPD for decline gates.
- LLPA pricing tiers need AUC ≥ 0.75. EPD 12-mo (0.83), EPD 24-mo (0.78), and GNMA EPD (0.76) clear this bar; calibration carries the dollar precision.
- Reserve setting + benchmarking need AUC ≥ 0.70 plus tight calibration. Repurchase (0.72) and EPD 36-mo (0.75) are fit for this purpose.
- Pipeline hedge sizing + capacity planning need cycle-stable rank-ordering. Pull-through (0.92) is the cleanest signal we have for this use.
Read each model card with its intended use case in mind — the AUC you should require depends on the decision you're using the model to support.
Scoring Models · Repurchase-risk scoring (v4)
May 2026
Gradient-boosting model rating a Fannie or Freddie loan’s probability of being repurchased for rep-and-warranty defect. Trained on the 2013-2023 GSE cohorts (28M+ loans), tested on 2024-2025: AUC 0.72 — the cross-cycle generalization number. (For comparison, a random-split test within 2013-2023 gives AUC 0.81 — the in-cohort upper bound.) Isotonic-calibrated; the 11-year training window spans distinct rate regimes (post-crisis QM, 2021 refi boom, 2022-23 rate spike) for cycle-robust generalization. Use it for post-funding QC, R&W reserve setting, MSR risk adjustment.
Why it matters. Repurchase events are rare (~0.13-0.24% by vintage from our Rule 33 work) but expensive — typically $30-50K per loan in scratch-and-dent loss for the originator. Price R&W exposure into your origination tiers: for high-repurchase-risk profiles, retain more loan-level scrutiny pre-funding, charge a higher upfront margin, or route to channels with lower R&W exposure.
› Try it on the home page (Loan-level model scoring → Repurchase risk)
Scoring Models · Prepayment 12-mo
May 2026
Gradient-boosting classifier rating a Fannie or Freddie loan’s probability of prepayment (zero_balance_code = '01', Prepaid or Matured) within the first 12 months of loan age. Trained on the 2013-2023 GSE cohorts (~25M loans, isotonic- calibrated). Use for MSR valuation sensitivity, pipeline lock-desk risk, and pool composition (fast-pay vs slow-pay MBS routing).
Why it matters. Prepayment speed is the single biggest swing factor in MSR valuation — a 1 CPR misprediction compounds to roughly 10-15% of MSR value over an asset's life. Use the 12-mo signal pre-funding to route fast-pay loans toward TBA premium pools (or sell MSR upfront where you can’t make the carry work) and retain slow-pay loans where the future income stream is durable. For pipeline desks, flagged fast-pay loans warrant tighter lock-period rate or float-down restrictions.
› Try it on the home page (Loan-level model scoring → Prepayment 12-mo)
Scoring Models · Prepayment 24-mo
May 2026
Same loan-feature schema as Prepayment 12-mo, but predicts cumulative prepayment probability within the first 24 months. Captures more of the typical refi window peak and is most useful for MSR hedging horizons of 1-2 years.
Why it matters. The 24-mo horizon captures most of the typical refi-window peak. Pair the 12/24/36-mo predictions to build a per-loan cumulative-prepay curve and compare against your vintage benchmark — material divergence is where MSR mismarking lives. Most useful for 1-2 year MSR hedging horizons: receiver swaptions, floored payor swaps, cohort-level CPR projections.
› Try it on the home page (Loan-level model scoring → Prepayment 24-mo)
Scoring Models · Prepayment 36-mo
May 2026
Predicts cumulative prepayment probability within the first 36 months — the bulk of the refi-burnout window for typical 30-year fixed product. Trained on 2013-2022 cohorts (last fully-observable 36-mo window through 2026-04). Useful for long-horizon CPR projections and MBS pricing assumptions. The three horizons together (12 / 24 / 36 mo) form a per-loan cumulative-prepay curve.
Why it matters. Captures the bulk of the refi-burnout window for 30-year fixed product. Drives long- horizon CPR projections for MBS pricing and the trailing-end of MSR carrying value. Together with the 12/24-mo predictions, you get a per-loan cumulative-prepay curve you can plot directly against the empirical vintage benchmarks below for cohort sanity-checks.
› Try it on the home page (Loan-level model scoring → Prepayment 36-mo)
Scoring Models · EPD 12-mo (v2)
May 2026
Gradient-boosting model rating a loan’s probability of reaching 60+ days delinquent within the first 12 months post-origination — the industry-standard Early Payment Default definition. Trained on the 2013-2023 GSE cohorts (22M loans), tested on 2024: AUC 0.83 (cross-cycle holdout; a random-split test within 2013-2023 gives AUC 0.88 for the in-cohort upper bound). Isotonic- calibrated. Use it for pre-funding pricing tiers, LLPA surcharges, and originator-quality benchmarking.
Why it matters. EPD is the industry’s leading edge of credit risk: ~0.7% baseline on GSE conforming, but each signal carries roughly $10K in expected impact — LLPA surcharges (~25-100 bps), reserve allocation, and the fact that ~15% of EPDs ultimately convert to repurchases. Price the prediction into your pre-funding LLPA tier, escalate elevated profiles to manual UW review, and use the signal as an originator-quality benchmark across your correspondent or broker panel.
› Try it on the home page (Loan-level model scoring → EPD 12-mo)
Scoring Models · EPD 24-mo
May 2026
Same loan-level feature schema as EPD 12-mo, but predicts the probability of 60+ DQ within the first 24 months post-origination. Trained on 2013-2023 GSE cohorts (19M loans), tested on 2024: AUC 0.78 (cross-cycle holdout; a random-split test within 2013-2023 gives AUC 0.87). Isotonic-calibrated. Use it for mid-life risk pricing and reserve setting (the 12-mo horizon misses ~half of all first-24-mo defaults).
Why it matters. The 12-mo horizon misses roughly half of the defaults that emerge in the first two years. Use 24-mo EPD for mid-life pricing, reserve setting, and credit-cycle stress testing — particularly important for loans funded into a tightening macro environment where 13-24 month delinquencies dominate the loss profile and short-horizon performance flatters the book.
› Try it on the home page (Loan-level model scoring → EPD 24-mo)
Scoring Models · EPD 36-mo
May 2026
Same feature schema, predicts 60+ DQ within the first 36 months. Trained on 2013-2022 GSE cohorts (16M loans, 36-mo fully observable through 2026-04), tested on 2023: AUC 0.75 (cross-cycle holdout; random-split within 2013-2022 gives AUC 0.86). Isotonic- calibrated. Captures full-cycle DQ risk including the refi-window peak; useful for long-horizon credit-risk modeling and CRT pool composition.
Why it matters. Captures the full first-cycle credit risk including the refi-window peak. Drives long-horizon credit modeling, CRT pool composition decisions, and reserve curves for new-vintage originations. Pair with the 12/24-mo predictions to flag profiles where strong short-term performance under-prices the longer-tail risk.
› Try it on the home page (Loan-level model scoring → EPD 36-mo)
Scoring Models · GNMA EPD (FHA / VA / USDA / PIH)
May 2026
Government-insured EPD model. Same 60+DQ-within-12mo target as the GSE EPD model, but trained on Ginnie Mae loan-level data (FHA / VA / USDA-RD / Native American PIH). Trained on 2018-2023 GNMA cohorts (6M loans), tested on 2024: AUC 0.76 (cross-cycle holdout; random-split within 2018-2023 gives AUC 0.81). Isotonic-calibrated. Per-agency AUC: VA 0.85, PIH 0.83, USDA 0.81, FHA 0.78.
Input schema differs from the GSE models —
uses agency (F/V/R/N), credit_score
(not borrower_fico), ltv (not
original_ltv), upfront_mip_rate,
annual_mip_rate, etc. See the API connector below
for the full schema.
Why it matters. Government-insured loans run structurally higher early-default risk than GSE conforming (1.5-2x baseline), and the loss economics are different — FHA’s MIP doesn’t fully cover servicer P&I advances or HUD-claim haircuts, and VA no-down-payment loans concentrate first-time-buyer risk. Price elevated GNMA EPD profiles into a tighter origination overlay, escalate marginal FICO/DTI applications, and use the per-agency calibration (VA / FHA / USDA / PIH each get distinct band thresholds) for product-mix decisions.
› Try it on the home page (Loan-level model scoring → GNMA EPD)
Scoring Models · Fannie vs Freddie channel choice
May 2026
For a given loan that's eligible for both GSEs, predicts which
channel produces lower expected loss. S-learner
architecture: scores the loan with source='FNM_SFP'
and source='FRE' against the existing repurchase
v4 + EPD 12-mo / 24-mo / 36-mo models, then computes:
- Per-channel repurchase probability and 12/24/36-mo cumulative DQ probability
- Per-channel expected loss in dollars (assuming
~$200K loss per repurchase, ~$10K cost per EPD signal —
tweakable per-request via the
loss_per_repurchase_usdandloss_per_epd_usdfields). - Recommended channel + plain-English rationale.
Use it for pre-funding GSE delivery routing decisions. Pair with the empirical curves below for benchmark sanity.
No single-classifier AUC. Channel Choice is a composition, not a separately-trained classifier — its accuracy inherits from the underlying Repurchase (0.72 OOT) and EPD 12 / 24 / 36-mo models (0.83 / 0.78 / 0.75 OOT). The counterfactual ("what would this loan have done at Fannie if we routed it to Freddie?") isn’t observable in production data, so there’s no ground truth for a per-loan routing-accuracy AUC.
Why it matters. A 5-10 bps expected-loss differential on a $300K loan is $15-30 per loan — modest single-loan, but for a mid-size shop running 100K originations a year that’s $1.5-3M annually captured by routing optimally rather than ad-hoc. The model surfaces a dollar-quantified preferred channel per loan, so routing becomes data-driven instead of pricing-grid-of-the-week.
› Try it on the home page (Loan-level model scoring → Fannie vs Freddie channel choice)
Scoring Models · Higher-Priced loan (HPML)
May 2026
Gradient-boosting classifier rating a HMDA-style loan application’s probability of pricing into a Higher-Priced Mortgage Loan under Reg Z: rate_spread ≥ 1.5 pp for first liens (≥ 3.5 pp for subordinate liens), OR HOEPA-flagged. Trained on the 2018-2023 HMDA Snapshot LAR (60.9M originated loans), tested on 2024-2025 (13.0M originations): AUC 0.87 (cross-cycle holdout; random-split within 2018-2023 gives AUC 0.93). Isotonic-calibrated; calibration is near-perfect (ECE = 0.0003 on test, Brier 0.035). Use it pre-funding to flag the operational treatment HPML loans require — escrow, appraisal, ATR documentation — and to confirm pricing-tier alignment with the originator’s HPML policy.
Empirical HPML rate (2018-2023, post-Reg-Z-Exempt-cleanup): ~5.8%. Top predictors: lender (LEI), loan type (FHA / VA / USDA mix), CLTV, loan amount, loan purpose, and loan-to-income ratio.
Why it matters. HPML status triggers Reg Z operational requirements — escrow account mandate, full appraisal protections, expanded ATR documentation — that add roughly $300-500 per file in build cost and create CFPB / examiner compliance exposure (findings can run $5-25K per loan) if missed. Use the prediction pre-funding to flag the file for HPML-specific build on day one, and verify pricing-tier supports the APR build. Particularly material for FHA / VA channels where ~14% of originations price into HPML.
› Try it on the home page (Loan-level model scoring → Higher-Priced loan)
Scoring Models · Credit Approval Probability
May 2026
Gradient-boosting classifier rating the probability that a HMDA
application receives a lender approval decision
(action_taken IN ('1','2') — originated OR
approved-but-not-accepted). Positive-framing sibling of the
Credit Denial Probability model — same HMDA universe,
same input schema, same calibrated-binary architecture, opposite
target. Trained on the 2018-2023 HMDA Snapshot LAR (49M
applications, 50% deterministic sample of the ~99M-app
universe), tested on 2024-2025 (22.5M apps): AUC 0.94
(in-cohort random split: 0.95). Isotonic-calibrated;
calibration is near-perfect (ECE = 0.0003 on test). Empirical
approval rate ~65% in train (62% in OOT — reflects
ongoing credit tightening). class_weight=None
(approval is the majority class so balancing would degrade
calibration on the approval side).
Why ship Approval AND Denial? The two
probabilities do NOT sum to 1.0 because the application
universe includes withdrawn / file-closed-for-incompleteness
outcomes (action_taken IN ('4','5')) where the
lender never rendered a final decision — typically 15-20%
of HMDA applications. That gap is real and operationally
meaningful, so the two surfaces serve different audiences.
Denial is the right surface for risk
management, fair-lending self-assessment, and exam-defense
workflows (regulators ask about denial rates and disparate
denial outcomes). Approval is the right
surface for loan-officer triage, lead prioritization, and any
borrower-facing context where the directional tone of
“78% likely to be approved” reads better than
“22% likely to be denied.” Same numeric
information, different framing for different users.
Pair with pull-through for the joint funding
probability:
P(funded | application) ≈ P(approved) ×
P(pull-through | approved). The two models score the
same application universe, so the multiplication is
apples-to-apples on the denominator.
Not an adverse-action driver. Approval here means a lender approval decision was rendered, not that the file ultimately funded. Treat the probability as a screening signal — useful for lead workflow and triage — but not as documentation supporting an actual credit approval.
› Try it on the home page (Loan-level model scoring → Credit Approval Probability)
Scoring Models · Pull-through (application → origination)
May 2026
Gradient-boosting classifier rating the probability that a HMDA-style application closes as an originated loan (action_taken = 1). Trained on the 2018-2023 HMDA Snapshot LAR (49M applications, 50% deterministic sample of the ~99M-app universe), tested on 2024-2025 (22.5M apps): AUC 0.92 (cross-cycle holdout; random-split within 2018-2023 gives AUC 0.93). Isotonic-calibrated; calibration is near-perfect (ECE = 0.0004 on test). Industry baseline pull-through across the training window is 61.7%. Same HMDA- style input schema as the HPML and denial models.
Why it matters. Pull-through is the single biggest driver of pipeline-hedge sizing accuracy: a 5-point miss on close rate compounds to a multi-million-dollar mark-to-market gap for a $1B / month originator (over-hedged or under-hedged into a rate move). Use the per-application prediction for secondary-marketing lock coverage, lead-quality pricing, and capacity planning — staff UW to expected close volume, not expected application volume. Also a sharp originator-quality benchmark: a broker panel running 5 pp below market on similar applications is signaling process friction.
› Try it on the home page (Loan-level model scoring → Pull-through)
Scoring Models · Credit Denial Probability
May 2026
Gradient-boosting classifier rating the probability that an
application is denied for credit reasons (action_taken = 3).
Trained on the 2018-2023 HMDA Snapshot LAR (49M
applications, 50% deterministic sample of the ~99M-app universe),
tested on 2024-2025 (22.5M apps): AUC 0.91 (cross-cycle
holdout; random-split within 2018-2023 gives AUC 0.91).
Isotonic-calibrated; calibration is near-perfect (ECE = 0.0004
on test). Empirical denial rate ~15.7% in train, 18.7% in OOT
(2024-2025 reflects continued credit tightening);
class_weight="balanced" applied. Same HMDA-style
input schema.
Why it matters. Denial probability matters in
three directions. (1) Lead pricing —
scoring leads pre-credit-pull saves $30-60 per
wasted hard inquiry in originator cost plus the
applicant-side credit-score impact. (2) Fair-lending
self-assessment — pair the predicted denial
probability with the realized decision to surface unexplained
outcome gaps for compliance review (do NOT use the model output
as the denial reason — it's a screen, not an adverse-
action driver). (3) Counter-offer / channel-fit
routing — the model’s loan_type
feature distinguishes Conventional / FHA / VA / USDA, so you can
score the same applicant twice (e.g. loan_type="1"
vs "2") and compare denial probabilities to find
the channel most likely to approve. Same S-learner pattern as
the Fannie-vs-Freddie channel-choice model. Captures volume
that would otherwise be lost to outright decline.
› Try it on the home page (Loan-level model scoring → Credit Denial Probability)
Scoring Models · Appraisal Waiver Probability (PIW / Value Acceptance / ACE)
May 2026
Gradient-boosting classifier rating the probability that a conventional conforming loan is granted an appraisal waiver — Fannie Mae’s Value Acceptance (formerly PIW) or Freddie Mac’s Automated Collateral Evaluation (ACE) — instead of requiring a traditional full appraisal. Trained on the 2018-2023 Fannie SFP + Freddie STACR acquisitions (22.4M loans after filtering out Freddie’s pre-2021 unpopulated rows), tested on 2024-2025 (2.6M loans): AUC 0.85 (in-cohort random split: 0.93). Isotonic-calibrated; calibration is near-perfect (ECE = 0.0008 on test). The positive class bundles “Waiver Only” with the 2024 “Waiver + Property Data” (PDC) expansion. Empirical waiver rate ~30% in train, ~18% in OOT (the GSE programs tightened after the 2020-2021 expansion).
Why it matters. A qualifying waiver saves the borrower $500-700 in appraisal cost and shortens close time by 7-10 days. On the lender side, waiver-eligible files free up appraisal-vendor capacity for the loans that actually need it. The model gives you a pre-AUS read on waiver likelihood: useful for LO intake messaging, pricing strategy (tighter rate/cost quotes when waiver is likely), and pipeline / appraisal-management capacity planning.
What it captures — and what it doesn’t.
Top features by permutation importance are
original_cltv, loan_purpose,
original_ltv, mi_percent,
original_upb, and origination_year.
That’s most of the structural-eligibility signal. What the
model can’t see: the GSE’s Collateral Underwriter
database depth on the subject address, neighborhood
comparable-sales density, prior valuation history on the
property. Those are property-specific signals that live inside
Fannie / Freddie and are not available to outside models.
Position the probability as a pre-DU/LPA
heuristic, never as a substitute for AUS — the
authoritative waiver decision is the AUS run.
Scope. Conventional conforming only. FHA / VA / USDA / jumbo / portfolio-held loans follow entirely different appraisal regimes and are out of scope for this model.
› Try it on the home page (Loan-level model scoring → Appraisal Waiver Probability)
Benchmarks · Historical 12/24/36-mo DPD curves
May 2026
Empirical cumulative 60+ days-delinquent rates per GSE source
and origination vintage, at 12 / 24 / 36 month loan-age
horizons. Computed directly from the loan-month history in
gse_loans and materialized to a small lookup
table. Use as a sanity-check benchmark for the channel-choice
model's per-loan predictions — e.g., if the model says a
Fannie loan has 0.4% predicted 36-mo EPD risk but the 2020
Fannie cohort empirically ran 2.2%, the model is forecasting
a notably-below-average loan.
Benchmarks · GNMA issuer name lookup
May 2026
A 332-row reference table (mortgage.gnma_issuers)
mapping Ginnie Mae 4-digit issuer IDs to human-readable issuer
names, loaded from the published "Ginnie Mae-Approved Single-
Family Issuers" and "Ginnie Mae-Approved Subservicers" master
files. The companion view gnma_loans_with_issuer
joins the mapping onto gnma_loans_raw by TWO
paths so query results expose readable names:
seller_issuer_name— original seller who pooled the loan (sparse — only ~0.4% of active loans).pool_issuer_name— current issuer of the pool this loan sits in (denser — ~30% of active loans, covering Custom / single-issuer pools).
The other ~70% of active GNMA loans sit in Multiple
Issuer Pools (MIPs). By design, MIPs aggregate loans
from multiple issuers into a single pool, so the pool itself
has no single issuer_id. Per-loan attribution within
a MIP lives in Ginnie Mae's separate "Single Family MIP
Issuance Detail" disclosure file (not yet loaded; on the
roadmap).
For full-portfolio originator share, query HMDA panel-level lender data instead (loan_type 2 / 3 / 4 covers FHA / VA / USDA) — every GNMA-eligible origination has a HMDA report with the originator's LEI.
API Connectors · Repurchase risk model
May 2026
Programmatic access to the repurchase scoring model. POST a loan-feature JSON, receive a calibrated probability + risk band.
POST /api/score_repurchase
Content-Type: application/json
{
"borrower_fico": 720,
"dti": 38,
"original_ltv": 80,
...
// Optional: "seller_name" (your originating lender) adds finer-grained
// signal; omit it for the population-baseline pattern.
}
Schema reference (request / response shape): GET /api/score_repurchase/schema
Model metadata (training cohort, AUC, calibration): GET /api/score_repurchase/info
API Connectors · Prepayment 12-mo model
May 2026
Programmatic access to the 12-mo cumulative prepayment classifier. Same loan-feature payload schema as the repurchase / EPD endpoints.
POST /api/score_prepay_12mo
Content-Type: application/json
{ ...same payload as /api/score_repurchase or /api/score_epd... }
Schema reference (request / response shape): GET /api/score_prepay_12mo/schema
Model metadata: GET /api/score_prepay_12mo/info
API Connectors · Prepayment 24-mo model
May 2026
Same payload schema as Prepayment 12-mo.
POST /api/score_prepay_24mo
Content-Type: application/json
{ ...same payload as /api/score_prepay_12mo... }
Schema reference (request / response shape): GET /api/score_prepay_24mo/schema
Model metadata: GET /api/score_prepay_24mo/info
API Connectors · Prepayment 36-mo model
May 2026
Same payload schema as Prepayment 12-mo / 24-mo.
POST /api/score_prepay_36mo
Content-Type: application/json
{ ...same payload as /api/score_prepay_12mo... }
Schema reference (request / response shape): GET /api/score_prepay_36mo/schema
Model metadata: GET /api/score_prepay_36mo/info
API Connectors · EPD 12-mo model
May 2026
Programmatic access to the 12-mo EPD scoring model. Same payload schema as the repurchase model.
POST /api/score_epd
Content-Type: application/json
{
"borrower_fico": 720,
"dti": 38,
"original_ltv": 80,
...
// Optional: "seller_name" (your originating lender) adds finer-grained
// signal; omit it for the population-baseline pattern.
}
Schema reference (request / response shape): GET /api/score_epd/schema
Model metadata: GET /api/score_epd/info
API Connectors · EPD 24-mo model
May 2026
Programmatic access to the 24-mo EPD scoring model. Same payload schema as EPD 12-mo. Output is the calibrated probability that the loan reaches 60+ DQ at any point within the first 24 months.
POST /api/score_epd_24mo
Content-Type: application/json
{ ...same payload as /api/score_epd... }
Schema reference (request / response shape): GET /api/score_epd_24mo/schema
Model metadata: GET /api/score_epd_24mo/info
API Connectors · EPD 36-mo model
May 2026
Programmatic access to the 36-mo EPD scoring model. Same payload schema as EPD 12-mo / 24-mo.
POST /api/score_epd_36mo
Content-Type: application/json
{ ...same payload as /api/score_epd... }
Schema reference (request / response shape): GET /api/score_epd_36mo/schema
Model metadata: GET /api/score_epd_36mo/info
API Connectors · GNMA EPD model
May 2026
Programmatic access to the government-insured EPD model
(FHA / VA / USDA-RD / PIH). Different payload schema
from the GSE models: uses agency, credit_score,
ltv, upfront_mip_rate,
annual_mip_rate, etc.
POST /api/score_gnma_epd
Content-Type: application/json
{
"agency": "F",
"credit_score": 680,
"ltv": 95,
"dti": 42,
"loan_interest_rate": 6.5,
"upfront_mip_rate": 1.75,
"annual_mip_rate": 0.55,
"state": "TX",
...
}
Schema reference (request / response shape): GET /api/score_gnma_epd/schema
Model metadata: GET /api/score_gnma_epd/info
API Connectors · Channel choice (Fannie vs Freddie)
May 2026
Programmatic access to the channel-choice S-learner. Same GSE
loan payload as the repurchase / EPD endpoints (no
source field needed — the endpoint scores
both internally). Optional: override loss assumptions per
request.
POST /api/score_channel_choice
Content-Type: application/json
{
"borrower_fico": 720,
"dti": 38,
"original_ltv": 80,
...
"loss_per_repurchase_usd": 200000, // optional, default 200000
"loss_per_epd_usd": 10000 // optional, default 10000
}
Returns: per-channel repurchase + 12/24/36-mo EPD probabilities, expected dollar losses, differential, recommended channel, and a horizon-by-horizon comparison.
Schema reference (request / response shape): GET /api/score_channel_choice/schema
Model metadata: GET /api/score_channel_choice/info
API Connectors · Higher-Priced loan (HPML)
May 2026
Programmatic access to the HPML scoring model. Payload
schema is HMDA-style, not GSE-style: send HMDA application
fields like loan_type, lien_status,
lei, derived_msa_md, cltv,
loan_to_income_ratio, etc. Output is the calibrated
probability that the originated loan will clear the Reg Z rate-
spread threshold, plus the risk band and operating recommendation.
POST /api/score_higher_priced
Content-Type: application/json
{
"loan_type": "2", // 1=Conv, 2=FHA, 3=VA, 4=USDA-RD
"lien_status": "1", // 1=first, 2=subordinate
"loan_purpose": "1", // 1=purchase, 31=refi, 32=cash-out refi
"occupancy_type": "1",
"cltv": 95,
"debt_to_income_ratio": ">60",
"loan_amount": 285000,
"property_value": 300000,
"state_code": "TX",
"lei": "549300...",
...
}
Schema reference (request / response shape): GET /api/score_higher_priced/schema
Model metadata: GET /api/score_higher_priced/info
API Connectors · Credit Approval Probability
May 2026
Programmatic access to the approval-probability model. Same
HMDA-style payload schema as the denial, pull-through, and HPML
models. Output is the calibrated probability that the lender
renders an approval decision (action_taken IN ('1','2')),
plus risk band and operating recommendation.
POST /api/score_approval
Content-Type: application/json
{ ...same payload shape as /api/score_denial and /api/score_pullthrough... }
Note: The approval probability is a pre-decision screening signal, not an underwriting decision. Use it for lead triage, originator quality benchmarking, and borrower-facing positive framing — not as documentation supporting an actual credit approval.
Schema reference (request / response shape): GET /api/score_approval/schema
Model metadata: GET /api/score_approval/info
API Connectors · Pull-through (application → origination)
May 2026
Programmatic access to the pull-through model. HMDA- style payload schema (same as HPML and denial models). Output is the calibrated probability that the application closes as an originated loan, plus risk band and operating recommendation.
POST /api/score_pullthrough
Content-Type: application/json
{
"loan_type": "1", // 1=Conv, 2=FHA, 3=VA, 4=USDA-RD
"lien_status": "1",
"loan_purpose": "1",
"occupancy_type": "1",
"cltv": 80,
"loan_amount": 350000,
"property_value": 437500,
"income": 120,
"loan_to_income_ratio": 2.92,
"state_code": "CA",
"lei": "549300...",
...
}
Schema reference (request / response shape): GET /api/score_pullthrough/schema
Model metadata: GET /api/score_pullthrough/info
API Connectors · Credit Denial Probability
May 2026
Programmatic access to the denial-probability model. Same HMDA- style payload schema as the pull-through and HPML models. Output is the calibrated probability of credit denial, plus risk band and operating recommendation.
POST /api/score_denial
Content-Type: application/json
{ ...same payload shape as /api/score_pullthrough... }
Note: The denial probability is a pre-decision screening signal, not an adverse-action driver. Use it to triage lead flow and flag fair-lending review candidates, but not as the documented reason for a credit decision.
Schema reference (request / response shape): GET /api/score_denial/schema
Model metadata: GET /api/score_denial/info
API Connectors · Appraisal Waiver Probability (PIW / Value Acceptance / ACE)
May 2026
Programmatic access to the appraisal-waiver model. GSE-acquisition payload schema (same shape as the repurchase / EPD / prepay models, with one additional numeric field). Output is the calibrated probability that the loan is granted a Fannie Value Acceptance or Freddie ACE waiver, plus risk band and operating recommendation.
POST /api/score_piw
Content-Type: application/json
{
"loan_purpose": "Refinance", // strongest single driver
"occupancy": "Owner-Occupied",
"property_type": "Single Family",
"borrower_fico": 740,
"original_ltv": 70,
"original_cltv": 70,
"dti": 36,
"original_upb": 350000,
"original_interest_rate": 6.25,
"product_type": "FRM",
"number_of_units": 1,
"first_time_homebuyer": "N"
...
// Optional: "seller_name" (your originating lender) and
// "property_state" add finer-grained signal. Omit them and
// the model uses the population-baseline pattern.
}
Note: The probability is a structural-eligibility signal, not a guaranteed outcome. The GSE’s authoritative waiver decision uses property-specific data this model can’t see (Collateral Underwriter database depth, neighborhood comp density, prior valuation history). Run the file through Desktop Underwriter or Loan Product Advisor for the actual collateral decision.
Schema reference (request / response shape): GET /api/score_piw/schema
Model metadata (training cohort, AUC, calibration): GET /api/score_piw/info
API Connectors · Empirical DPD curves
May 2026
Historical cumulative 60+ DQ rates per GSE source and origination vintage, at 12 / 24 / 36 month loan-age horizons. No payload — returns the full lookup table for both Fannie and Freddie across all available vintages.
GET /api/empirical_curves
Sample response shape:
{
"description": "Historical cumulative 60+ days-delinquent rates...",
"computed_at": "2026-05-14T03:54:26Z",
"curves": {
"FNM_SFP": [
{"vintage": "2020", "horizons": {
"12mo": {"n_observed": 4326863, "n_60dq": 58352, "rate_pct": 1.35},
"24mo": {"n_observed": 3982144, "n_60dq": 72077, "rate_pct": 1.81},
"36mo": {"n_observed": 3712091, "n_60dq": 81832, "rate_pct": 2.20}
}},
...
],
"FRE": [ ... ]
}
}
themortgagellm™