Mortgage Calculator (extra payments) in GWT

We haven’t had a particularly nice weather outside this weekend, so I’ve decided to dedicate some time to playing with Java and GWT Web Toolkit. And let me tell you, it’s quite a fun. While I was at it and poking around, I’ve realized I may actually create something useful. So I’ve programmed a simple mortgage (loan) calculator for extra payments. Something I always needed…

It’s basically doing exactly what I always needed to know. For example, I always wanted to know exactly how much I would save when I add an extra payment to my monthly mortgage payments, or how many months or years earlier my mortgage will end if I add some extra money. I also wanted a calculator, which I re-calculated everything in real time, rather than pressing a submit button all the time, and also immediately recalculate amortization schedule every time a change a value. Something which will show accumulated interest, how much I will pay in the interest rate over time, etc.

I had it all ready in about 3 and a half hours. It’s all done in GWT and I’ve learned that it’s not too difficult to use it, although if I had to do this again, I’d probably write it as a server side scrip and use Vaadin instead, mainly due to controllable performance on client’s end and for easier access to Java libraries.

Anyhow, this is what the final product looks like:

mortgage calculator extra payments

As far as the application, I’ve used US conversion of the mortgage, compounded annually and it should also work for Europian mortgage calculations, albeit I believe in Canada they compound the interest semi-annually (but it should still provide some good information anyhow). The formula I found on Wikipedia:


Once it was all done, I’ve realized that I might actually need this from time to time and not only when I am at my home computer. This being a web application, for $ 1.99 I bought a domain at and threw it on my dedicated server at

Here it is online:

English Version:

Slovak version:

… maybe I’ll add more languages​​ later.


  1. It is possible that there are still some bugs – I didn’t spend much time debugging it.
  2. If you have some use to this and would love to improve, let me know, I can publish the code on GitHub – although I would have to clean it first as it’s a bit of a mess now :)
Facebook Comments