A modular budgeting engine built in Python to help users organize their finances, calculate net income, analyze spending across budgeting buckets, and simulate debt repayment timelines.
Convert income from:
- yearly
- monthly
- weekly
→ into a standardized monthly value.
Supports modern budgeting categories:
- Essentials
- Lifestyle
- Savings
- Emergency Fund
- Debt Payments
- Giving
A full amortization engine that computes:
- monthly interest
- principal paid
- payoff timeline
- updated balances
- full payment schedule
budget_app/ │ ├── app.py # ready for Streamlit UI integration ├── sample_run.py # manual test harness ├── modules/ │ ├── income.py # income conversion logic │ ├── expenses.py # budgeting buckets │ ├── debt.py # debt payoff logic │ ├── calculator.py # core budget aggregation │ └── recommendations.py # (future) budgeting suggestions
Monthly Income: $10833.33
Bucket Totals: Essentials: $2500.00 Savings: $200.00 Lifestyle: $200.00 Giving: $500.00 Debt Repayments: $385.00
Total Expenses: $3585.00 Net Remaining: $7248.33
--- Debt Payoff Example --- Chase Card will be paid off in 64 months.
Interactive features coming soon:
- Enter income, expenses, and debts
- Visualize budgets using charts (Plotly)
- Compare Snowball vs Avalanche
- Export payoff schedules
- Save/load user profiles
Unit tests for:
- income conversion
- bucket calculations
- debt amortization
- recommendations
Upload bank transactions → auto categorize → budget instantly.
- Python 3.11+
- Object-Oriented Backend
- Git + GitHub
- (Upcoming) Streamlit
- (Upcoming) Pandas & Plotly
This project was built for:
- Education — strengthening Python, finance, and modular design skills
- Portfolio — creating a real, demonstrable budgeting engine
- Real-World Use — helping individuals understand and visualize their finances
Issues and PRs are welcome.
Licensed under the MIT License.