mirror of
https://notabug.org/scuti/amort
synced 2024-11-25 16:28:50 +05:30
46 lines
1.4 KiB
Markdown
46 lines
1.4 KiB
Markdown
|
|
# 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.
|