NV ToolkitFormat · Validate · Convert
Guide

How EMI Is Calculated: The Formula, a Worked Example and an Amortization Schedule

An EMI, or equated monthly instalment, is the fixed amount you pay every month so that a loan and all of its interest are cleared exactly at the end of the tenure. The formula behind it is short, but the behaviour it produces is not obvious from the formula alone: why the first payments are almost entirely interest, why a quarter-point rate change moves the total by tens of thousands of rupees, and why a "flat rate" quote is not comparable to a bank's rate. This guide derives the number for a real loan, walks through its amortization schedule, and gives a JavaScript function that reproduces every figure.

In short

EMI = P × r × (1 + r)^n ÷ ((1 + r)^n − 1), where P is the principal, r the monthly rate (annual rate ÷ 12 ÷ 100) and n the number of months. For ₹10,00,000 at 8.5% over 20 years that works out to ₹8,678.23 a month and ₹10,82,775.76 in total interest — more than the amount borrowed.

By NaveenKumar T · Software engineer · builds and maintains NV Toolkit Published 2026-09-10 7 min read

The formula

EMI = P × r × (1 + r)^n ÷ ((1 + r)^n − 1), where P is the principal, n is the number of monthly instalments, and r is the monthly interest rate as a fraction: the annual percentage divided by 12 and then by 100. For 8.5% per year, r = 8.5 ÷ 1200 = 0.0070833. That conversion is where most hand calculations go wrong. Using 0.085 as r produces an absurd EMI of about ₹85,000 on a ₹10 lakh loan, and using 8.5 ÷ 12 = 0.708 without the division by 100 is worse still.

The formula follows from one requirement. Each month the outstanding balance grows by that month's interest (balance × r) and shrinks by the payment, and after n months the balance must be exactly zero. Writing that recurrence out and solving for the payment gives the closed form above. The (1 + r)^n term is the compounding factor for the whole tenure; dividing by (1 + r)^n − 1 spreads the repayment evenly across the months. When r is zero the formula divides by zero, and the EMI is simply P ÷ n.

javascript
const P = 1_000_000;        // principal: ₹10,00,000
const annualRate = 8.5;     // percent per year
const n = 20 * 12;          // 240 monthly instalments

const r = annualRate / 12 / 100;               // 0.0070833…
const factor = Math.pow(1 + r, n);             // (1 + r)^n = 5.44124…
const emi = (P * r * factor) / (factor - 1);   // 8678.23

A worked example: ₹10,00,000 at 8.5% for 20 years

Step by step: r = 0.0070833, n = 240, and (1 + r)^240 = 5.44124. The numerator is P × r × 5.44124 = 10,00,000 × 0.0070833 × 5.44124 = 38,542.14. The denominator is 5.44124 − 1 = 4.44124. Dividing gives an EMI of ₹8,678.23. Over 240 months that is ₹20,82,775.76 in total, of which ₹10,82,775.76 is interest: more than the amount borrowed.

That is not a high rate at work; it is the tenure. The same loan over 15 years costs ₹9,847.40 a month and ₹7,72,531 in interest; over 30 years the EMI drops to ₹7,689.13 but interest climbs to ₹17,68,089. The table shows how the two numbers pull in opposite directions. Each extra five years lowers the EMI by less than the previous five did, while adding between three and three and a half lakh in interest, which is why stretching a tenure to make an EMI "affordable" is so expensive.

TenureEMITotal interestTotal paid
10 years₹12,398.57₹4,87,828.27₹14,87,828.27
15 years₹9,847.40₹7,72,531.20₹17,72,531.20
20 years₹8,678.23₹10,82,775.76₹20,82,775.76
25 years₹8,052.27₹14,15,681.25₹24,15,681.25
30 years₹7,689.13₹17,68,088.54₹27,68,088.54
csv
tenure,emi,total_interest,total_paid
10 years,"12,398.57","4,87,828.27","14,87,828.27"
15 years,"9,847.40","7,72,531.20","17,72,531.20"
20 years,"8,678.23","10,82,775.76","20,82,775.76"
25 years,"8,052.27","14,15,681.25","24,15,681.25"
30 years,"7,689.13","17,68,088.54","27,68,088.54"

