A Python-based loan repayment analysis tool that calculates amortization schedules and compares the financial impact of making extra monthly payments.
This project began as a basic amortization calculator and was later expanded into a comparison tool that evaluates how additional monthly payments affect loan payoff time and total interest.
The project:
- Calculates a complete month-by-month amortization schedule
- Separates each payment into interest and principal
- Handles final payments correctly
- Validates that the monthly payment is large enough to cover interest
- Compares standard payments against payments with an extra monthly amount
- Calculates months and years saved
- Calculates total interest saved
- Exports detailed amortization schedules to CSV
- Generates a visual comparison of remaining loan balances
- Python
- matplotlib
- Financial Analysis
- Loan Amortization
- Data Visualization
amortization-analysis/
├── amortization.py
├── amortization_comparison.png
├── requirements.txt
├── README.md
└── .gitignore
The original professor-provided Excel reference file is not included in the public repository.
Example inputs:
Loan Amount: $57,000
Annual Interest Rate: 11.5%
Regular Monthly Payment: $1,000
Extra Monthly Payment: $300
Payoff Time: 83 months (6.9 years)
Total Interest Paid: $25,851.66
Total Amount Paid: $82,851.66
Payoff Time: 58 months (4.8 years)
Total Interest Paid: $17,292.92
Total Amount Paid: $74,292.92
Months Saved: 25
Years Saved: 2.1
Interest Saved: $8,558.74
The chart below compares how quickly the loan balance declines under the two repayment strategies.
The program can generate:
standard_amortization_schedule.csv
extra_payment_amortization_schedule.csv
These files are ignored by Git because they depend on the user-entered loan scenario.
Install the required library:
pip install -r requirements.txtRun the analysis:
python3 amortization.pyAastha Chavan
MS Business Analytics, Brandeis University
