mortgagetape

‹ All scoring models

Scoring Models · EPO 6mo (broker commission-clawback risk within 6 months)

Category: Origination

What it does

Gradient-boosting classifier rating the probability that a Fannie-eligible conventional origination will either prepay or reach 30+ days delinquent within the first 6 months after funding — the standard event window in most wholesale originator comp agreements. Either event fires the broker's commission clawback, so the two outcomes are combined into a single "EPO" label. Trained on 16.4M Fannie SFP originations across 2018-2023 vintages, isotonic-calibrated, tested on 981K 2024 loans out-of-time: OOT AUC 0.68 (v1.1). Fair-lending AIR audit ACCEPTABLE across race (0.923), ethnicity (0.963), and sex (0.985) — well within the 4/5ths rule.

v1.1 refresh (2026-08-11): added a rate-incentive feature computed from Optimal Blue's live market feed. The scorer now compares the loan's note rate to today's prevailing 30yr conforming lock rate (and optionally to a broker-supplied forecast). OOT AUC improved 4pp (0.65 → 0.68) and the Test→OOT gap collapsed from 4pp to under 1pp — the model is much less regime-dependent than v1 was. Top driver is now refi_incentive_m6 = loan note rate minus expected market rate 6 months out.

Why it matters. A prepay or an early payment default inside the 6-month window means the broker forfeits their comp on that loan — often the entire origination margin. A pre-submission triage score lets you route the highest-risk files through a wholesale-lender partner with a shorter clawback window, negotiate a contingent-comp posture, or eat the risk knowingly rather than after the fact. Score the top-of-pipeline population once, filter to the top 5% or 10%, and route those specifically.

Tier-only output. The API returns a tier rankingtop 1% / top 5% / top 10% / within baseline — rather than a raw probability. The calibrator drifts materially on post-2023 vintages because prepay dynamics rebased after the 2022-23 rate shock, so absolute probabilities are unreliable. Tier ordering, on the other hand, is stable and is what a broker actually uses (triage, not underwriting math).

What it is NOT. This is a propensity signal, NOT an underwriting decision, NOT a DU/LPA substitute, NOT a compliance check. Fannie eligibility, LLPA pricing, agency guides are unchanged. This surfaces risk that would otherwise only become visible in the servicing tape 3-6 months later.

Universe note. Fannie SFP conventional originations only in v1 — a GNMA (FHA/VA/USDA) sibling is on the roadmap since government-loan broker economics have similar 6-month clawback structures but different prepay dynamics (Streamline / IRRRL / MIP effects). Freddie is excluded from v1 because the loan-level tape (STACR) is a CRT-referenced subset. Deliberately does NOT use seller/lender identity as a feature: ablation showed dropping seller_name cost only 0.4pp OOT AUC while eliminating 2.3pp of in-sample overfit — a cleaner, more portable model. Top drivers: origination_year, original_interest_rate, original_upb, borrower_fico, property_state, first_time_homebuyer, co_borrower_fico, loan_purpose, channel.

› Try it on the home page (Loan-level model scoring → EPO 6mo)

API connector

Programmatic access. Calibrated probability + risk band + operating recommendation in the response.

POST /api/score_epo_6mo
Content-Type: application/json

{
  "borrower_fico": 720,
  "co_borrower_fico": 700,
  "dti": 38,
  "original_ltv": 80,
  "original_cltv": 80,
  "original_upb": 350000,
  "original_interest_rate": 6.5,
  "original_loan_term_months": 360,
  "number_of_borrowers": 2,
  "loan_purpose": "P",           // P=purchase, R=refi, C=cash-out refi
  "channel": "R",                // R=retail, B=broker, C=correspondent
  "property_type": "SF",         // SF / CO / MF / MH etc.
  "occupancy": "P",              // P=primary, S=second, I=investor
  "first_time_homebuyer": "N",
  "property_state": "GA",
  "origination_year": "2026",
  "origination_month": "08"
}

Response includes risk_band (P99 / P95 / P90 / BASE), risk_percentile (e.g., "top 5% risk"), and a recommendation tuned to broker triage decisions (submit / re-quote / renegotiate comp). Deliberately does NOT include a raw probability — see the calibration note in the response and the /schema endpoint for the full response contract.

Schema reference (request / response shape): GET /api/score_epo_6mo/schema

Model metadata (training cohort, AUC, calibration): GET /api/score_epo_6mo/info

See also: How to read these AUC numbers.