The amortization schedule: where each rupee goes

The EMI is constant, but its split between interest and principal changes every month. Interest for a month is the outstanding balance times r; whatever is left of the EMI reduces the principal. In month 1 the balance is the full ₹10,00,000, so interest is 10,00,000 × 0.0070833 = ₹7,083.33 and only ₹1,594.90 goes to principal, leaving ₹9,98,405.10. In month 2 interest is charged on that smaller balance, ₹7,072.04, and the principal part rises to ₹1,606.20. The principal component grows by a factor of (1 + r) every month, so it doubles roughly every 98 months.

The consequences are stark. In the first year you pay ₹1,04,138.79, of which ₹84,236.50 is interest and only ₹19,902.29 principal. After ten years, halfway through, the balance is still ₹6,99,938: about 70% of the loan remains. Month 143 is the first in which the principal component (₹4,345.31) exceeds the interest component (₹4,332.92). The final year costs just ₹4,640.35 in interest, and the last instalment carries ₹61.04 of interest and ₹8,617.19 of principal, which clears the balance to zero.

csv
month,emi,interest,principal,balance
1,"8,678.23","7,083.33","1,594.90","9,98,405.10"
2,"8,678.23","7,072.04","1,606.20","9,96,798.90"
3,"8,678.23","7,060.66","1,617.57","9,95,181.33"
...,...,...,...,...
120,"8,678.23","4,984.06","3,694.17","6,99,938.23"
...,...,...,...,...
239,"8,678.23","121.65","8,556.58","8,617.19"
240,"8,678.23","61.04","8,617.19","0.00"

A JavaScript function that reproduces the schedule

The function below computes the EMI with the closed-form formula and then simulates the loan month by month, which is exactly how the figures above — and the EMI Calculator — were produced. One detail matters for correctness: after 239 payments the floating-point balance is a few paise away from the value the final EMI would clear, so the last row pays off whatever remains instead of applying the formula blindly. This is also what banks do, which is why a real statement's final instalment often differs from the others by a rupee or two.

Formatting is a separate step. The numbers are kept unrounded through the simulation and rounded only for display, otherwise rounding errors accumulate across 240 rows. Intl's en-IN locale produces the lakh and crore grouping (10,82,775.76) that Indian statements use. If you compare the output with a lender's schedule and see differences larger than a few rupees, the lender is either rounding the EMI to the nearest rupee and adjusting the final payment, charging interest on actual days rather than equal months, or quoting a rate that already includes fees.

javascript
function amortize(principal, annualRatePct, months) {
  const r = annualRatePct / 12 / 100;                       // monthly rate as a fraction
  const factor = Math.pow(1 + r, months);                   // (1 + r)^n
  const emi = r === 0 ? principal / months : (principal * r * factor) / (factor - 1);

  const schedule = [];
  let balance = principal;
  for (let month = 1; month <= months; month++) {
    const interest = balance * r;
    // Last payment clears whatever is left so rounding never leaves a few paise behind.
    const towardPrincipal = month === months ? balance : emi - interest;
    balance = Math.max(0, balance - towardPrincipal);
    schedule.push({ month, emi, interest, principal: towardPrincipal, balance });
  }
  const totalInterest = schedule.reduce((sum, row) => sum + row.interest, 0);
  return { emi, totalInterest, totalPayment: principal + totalInterest, schedule };
}

