amort/README.md

46 lines
1.4 KiB
Markdown
Raw Normal View History

2024-08-30 14:19:12 +05:30
# 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.