Python CLI tool taking your individual debts and monthly debt contribution as arguments to produce an expedited amortization schedule to calculate how fast you can pay off your debt given a specific amount of contributions each month.
Growing up, borrowing debt was the "thing to do" when you wanted to "own" something you could not afford, whether a car, computer, college, etc.; however, what everyone, who has more debt than they should reasonably have, fails to tell you is the weight it places on your mind... The constant reminder of the upcoming payment and the low balance of your checking account... I'm tired of that feeling, so I'm going to define a month-to-month schedule of how much money should go to a specific debt to pay off all my debt, besides my mortgage, as fast as possible.
- Amortization is the process of spreading out a loan or an asset's cost over a set period of time through regular payments. A portion of each payment covers part of the principal, the original amount borrowed, plus interest. It generally takes the form of a table.
- Debt snowball, a term coined by Dave Ramsey, references the effect that occurs when you start paying off your debts starting from the smallest to the largest debt. Technically, it refers to how the amount of money you can pay towards debt each month increases as you reduce the monthly payments from paid off debt.
Let's say you make $100,000/yr and have two loans, a vehicle loan and a mortgage. Here are the details for each loan, which are required to calculate the amortization of each loan.
Loan | Principal | Interest Rate | Loan Term | Payment Frequency |
---|---|---|---|---|
Vehicle | $15,000 | 6.73% | 60 months | monthly |
Mortgage | $220,000 | 7.12% | 180 months | monthly |
The calculation for a loan's amortization schedule is:
So, for the standard amortization, for every payment period, we calculate the interest, principal portion, and then subtract principal portion from the current balance. We repeat this until the balance reaches zero.
With an expedited amortization, extra is paid towards the principal each period (or irregularly, but we're calculating via a monthly basis). This lowers the balance faster, which reduces total interest paid and the loan duration.
- Loan amount
- Interest rate
- Original term length
- Current balance
- Additional amount to contribute
- Frequency of additional contributions
- Calculate the monthly payment normally
- Apply the additional contribution directly to the balance
- CLI Inputs for each loan
- Determine the path to a debt snowball
- Calculate the amortization of each loan
- Apply the additional contribution
Since we're apply an additional contribution to a single loan per month, we need to calculate the amortizations one month at a time for all loans, apply the additional contribution, and then move on to the next month.
At the end of calculating a month's amortization for all loans, apply the defined additional contribution to the loan with the least balance (debt snowball).
If the balance < the additional contribution, apply the remainder to the next debt in line.
If the balance < the additional contribution and there isn't another debt in line, celebrate!!!