const loan = amortize(1_000_000, 8.5, 240);
const inr = (n) => n.toLocaleString("en-IN", { minimumFractionDigits: 2, maximumFractionDigits: 2 });
console.log("EMI", inr(loan.emi), "| total interest", inr(loan.totalInterest));
// EMI 8,678.23 | total interest 10,82,775.76
for (const row of [...loan.schedule.slice(0, 3), loan.schedule.at(-1)]) {
  console.log(row.month, inr(row.interest), inr(row.principal), inr(row.balance));
}
// 1 7,083.33 1,594.90 9,98,405.10
// 2 7,072.04 1,606.20 9,96,798.90
// 3 7,060.66 1,617.57 9,95,181.33
// 240 61.04 8,617.19 0.00

Prepayment: shorten the tenure or lower the EMI

Because interest is charged on the outstanding balance, any principal you pay early stops earning interest for the lender from that month on. Lenders offer two ways to absorb a lump sum: keep the EMI and shorten the tenure, or keep the tenure and re-amortize the smaller balance over the months that remain, which lowers the EMI. The first saves far more.

Take the example loan and prepay ₹2,00,000 after the twelfth instalment, when the balance is ₹9,80,097.71. Keeping the EMI at ₹8,678.23 closes the loan in month 156 instead of 240, seven years early, with total interest of ₹5,49,145.72: a saving of ₹5,33,630. Keeping the tenure instead lowers the EMI to ₹6,907.34 and saves ₹2,03,763.

Timing matters as much as the amount. The same ₹2,00,000 paid after month 120 instead of month 12, with the EMI unchanged, ends the loan in month 195 and saves ₹1,96,698, about a third of the early-prepayment saving, because by then the money has been outstanding, and charged interest, for nine more years. As a rule the value of a prepayment is proportional to how long it would otherwise have stayed on the books. In India, the RBI prohibits prepayment charges on floating-rate loans to individuals for non-business purposes; fixed-rate loans may still carry a fee, so check the sanction letter before deciding.

javascript
function simulate(principal, annualRatePct, months, { prepayMonth, prepayAmount, keep }) {
  const r = annualRatePct / 12 / 100;
  let emi = (principal * r * (1 + r) ** months) / ((1 + r) ** months - 1);
  let balance = principal, interestPaid = 0, month = 0;

  while (balance > 0.005) {
    month++;
    const interest = balance * r;
    interestPaid += interest;
    balance -= Math.min(emi - interest, balance);
    if (month === prepayMonth) {
      balance -= prepayAmount;
      if (keep === "tenure") {                       // re-amortize over the months left
        const left = months - month;
        emi = (balance * r * (1 + r) ** left) / ((1 + r) ** left - 1);
      }
    }
  }
  return { months: month, emi: emi.toFixed(2), interestPaid: interestPaid.toFixed(2) };
}

console.log(simulate(1_000_000, 8.5, 240, { prepayMonth: 12, prepayAmount: 200_000, keep: "emi" }));
// { months: 156, emi: '8678.23', interestPaid: '549145.72' }
console.log(simulate(1_000_000, 8.5, 240, { prepayMonth: 12, prepayAmount: 200_000, keep: "tenure" }));
// { months: 240, emi: '6907.34', interestPaid: '879012.55' }

Reducing balance vs flat rate: why flat quotes look cheaper

Everything above assumes reducing-balance interest, where each month's interest is charged on what you still owe. A flat-rate loan charges interest on the original principal for the whole tenure, regardless of how much has been repaid. Total interest is simply P × rate × years, and the instalment is (P + interest) ÷ n. For the same ₹10,00,000 at "8.5%" over 20 years, flat interest is ₹17,00,000 and the instalment ₹11,250, against ₹10,82,776 and ₹8,678.23 on reducing balance.

The two headline rates are therefore not comparable. A flat 8.5% over 20 years costs about the same as 12.34% on reducing balance; put the other way, the reducing-balance loan above is equivalent to a flat rate of roughly 5.41%. The gap narrows for shorter tenures but never closes: a ₹5,00,000 loan over 5 years costs ₹1,15,496 in interest at 8.5% reducing and ₹2,12,500 at 8.5% flat, nearly double. Flat rates are common in vehicle, consumer-durable and some personal loans precisely because the quoted number looks small. Compare both methods side by side in the Loan Calculator, or use the annual percentage rate, which lenders in India must now disclose in the Key Facts Statement.

