1.4 KiB
amort
Generates an amortization schedule based on the principal, interest rate, term, and any additional payments towards principal.
requirements
Only imports argparse
and json
for the main block of the script.
- saves results to a file
schedule.csv
- does not access the web or internet
usage
Invoke make test
to generate a schedule based on loan of 100,000 over a 3 year term given an interest rate of 5.0% with a one-time payment towards principal of 5000 at the 13th month.
extra payments
For extra payments towards principal, invoking the script will look like:
python src/amort.py -p {principal} -i {interest rate} -t {years} --extra-payments extra_payments.json
A valid json file contains an list named extra-payments
. Each element is an object with the attributes payment-number
and amount
.
{
"extra-payments" : [
{
"payment-number": 1,
"amount": 500
}, {
"payment-number": 2,
"amount": 500
}, {
"payment-number": 3,
"amount": 500
}
]
}
payment-number
is the month when the payment has been made.amount
is self-explanatory
misc
This originated from me playing with ChatGPT. I asked it a question and it blurted out a semi-functional script as an answer. Then I made this repo to track the errors I fixed.