Hpml Rate Spread Calculator

HPML Rate Spread Calculator

Section 35 Compliance & Regulation Z Verification

First Lien (Non-Jumbo) Jumbo First Lien Subordinate (Second) Lien Select the appropriate threshold based on the loan position.
Calculated Rate Spread: 0.00%
Applicable Threshold: 1.50%

Understanding the HPML Rate Spread

A Higher-Priced Mortgage Loan (HPML) is defined under Regulation Z (Section 1026.35) as a consumer credit transaction secured by the consumer's principal dwelling with an Annual Percentage Rate (APR) that exceeds the Average Prime Offer Rate (APOR) by a specific threshold.

How is the Spread Calculated?

The calculation is simple but critical for regulatory compliance:
Rate Spread = Loan APR – APOR Rate

Regulatory Thresholds:

  • 1.5 percentage points for first-lien loans.
  • 2.5 percentage points for first-lien "Jumbo" loans (where the principal amount exceeds Freddie Mac/Fannie Mae limits).
  • 3.5 percentage points for subordinate (second) lien loans.

Why Does HPML Classification Matter?

If a loan is classified as an HPML, lenders must adhere to stricter requirements, including:

  • Escrow Requirements: Mandatory escrow accounts for property taxes and insurance for at least five years.
  • Appraisal Requirements: In some cases, a written appraisal and a second appraisal for "flipped" properties may be required.
  • Ability to Repay: Lenders must verify the consumer's ability to repay the loan.
Note: APOR rates are updated weekly by the FFIEC. Ensure you use the APOR rate in effect as of the date the interest rate for the loan was set.
function calculateHPML() { var apr = parseFloat(document.getElementById('loanApr').value); var apor = parseFloat(document.getElementById('aporRate').value); var threshold = parseFloat(document.getElementById('lienStatus').value); var resultBox = document.getElementById('spreadResultBox'); var spreadDisplay = document.getElementById('rateSpreadDisplay'); var thresholdDisplay = document.getElementById('thresholdDisplay'); var statusBox = document.getElementById('hpmlStatus'); if (isNaN(apr) || isNaN(apor)) { alert("Please enter valid numeric values for APR and APOR."); return; } var spread = apr – apor; var formattedSpread = spread.toFixed(3); // Display basic numbers resultBox.style.display = "block"; spreadDisplay.innerText = formattedSpread + "%"; thresholdDisplay.innerText = threshold.toFixed(2) + "%"; // Logic Check if (spread >= threshold) { statusBox.innerText = "CLASSIFICATION: HPML (Higher-Priced Mortgage Loan)"; statusBox.style.backgroundColor = "#ffe6e6"; statusBox.style.color = "#cc0000"; statusBox.style.border = "1px solid #cc0000"; } else { statusBox.innerText = "CLASSIFICATION: Non-HPML"; statusBox.style.backgroundColor = "#e6ffed"; statusBox.style.color = "#28a745"; statusBox.style.border = "1px solid #28a745"; } // Scroll to result resultBox.scrollIntoView({ behavior: 'smooth', block: 'nearest' }); }

Leave a Comment