# 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 a 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.