In January 2026, I was seriously looking at buying a house in Cilegon, Banten. I found a decent place: a two-bedroom landed house in a perumahan not far from the toll road. The price was steep, honestly more than I expected for the area, but I figured I'd been working long enough. This could work.
Then I sat down with the bank's KPR simulation sheet.
What made my jaw drop wasn't the monthly installment. It was the bottom line: after 20 years, the total I would have paid was more than twice the listed price of the house.
I wasn't shocked by the house price anymore. I was shocked by what the KPR does to it. Nobody explained why. Not the developer, not the bank officer, not the glossy brochure. They handed me the installment number, said "terjangkau kan?", and moved on.
So I went home, opened a notebook, and spent a weekend reverse-engineering the math.
This is the part no one tells you upfront. The answer isn't complicated. The numbers are just big and the timeline is long, so the damage accumulates quietly.
The short version: you're not just paying for the house. You're paying the bank for the privilege of paying in installments over 20 years. That fee, the interest, compounds month after month on whatever balance remains. Over a long enough tenor, it adds up to an amount that can rival or exceed the original loan itself.
There's also the structure of most KPR products in Indonesia. Banks offer an attractive promo rate for the first few years, just enough to make the installment look manageable in the brochure. But once that period ends, the rate adjusts to a floating rate that's significantly higher, and your monthly payment jumps with it. Most people only ever see the promo installment. The full picture is rarely shown.
That was the moment I decided to understand this properly, not just the final number, but every single month of it.
Most KPR loans in Indonesia use the annuity method (metode anuitas). Your monthly payment stays the same throughout a fixed-rate period, but the composition changes over time. You start paying mostly interest, and only gradually does more of it go toward the actual principal.
This is intentional by design. Banks want their interest paid first.
Your monthly installment is calculated using the standard annuity (Present Value of Annuity) formula:
Where:
M = monthly installmentP = loan principal (house price minus down payment)r = monthly interest rate = annual rate / 12 / 100n = total number of months = tenor in years × 12For example, if you borrow Rp 800,000,000 at 9% per year for 20 years:
r = 9% / 12 = 0.75% = 0.0075
n = 20 × 12 = 240 months
M = 800,000,000 × (0.0075 × (1.0075)^240) / ((1.0075)^240 - 1)
M ≈ Rp 7,196,812 / month
That number comes from the bank, gets stamped on your agreement, and that's usually where the transparency ends.
The more interesting part is how each payment is split. For every month:
Where is the remaining balance at the end of month .
In plain terms: each month, you calculate interest on whatever balance remains, subtract it from your fixed payment, and the leftover reduces your debt. As the balance shrinks, so does the interest portion, so more goes to principal. This is the "amortization" part.
By month 1 of a 20-year loan, the interest chunk can be 70–80% of your payment. By the final year it flips, and most of what you're paying is principal. This is why paying off early, especially in the first few years, saves so much money.
Most Indonesian KPR products have a promo period (typically 1–5 years) with a fixed rate, then a floating rate after that. The floating rate is usually based on something like BI Rate + spread, and it changes periodically.
This calculator supports defining multiple rate segments, for example:
Each segment uses the same annuity formula, but re-calculated at the start of each segment using:
nrThis means your installment changes at each rate transition, which is why the amortization table shows different monthly amounts per segment.
One feature I really wanted to model: what if I receive a bonus at year 5 and throw Rp 100 million at the loan? Does it reduce my monthly payment, or shorten my tenor?
The calculator supports two modes:
Reduce Installment: the remaining balance drops, but you keep the same tenor. The new monthly payment is recalculated with the lower balance.
Reduce Tenor: you keep paying the same amount, but the loan is paid off sooner.
Both use the same formula, just solving for a different variable (M vs n).
The interest savings from early repayment compound significantly. Paying Rp 100 million early in year 3 can save you Rp 150+ million in interest over the life of the loan.
Banks will show you one scenario. Maybe two. The calculator lets you set up multiple scenarios side by side, with different loan amounts, tenors, and rate assumptions, and compare them all at once.
This is useful for questions like:
Each scenario shows total interest paid, grand total paid, average monthly installment, and a full amortization chart.
This was the philosophical question I kept asking myself. If I'm going to pay hundreds of millions in interest over 20 years, what if I just... saved that money instead?
The savings comparison feature asks: if you put aside the equivalent of your monthly KPR installment into a savings/deposit account each month, how long would it take to accumulate enough to buy the house outright?
The math uses the Future Value of an annuity:
Solving for n (how many months until you hit the target):
The calculator runs this for four scenarios:
The honest reality is that even with deposit interest helping, it usually takes longer to save than the KPR tenor. The house price is much larger than what you'd have saved up front, and banks are essentially giving you leverage: you get to live in the house while paying it off.
But there's a catch worth noting. If you're currently renting while saving, you can't realistically set aside the full KPR installment amount every month. A more realistic assumption is saving 70% of the installment, with the remaining 30% going to rent. The calculator shows this scenario too, and the timeline gets noticeably longer.
This isn't me saying KPR is always better or worse. It depends on your situation. But now you can actually see the numbers.
The math itself isn't complicated. It's basically high school finance. The frustrating part was that I couldn't find a single tool online that showed all of this together, let alone in Bahasa Indonesia, let alone with early repayment simulation.
After digging through various bank product documents, FAQs, and a few academic references on amortization schedules, it became clear the formulas are completely standard. Banks aren't using secret math. They just don't surface it.
So if you're planning a KPR, or already have one and want to model an early repayment, or just want to understand where your money actually goes every month: the calculator is there, it's free, and it shows you everything.
No brochures. Just math.
Built with Next.js, React, Tailwind CSS, and recharts. The amortization engine is pure JavaScript with no external finance libraries.