It turns out that there are a ton of variables in what makes one mortgage better than another one, and in fact their net present value can be different depending on how long you plan to keep that mortgage.  I wrote this little doodad to help me think through all my refinance options, and also to learn the Knockout.js MVVM JavaScript framework.