Mortgage is a software package for loan and mortgage calculations, maintained by Henry Olders. It is written in julia.
- https://github.com/holder66/Mortgage.jl (Source code)
Mortgage provides the following features:
- Works in any decimal-based currency
- Supports monthly compounding (American); bi-annual (Canadian); or no compounding (simple interest, accrued daily)
- Supports monthly, twice monthly, weekly, or two-week payment intervals
- Terms can range from quarter, half-year, year, multiple years, or equal to the amortization period
- Will calculate the payment amount, if none is supplied
- function printsummary() generates a summary printout
- function printtable() generates a table of payments
To use Mortgage, a julia version of 0.4 or higher is necessary (the latest stable julia version will do). Please see http://julialang.org/downloads for instructions on how to obtain julia for your system. Once a suitable julia version is installed, use the following steps at the julia prompt to install Mortgage:
julia> Pkg.clone("https://github.com/holder66/Mortgage.jl")
julia> Pkg.build("Mortgage")
Here is a quick example of using Mortgage, with default values:
julia> printsummary(mortgage()...)
Principal: 100000; Annual Interest Rate: 10.0%; Payment frequency: monthly Compounding: monthly (American) compounding Your mortgage starts on 2016-06-29 and is amortized over (ie would be fully paid off in) 25.0 years. Your first payment of 908.70 will be on 2016-07-30. During the term of 5 years, you will make 60 payments, with a final payment of 908.70 on 2021-06-29. At the end of the term, the balance remaining will be 94163.77. You will have paid a total of 54522.04 of which 48685.81, or 89.3%, will be interest. This represents 48.7% of the principal amount.
Documentation is built automatically with help from MkDocs on Travis CI and hosted by GitHub Pages.
Mortgage.jl
will eventually be tested against Julia 0.5
and current 0.6-dev
on Linux, OS X, and Windows.
Contributions are very welcome, as are feature requests and suggestions. Please open an issue if you encounter any problems or would just like to ask a question.