Calculate the cost and potential savings of buying mortgage points to reduce your interest rate.
Summary of Your Mortgage Points Decision
Understanding and Calculating Mortgage Points
When you're obtaining a mortgage, you'll often encounter the term "points." A mortgage point is essentially a fee paid directly to the lender at closing in exchange for a reduction in the interest rate. Each point typically costs 1% of the loan amount. Buying points can be a strategic financial decision, but it's crucial to understand the math involved to determine if it's beneficial for your specific situation.
What are Mortgage Points?
There are two main types of points:
Discount Points: These are the points you buy to lower your interest rate. You pay them upfront at closing.
Origination Points: These are fees charged by the lender for processing the loan, and they are not typically negotiable or related to interest rate reduction. Our calculator focuses on discount points.
How Do Mortgage Points Work?
Lenders offer a baseline interest rate for a mortgage. For an additional upfront fee, they may offer to reduce that interest rate. The common convention is that one "point" costs 1% of the loan amount and can reduce the interest rate by a certain amount, often around 0.25% to 0.5%, though this can vary by lender and market conditions.
The goal of buying points is to save more money over the life of the loan through lower monthly payments than the upfront cost of the points.
The Math Behind the Calculation
Our calculator uses the following formulas:
Cost of Points: `Loan Amount * (Number of Points * Cost per Point Percentage / 100)`
New Interest Rate: `Current Interest Rate – (Number of Points * Rate Reduction per Point)`
Break-Even Point (in years): `Cost of Points / (Monthly Payment Savings)`
To calculate the monthly payment savings, we first determine the monthly payment for the loan at the current interest rate and then at the new, reduced interest rate. The difference is the monthly savings. The standard formula for calculating a fixed-rate mortgage monthly payment (P&I) is:
M = P [ i(1 + i)^n ] / [ (1 + i)^n – 1]`
Where:
M = Monthly Payment
P = Principal Loan Amount
i = Monthly Interest Rate (Annual Rate / 12)
n = Total Number of Payments (Loan Term in Years * 12)
When Should You Consider Buying Mortgage Points?
Buying points is generally more beneficial if you plan to stay in your home and keep the mortgage for a significant period. The longer you have the loan, the more time your upfront cost has to be offset by the ongoing monthly savings.
Consider these factors:
Your Time Horizon: How long do you realistically expect to keep the mortgage? If it's less than the break-even point calculated, buying points might not be financially advantageous.
Your Financial Situation: Can you comfortably afford the upfront cost of the points in addition to other closing costs?
Lender's Offer: Compare the rate reduction offered by the lender for the cost of points. Sometimes, the reduction isn't significant enough to justify the expense.
Market Conditions: Interest rate trends can influence whether locking in a lower rate now is wise.
Always consult with a financial advisor or mortgage professional to discuss your specific circumstances before making a decision about buying mortgage points.
function calculateMonthlyPayment(principal, annualRate, loanTermYears) {
var monthlyRate = annualRate / 100 / 12;
var numberOfPayments = loanTermYears * 12;
if (monthlyRate <= 0 || numberOfPayments <= 0) {
return 0; // Avoid division by zero or invalid calculations
}
var numerator = principal * monthlyRate * Math.pow(1 + monthlyRate, numberOfPayments);
var denominator = Math.pow(1 + monthlyRate, numberOfPayments) - 1;
if (denominator === 0) {
return 0; // Handle cases where denominator might be zero
}
return numerator / denominator;
}
function calculateMortgagePoints() {
var loanAmount = parseFloat(document.getElementById("loanAmount").value);
var currentInterestRate = parseFloat(document.getElementById("currentInterestRate").value);
var pointsToBuy = parseFloat(document.getElementById("pointsToBuy").value);
var pointCostPercentage = parseFloat(document.getElementById("pointCostPercentage").value);
var rateReductionPerPoint = parseFloat(document.getElementById("rateReductionPerPoint").value);
var resultDiv = document.getElementById("result-value");
var detailsDiv = document.getElementById("result-details");
resultDiv.innerHTML = '';
detailsDiv.innerHTML = '';
if (isNaN(loanAmount) || isNaN(currentInterestRate) || isNaN(pointsToBuy) || isNaN(pointCostPercentage) || isNaN(rateReductionPerPoint)) {
detailsDiv.innerHTML = 'Please enter valid numbers for all fields.';
return;
}
if (loanAmount <= 0 || currentInterestRate < 0 || pointsToBuy < 0 || pointCostPercentage < 0 || rateReductionPerPoint < 0) {
detailsDiv.innerHTML = 'Please enter non-negative values where appropriate, and positive for Loan Amount and Current Rate.';
return;
}
var costOfPoints = loanAmount * (pointsToBuy * (pointCostPercentage / 100));
var newInterestRate = currentInterestRate - (pointsToBuy * rateReductionPerPoint);
if (newInterestRate 0) {
breakEvenPointYears = costOfPoints / (monthlyPaymentSavings * 12);
} else {
// If savings are zero or negative, break-even is not applicable or infinite.
breakEvenPointYears = Infinity;
}
var htmlOutput = '';
htmlOutput += '