csv
loan,interest_method,monthly_instalment,total_interest
"₹10,00,000 / 20 yrs / 8.5%",reducing balance,"8,678.23","10,82,775.76"
"₹10,00,000 / 20 yrs / 8.5%",flat rate,"11,250.00","17,00,000.00"
"₹5,00,000 / 5 yrs / 8.5%",reducing balance,"10,258.27","1,15,495.94"
"₹5,00,000 / 5 yrs / 8.5%",flat rate,"11,875.00","2,12,500.00"

How a small rate change moves the total

Rate changes look trivial on the EMI and large on the total. Moving from 8.5% to 8.75% raises the EMI by ₹158.88, from ₹8,678.23 to ₹8,837.11, which is easy to dismiss. Over 240 months it adds ₹38,130 of interest. A full point, from 8.5% to 9.5%, adds ₹643 a month and ₹1,54,339 over the loan. The relationship is close to linear over this range: every quarter point costs roughly ₹38,000 on this loan, in either direction, which is a useful number to keep in mind when negotiating a spread or deciding whether a balance transfer is worth its processing fee.

Floating-rate loans make this concrete. When the benchmark rises, most lenders keep the EMI fixed and extend the tenure instead, because a longer tenure is invisible on the monthly statement. That choice compounds the cost: the extra months are the ones with the highest interest share. If an increase is announced, ask for the EMI to be raised and the tenure held; the table shows the EMI you should expect.

csv
annual_rate,emi,total_interest,change_vs_8.5%
8.00%,"8,364.40","10,07,456.17","-75,319.59"
8.25%,"8,520.66","10,44,957.57","-37,818.19"
8.50%,"8,678.23","10,82,775.76",0.00
8.75%,"8,837.11","11,20,905.70","+38,129.94"
9.00%,"8,997.26","11,59,342.29","+76,566.53"
9.50%,"9,321.31","12,37,114.85","+1,54,339.09"
How this was tested: Every EMI, interest and schedule figure in this guide was computed with calcEmi from src/lib/transforms/calculators.ts on 2026-09-10.

Sources

  1. Wikipedia — Equated Monthly Installment
  2. Wikipedia — Amortization Calculator
  3. calculator.net — Loan Calculator (amortization formula)

Frequently asked questions

Why is so much of the early EMI interest?

Interest for any month is the outstanding balance times the monthly rate, and the balance is highest at the start. On ₹10,00,000 at 8.5% the first month's interest is ₹7,083.33, which is 82% of an ₹8,678.23 EMI, leaving ₹1,594.90 for principal. As the balance falls the interest falls with it and the principal share rises by a factor of (1 + r) every month, crossing 50% only in month 143 of 240.

Does the EMI stay the same on a floating-rate loan?

Only until the rate resets. When the benchmark moves, the lender recalculates using the outstanding balance, the new rate and the remaining months. Many lenders default to keeping the EMI unchanged and lengthening the tenure, which costs far more in total interest than a slightly higher EMI over the original tenure; you can usually ask for the other option.

Can I check my bank's schedule with this formula?

Yes, and it should match to within a few rupees. Small differences come from rounding the EMI to the nearest rupee, charging interest on actual days in a month rather than a flat twelfth of the year, or a disbursement date that is not the first of the month. A large difference means the rate on the schedule is not the rate you were quoted, or that fees or insurance have been added to the principal.

Does the EMI include processing fees or insurance?

No. The EMI covers principal and interest only. Processing fees, documentation charges and any bundled insurance are either deducted from the disbursed amount or added to the principal, and they are the reason the annual percentage rate in a Key Facts Statement is higher than the interest rate. Compare loans on APR or total cost, not on the EMI alone.

Enter any principal, rate and tenure in the EMI Calculator to get the EMI, total interest and the full month-by-month schedule.

Run your own numbers

Keep working

Related tools