Borrowing money is a significant financial decision. Whether you're considering a personal loan, car finance, or a small business loan in the UK, understanding how your repayments are calculated is crucial. This calculator helps you estimate your monthly payments, the total amount you'll repay, and the total interest you'll incur over the life of the loan.
How the Calculation Works
The formula used to calculate the monthly repayment for an instalment loan is a standard financial formula known as the amortization formula. It takes into account the principal loan amount, the interest rate, and the loan term.
The formula is:
M = P [ i(1 + i)^n ] / [ (1 + i)^n – 1]
Where:
M = Your total monthly instalment
P = The principal loan amount (the total amount you borrow)
i = Your monthly interest rate. This is calculated by dividing the annual interest rate by 12 (e.g., 5.5% annual rate / 12 = 0.0045833 monthly rate)
n = The total number of payments over the loan's lifetime. This is calculated by multiplying the loan term in years by 12 (e.g., a 5-year loan has 5 * 12 = 60 payments)
Key Metrics Explained
Monthly Payment (M): This is the fixed amount you will need to pay each month for the duration of the loan. It includes a portion of the principal borrowed and the interest accrued for that month.
Total Repayment: This is the sum of all your monthly payments over the entire loan term. It's calculated as Monthly Payment × Number of Payments (n).
Total Interest Paid: This is the difference between the total amount you repay and the original amount you borrowed. It's calculated as Total Repayment – Principal Loan Amount (P). This figure shows the true cost of borrowing the money.
When to Use This Calculator
This calculator is ideal for anyone in the UK seeking to understand the financial implications of various loan products, including:
Personal Loans
Car Finance
Home Improvement Loans
Debt Consolidation Loans
Small Business Loans
By inputting different loan amounts, interest rates, and terms, you can compare options and make more informed borrowing decisions. Remember that the rates shown are indicative; your actual rate may vary based on your creditworthiness and the lender's assessment. It's always recommended to shop around and get personalised quotes.
function calculateLoan() {
var loanAmount = parseFloat(document.getElementById("loanAmount").value);
var annualInterestRate = parseFloat(document.getElementById("interestRate").value);
var loanTermYears = parseInt(document.getElementById("loanTerm").value);
var monthlyPaymentResult = "–";
var totalRepaymentResult = "–";
var totalInterestResult = "–";
if (isNaN(loanAmount) || isNaN(annualInterestRate) || isNaN(loanTermYears) ||
loanAmount <= 0 || annualInterestRate < 0 || loanTermYears <= 0) {
document.getElementById("monthlyPayment").textContent = "Invalid input";
document.getElementById("totalRepayment").textContent = "Invalid input";
document.getElementById("totalInterest").textContent = "Invalid input";
return;
}
var monthlyInterestRate = annualInterestRate / 100 / 12;
var numberOfPayments = loanTermYears * 12;
if (monthlyInterestRate === 0) { // Handle 0% interest rate
monthlyPaymentResult = (loanAmount / numberOfPayments).toFixed(2);
totalRepaymentResult = (loanAmount).toFixed(2);
totalInterestResult = "0.00";
} else {
var numerator = loanAmount * monthlyInterestRate * Math.pow(1 + monthlyInterestRate, numberOfPayments);
var denominator = Math.pow(1 + monthlyInterestRate, numberOfPayments) – 1;
if (denominator === 0) { // Avoid division by zero if for some reason calculation fails
document.getElementById("monthlyPayment").textContent = "Calculation Error";
document.getElementById("totalRepayment").textContent = "Calculation Error";
document.getElementById("totalInterest").textContent = "Calculation Error";
return;
}
monthlyPaymentResult = (numerator / denominator).toFixed(2);
totalRepaymentResult = (monthlyPaymentResult * numberOfPayments).toFixed(2);
totalInterestResult = (parseFloat(totalRepaymentResult) – loanAmount).toFixed(2);
}
document.getElementById("monthlyPayment").textContent = "£" + monthlyPaymentResult;
document.getElementById("totalRepayment").textContent = "£" + totalRepaymentResult;
document.getElementById("totalInterest").textContent = "£" + totalInterestResult;
}