Mortgage Calculator – FAQ
General questions
What does this app calculate?
The goal is to show the total cost of a mortgage so you can compare it against others.
If we already have the APR, why do we need another number to compare mortgages?
While the APR tries to show a value that includes not just interest but also other costs associated with the mortgage (fees, bank-linked products, etc.), it has some limitations:
- For a mortgage with bank-linked products (home/life insurance with the bank), the APR assumes you will keep these services with the bank for the entire life of the mortgage, when in reality you will stop using them the moment their overcharge exceeds the interest savings.
- The APR assumes that insurance costs are constant when, in reality, they tend to grow over time.
- The APR itself is used to discount future payments to present value. In practice, the present value of future money depends on each individual.
OK, but what does it actually compute?
Month by month, over the entire life of the mortgage, the calculator does the following:
- Decides which services (insurance, etc.) are worth linking with the bank to maximize the net savings (interest savings minus the overcharge of buying the services from the bank), respecting the maximum discount cap.
- Computes the cost of those services (insurance, etc.).
- Computes the monthly mortgage payment taking into account the interest rate, which may be discounted by the linked products chosen in step 1, and the amortization method (French method by default).
- Optionally, discounts every payment to its present value applying the money growth rate (by default, the inflation rate).
The result is the total accumulated cost, the breakdown by category, and the first month's payment.
Present value of money
Why are €100 today not worth the same as €100 in 10 years?
For two main reasons:
- Inflation: prices rise over time, so €100 in 10 years will buy less than today.
- Opportunity cost: if we had those €100 today, we could invest them (stocks, deposits, etc.) and in 10 years we would have more than €100.
That's why simply summing all future installments to compare mortgages is not fair: a payment 25 years from now "hurts less" than the same payment tomorrow.
How does this calculator discount future mortgage payments to present value?
Each payment in month m is divided by (1 + r)^m, where r is the monthly money growth rate. By default, r equals the monthly inflation rate you entered, but you can change it in the advanced options through the "money growth rate" field.
If you uncheck the "show adjusted costs" checkbox, the calculator uses r = 0% and you'll see nominal costs (i.e. the euros you will literally pay each month, without adjusting).
Why does it use inflation as the default value for the money growth rate?
For most people, the money to pay the mortgage comes from their salary, which grows at a rate similar to inflation. Additionally, the yield on bank deposits tends to be similar to the inflation rate.
In my case, my income comes from investments that yield 5%, above inflation. How do I reflect the opportunity cost of money in my case?
Open "advanced options" in the form and set 5% in the "money growth rate" field. The calculator will then discount each future payment using your personal 5% rate instead of inflation, which better reflects your real opportunity cost.
Make sure the "show adjusted costs" checkbox is enabled; otherwise this value is ignored.
Interest rate (nominal)
Which interest rate should I enter? The original or the discounted one?
The original, without applying any discount. The calculator already takes care of subtracting month by month the discounts of the services it decides to link with the bank. If you entered the discounted rate, you would be subtracting the same discount twice.
How do I represent a mixed-rate mortgage?
A mixed-rate mortgage has a fixed rate during the first years and a variable (or another fixed) rate afterwards. To represent it, add several "interest periods":
- For the first period, enter the fixed rate and the year it ends (e.g. 5 years).
- Press "add period" and enter the rate for the next tranche. If it's the last one, you don't need to specify the end year: it extends until the end of the mortgage.
You can add as many periods as you want (mixed with 2 tranches, 3 tranches, etc.).
Bank-linked products / Discounts
Why does it ask for two costs, the bank cost and the competitive cost?
Because the real cost of a linked product is not the price of the insurance, but the difference between what the bank charges and what an equivalent independent provider would charge:
- The competitive cost is the market price of the service (e.g. home insurance at €100/year from an external company).
- The bank cost is the price the bank charges for the same service (e.g. €300/year).
The difference (€200/year in this example) is the overcharge you pay in exchange for the interest discount. The calculator compares this overcharge with the interest savings and, if the overcharge exceeds the savings, it automatically stops linking the service (and only counts the competitive cost).
How do I include the cost of a home insurance if I don't need to link it with the bank?
You can add it as a linked product with a 0% discount and only fill in the competitive cost (you can leave the bank cost blank). It will be counted month by month (adjusted for inflation) without affecting the interest rate.
How is the cost of a service (home insurance) calculated over the years?
It starts from the monthly cost you entered and applies compound inflation:
cost_month_m = initial_cost * (1 + monthly_inflation)^m
That is, an insurance that costs €200/year today will cost more in 10 years because prices rise with inflation.
How is life insurance cost calculated over the years?
Life insurance has three factors that modify its cost month by month:
- Outstanding principal: in general, life insurance is updated annually taking into account the outstanding debt. The cost is scaled by
outstanding_principal / initial_principal. - Age: the premium grows exponentially with age, multiplied by
exp(age * age_factor)(default factor: 0.05). - Inflation: like every other service, prices rise over time.
The final formula is approximately:
cost_month_m = base * (outstanding_principal / initial_principal)
* exp((age + years_elapsed) * age_factor)
* (1 + monthly_inflation)^m
How does the calculator choose which services to link with the bank when the total discount can exceed the maximum?
Each month, the calculator tries every possible combination of services to link and picks the one that maximizes the net savings:
net_savings = interest_savings - service_overcharge
Additionally, the decision is made month by month: a service can be linked during the first years (when the outstanding principal is high and the savings make up for it) and stop being linked later on (when the service cost grows with inflation/age and is no longer worth it).
Understanding the results
Total cost
It's the sum of all payments over the entire life of the mortgage: principal repaid, interest, and the cost of every service (linked or not). If you have the "show adjusted costs" option enabled, this figure reflects the present value of all those payments; otherwise, it's the nominal sum of euros paid.
It's the key figure to compare mortgages: the lower it is, the better the offer.
First monthly payment
It's what you'll pay the first month: the amortization installment (principal + first-month interest with discounts applied) plus the cost of the services the calculator decides to link or pay on your own.
Chart
It's a stacked-bar chart, one bar per month of the mortgage. Each bar shows the cost breakdown for that month by category: principal repaid, interest, and the cost of each service. It lets you visualize how costs evolve: for example, with French amortization the interest is high at the start and decreases, while the principal repaid grows; services adjusted for inflation rise over time.
If you have the "show adjusted costs" option enabled, you'll see that the value of the mortgage payment (interest plus principal only) decreases over time, even when using the French amortization method. This is because future costs are adjusted to their present value (€1,000 paid in 10 years is worth less than €1,000 paid today).
You can download the data in CSV format with the button below the chart if you want to do more detailed analyses.