- Authors

- Name
- Youngju Kim
- @fjvbn20031
Overview
Personal finance is not just about spending less — it is about understanding your cash flow, setting clear goals, and executing a disciplined strategy to grow wealth over time. This guide walks you through every major pillar of personal finance with actionable frameworks, real-world examples, and Python tools you can use today.
Table of Contents
- Personal Finance Fundamentals
- Budgeting Strategies
- Building an Emergency Fund
- Debt Management Strategies
- Wealth Building Stages
- Tax Optimization Strategies
- Python Financial Planning Tools
- Quizzes
1. Personal Finance Fundamentals
Calculating Your Net Worth
The foundation of any financial plan is knowing exactly where you stand. Your net worth is a single number that captures your financial position at a point in time.
Net Worth = Total Assets - Total Liabilities
Asset categories:
- Liquid assets: checking accounts, savings accounts, money market accounts
- Investment assets: stocks, ETFs, mutual funds, bonds, retirement accounts (401k, IRA)
- Real estate: primary residence, rental properties
- Personal property: vehicles, jewelry, collectibles (at fair market value)
Liability categories:
- Mortgage balance
- Auto loans
- Student loans
- Personal loans and lines of credit
- Credit card balances
- Any other outstanding debts
Why net worth matters: A high income does not guarantee wealth. Someone earning USD 200,000 per year but spending USD 210,000 has a declining net worth, while someone earning USD 60,000 but saving 30% is building real wealth. Track your net worth monthly or quarterly to stay on course.
Setting Financial Goals: The SMART Framework
Vague goals produce vague results. Use the SMART framework to turn aspirations into executable plans.
| Element | Description | Example |
|---|---|---|
| Specific | Clearly define what you want | "Save USD 25,000 for a home down payment" |
| Measurable | Quantify the goal | Track balance monthly |
| Achievable | Realistic given your income | Save USD 800/month over 31 months |
| Relevant | Aligned with bigger goals | Reduces rent long-term |
| Time-bound | Set a deadline | Achieve by December 2028 |
Financial Health Checklist
Use this checklist to identify your biggest opportunities for improvement.
- Have you calculated your current net worth?
- Do you track monthly income and expenses?
- Is your emergency fund at least 3 months of essential expenses?
- Are you free of high-interest debt (above 10% APR)?
- Are you maximizing tax-advantaged retirement contributions?
- Do you have a written investment plan?
- Are you adequately insured (health, disability, life)?
- Have you written or updated your will/beneficiaries?
2. Budgeting Strategies
The 50/30/20 Rule
Originally popularized by Senator Elizabeth Warren, this rule divides your after-tax income into three broad buckets.
Monthly after-tax income: USD 5,000
Needs (50%) = USD 2,500
Rent/mortgage: USD 1,400
Groceries: USD 350
Utilities + internet: USD 150
Transportation: USD 350
Minimum debt payments: USD 250
Wants (30%) = USD 1,500
Dining out: USD 300
Entertainment: USD 200
Shopping: USD 400
Subscriptions: USD 100
Travel fund: USD 300
Personal care: USD 200
Savings/Debt/Investing (20%) = USD 1,000
Emergency fund: USD 200
401k contribution: USD 400
Roth IRA: USD 250
Extra debt payment: USD 150
Limitation: In high cost-of-living cities, housing alone can consume more than 50% of income. Adjust ratios as needed — the underlying principle is prioritizing savings over discretionary spending.
Zero-Based Budgeting (ZBB)
Every dollar of income is assigned a purpose so that income minus all allocations equals zero.
Formula: Income - Expenses - Savings - Investments = 0
Monthly income: USD 5,000
Expense allocations:
Rent: USD 1,400
Groceries: USD 350
Utilities: USD 150
Transportation: USD 350
Dining out: USD 250
Entertainment: USD 150
Shopping: USD 200
Subscriptions: USD 80
Personal care: USD 120
Miscellaneous: USD 100
Total expenses: USD 3,150
Savings/investing allocations:
Emergency fund: USD 300
401k: USD 600
Roth IRA: USD 500
Brokerage account: USD 300
Vacation fund: USD 150
Total saved: USD 1,850
Remaining: USD 5,000 - USD 3,150 - USD 1,850 = USD 0
ZBB forces deliberate allocation and eliminates "where did my money go?" at month end.
Envelope Budgeting
The envelope method assigns physical (or digital) envelopes of cash to specific spending categories. When an envelope is empty, spending stops in that category for the month.
Digital envelope setup:
- On payday, transfer budgeted amounts to labeled sub-accounts or tracking categories
- Check remaining balance before any discretionary purchase
- If an envelope runs out, no more spending in that category
- Roll surplus into savings or next month's envelope
Recommended envelope categories:
- Groceries
- Dining out
- Transportation (fuel, transit)
- Entertainment
- Clothing
- Medical/health
- Personal care
- Miscellaneous
Typical US Household Spending Distribution
Based on Bureau of Labor Statistics Consumer Expenditure data for a single-income household earning USD 60,000-80,000:
| Category | Average Monthly | % of Income |
|---|---|---|
| Housing | USD 1,800 | 28% |
| Transportation | USD 900 | 14% |
| Food (groceries + dining) | USD 700 | 11% |
| Insurance + healthcare | USD 650 | 10% |
| Entertainment | USD 350 | 5% |
| Clothing | USD 180 | 3% |
| Education | USD 150 | 2% |
| Personal care | USD 120 | 2% |
| Other | USD 400 | 6% |
| Savings/investing | USD 1,250 | 19% |
A savings rate near 19% is above average but below the recommended 20-25% for meaningful long-term wealth building.
3. Building an Emergency Fund
Why an Emergency Fund is Non-Negotiable
An emergency fund is not an investment — it is financial insurance. Without one, any unexpected expense (medical bill, car repair, job loss) forces you into debt, derailing your financial plan. Investment gains are meaningless if a single emergency causes you to sell assets at the worst time.
How Much Do You Need?
Target Emergency Fund = Monthly Essential Expenses x 3 to 6
Monthly essential expenses:
Rent/mortgage: USD 1,400
Groceries: USD 350
Utilities: USD 150
Transportation: USD 350
Insurance: USD 200
Minimum debt: USD 250
Total essential: USD 2,700
3-month target: USD 8,100
6-month target: USD 16,200
Recommended starting goal: USD 10,000
Who should target 6+ months:
- Freelancers and self-employed individuals
- Single-income households
- People in volatile industries (tech, media, finance)
- Anyone with dependents or significant health concerns
Where to Keep Your Emergency Fund
High-Yield Savings Account (HYSA)
- Pros: FDIC-insured, simple, same-day access
- Cons: Lower returns than investments
- Best for: Primary emergency fund location
Money Market Account
- Pros: Slightly higher rates, check-writing ability
- Cons: May have minimum balance requirements
- Best for: Larger emergency funds
Short-Term Treasury Bills or T-Bill ETFs
- Pros: Higher yields, very low risk
- Cons: Minor liquidity delay (1-2 business days)
- Best for: Portion of a larger emergency fund
Comparison of options (approximate 2026 rates):
| Account Type | APY | FDIC Insured | Liquidity |
|---|---|---|---|
| National bank savings | 0.5% | Yes | Instant |
| High-yield savings | 4.0-4.5% | Yes | 1-2 days |
| Money market | 4.0-4.3% | Yes | 1-3 days |
| 3-month T-Bill | 4.2-4.8% | Gov't backed | 1-2 days |
Emergency Fund vs. Investing: Priority Order
One of the most common personal finance debates is whether to invest before fully funding the emergency fund. A practical priority sequence:
- Step 1: Build a starter emergency fund of USD 1,000
- Step 2: Pay off all high-interest debt (above 10% APR)
- Step 3: Contribute to 401k up to employer match (free money)
- Step 4: Grow emergency fund to 3-6 months of expenses
- Step 5: Max out HSA (if eligible), IRA, then 401k
- Step 6: Invest in taxable brokerage account
4. Debt Management Strategies
Good Debt vs. Bad Debt
Not all debt is equal. The key distinction is whether the debt funds something that appreciates or generates income.
Characteristics of good debt:
- Low interest rate (below your expected investment returns)
- Funds an appreciating asset (real estate, education with high ROI)
- Provides tax deductions (mortgage interest deduction)
Characteristics of bad debt:
- High interest rate (above 10% APR)
- Funds depreciating assets or pure consumption
- No tax benefit
Common debt types ranked by typical APR:
| Debt Type | Typical APR | Classification |
|---|---|---|
| Federal student loans | 5-7% | Context-dependent |
| Mortgage (30-year) | 6-7% | Usually good |
| Auto loan (new car) | 5-8% | Often bad |
| Personal loan | 8-15% | Bad |
| Credit card | 18-24% | Very bad |
| Payday loan | 300-400%+ | Extremely bad |
The Debt Snowball Method
Popularized by Dave Ramsey, the Snowball Method attacks the smallest debt first, regardless of interest rate.
How it works:
- List all debts from smallest balance to largest
- Make minimum payments on every debt
- Apply all extra money to the smallest debt
- When the smallest debt is paid off, roll its payment to the next smallest
Debt list (Snowball order):
Priority Debt Balance APR Min Payment
1 Medical bill USD 400 0% USD 20
2 Store card USD 800 22% USD 25
3 Personal loan USD 3,200 14% USD 80
4 Car loan USD 12,000 6% USD 240
5 Student loan USD 28,000 5.5% USD 300
Monthly extra payment available: USD 300
Action: Pay minimums on items 2-5, apply USD 300 extra to item 1
Result: Item 1 paid off in 2 months
Then: USD 320 (USD 20 + USD 300) now attacks item 2
Pros: Psychological momentum, quick wins, reduces number of debts Cons: May pay more total interest than optimal
The Debt Avalanche Method
The Avalanche Method attacks the highest-interest debt first, minimizing total interest paid.
How it works:
- List all debts from highest APR to lowest
- Make minimum payments on every debt
- Apply all extra money to the highest-APR debt
- When highest-APR debt is paid, roll its payment to the next highest
Debt list (Avalanche order):
Priority Debt Balance APR Min Payment
1 Store card USD 800 22% USD 25
2 Personal loan USD 3,200 14% USD 80
3 Car loan USD 12,000 6% USD 240
4 Student loan USD 28,000 5.5% USD 300
5 Medical bill USD 400 0% USD 20
Monthly extra payment available: USD 300
Action: Pay minimums on items 2-5, apply USD 300 extra to item 1
Result: Item 1 (store card) paid off in ~3 months
Then: USD 325 now attacks personal loan at 14%
Pros: Mathematically optimal, minimizes total interest paid Cons: Large high-APR debts feel slow to pay off; requires patience
Which Method Should You Choose?
The best method is the one you will stick with.
- Choose Snowball if: You need motivational wins, have many small debts, or have tried and failed at debt payoff before
- Choose Avalanche if: You are mathematically motivated, have large high-APR debts, or are comfortable with delayed gratification
Hybrid approach: Use Snowball to eliminate a few small debts quickly to free up cash flow, then switch to Avalanche for the remaining larger debts.
Strategies to Lower Your Interest Rates
- Balance transfer: Move high-APR credit card debt to a 0% introductory APR card (watch transfer fees)
- Personal loan refinancing: Consolidate high-APR credit card debt into a lower-APR personal loan
- Mortgage refinancing: When rates drop significantly below your current rate
- Negotiate directly: Call your credit card company and ask for a rate reduction (works more often than people realize)
- Improve your credit score: Better credit score unlocks lower rates across all products
5. Wealth Building Stages
Stage 1: Emergency Fund Foundation (Target: USD 10,000)
Timeline: 6-12 months
- Park funds in a high-yield savings account
- Monthly savings target: USD 500-1,500 depending on income
- Focus entirely on savings, not investing
- Do not invest until you have at least USD 1,000 starter emergency fund
Stage 2: Maximize Tax-Advantaged Accounts
Retirement accounts offer compounding returns with a tax advantage that is nearly impossible to replicate elsewhere.
401(k) with employer match:
Always contribute enough to capture the full employer match.
This is an immediate 50-100% return on your contribution.
Example:
Your salary: USD 70,000
Your contribution: USD 3,500 (5%)
Employer match: USD 3,500 (5% match)
Total invested: USD 7,000
Immediate return: 100%
2026 contribution limits:
- 401(k): USD 23,500 (USD 31,000 if age 50+)
- IRA (Traditional or Roth): USD 7,000 (USD 8,000 if age 50+)
- HSA (individual): USD 4,300 / (family): USD 8,550
Roth vs. Traditional IRA:
| Roth IRA | Traditional IRA | |
|---|---|---|
| Contribution | After-tax | Pre-tax |
| Growth | Tax-free | Tax-deferred |
| Withdrawals | Tax-free (qualified) | Taxed as income |
| Best for | Lower income now, higher later | Higher income now |
Stage 3: Taxable Brokerage Account
After maxing tax-advantaged accounts, invest additional funds in a taxable brokerage account.
Portfolio construction principles:
- Core holdings (70%): Broad market index ETFs (total US market, international, bonds)
- Satellite holdings (30%): Sector ETFs, REITs, individual stocks if desired
Sample three-fund portfolio:
Conservative (Age 50+):
US Total Market ETF: 40%
International ETF: 20%
US Bond ETF: 40%
Moderate (Age 35-50):
US Total Market ETF: 50%
International ETF: 30%
US Bond ETF: 20%
Aggressive (Age 20-35):
US Total Market ETF: 60%
International ETF: 30%
US Bond ETF: 10%
Age-based stock allocation rule of thumb:
Stock allocation (%) = 110 - Your Age
Examples:
Age 25: 85% stocks, 15% bonds
Age 40: 70% stocks, 30% bonds
Age 55: 55% stocks, 45% bonds
Stage 4: Real Estate and Alternative Investments
Once you have a solid financial asset base, consider diversification into real estate or alternatives.
Real estate options:
- Direct ownership (primary residence, rental property)
- REITs (Real Estate Investment Trusts): invest in real estate through the stock market
- Real estate crowdfunding platforms
Alternative investments:
- Gold/commodity ETFs: inflation hedge
- Private lending platforms: higher yield but illiquid
- Small business ownership / side business income
Important caution: Alternative investments often come with higher fees, lower liquidity, and complexity. Only allocate money you can afford to leave illiquid for extended periods.
6. Tax Optimization Strategies
Maximize Deductions and Credits
The US tax code offers substantial deductions and credits. Knowing which ones apply to you can save thousands of dollars annually.
Key above-the-line deductions:
Student loan interest: Up to USD 2,500
IRA contribution: Up to USD 7,000
HSA contribution: Up to USD 4,300 (individual)
Self-employed health ins.: 100% of premiums
Teacher classroom exp.: Up to USD 300
Key credits:
Child Tax Credit: Up to USD 2,000 per child
Earned Income Tax Credit: Up to USD 7,800 (varies by income)
Saver's Credit: Up to USD 1,000 (USD 2,000 MFJ)
Lifetime Learning Credit: Up to USD 2,000
American Opportunity Credit: Up to USD 2,500 (first 4 years college)
Understanding Capital Gains Taxes
Long-term capital gains (assets held over 12 months) are taxed at preferential rates.
2026 long-term capital gains rates:
| Filing Status | 0% Rate | 15% Rate | 20% Rate |
|---|---|---|---|
| Single | Up to USD 47,025 | USD 47,025-518,900 | Above USD 518,900 |
| Married filing jointly | Up to USD 94,050 | USD 94,050-583,750 | Above USD 583,750 |
Tax-loss harvesting:
- Sell investments at a loss to offset capital gains
- Can offset up to USD 3,000 of ordinary income per year if losses exceed gains
- Reinvest in a similar (but not substantially identical) asset to maintain market exposure
- Watch the 30-day wash sale rule
Tax-Efficient Investing
The order in which you hold assets across account types significantly affects your after-tax returns.
Asset location strategy:
Tax-deferred accounts (Traditional 401k, IRA):
- Bonds and bond ETFs (high ordinary income)
- REITs (high dividend income)
- High-turnover active funds
Roth accounts (Roth IRA, Roth 401k):
- High-growth assets (small-cap, international)
- Assets expected to appreciate most
Taxable brokerage:
- Tax-efficient index ETFs (low turnover)
- Municipal bonds (if in high tax bracket)
- I Bonds (tax-deferred interest)
Backdoor Roth IRA
High earners who exceed Roth IRA income limits can use the Backdoor Roth strategy.
2026 Roth IRA income limits:
- Phase-out starts: USD 150,000 (single), USD 236,000 (MFJ)
- Phase-out ends: USD 165,000 (single), USD 246,000 (MFJ)
Backdoor Roth steps:
1. Contribute USD 7,000 to a Traditional IRA (non-deductible)
2. Convert the Traditional IRA to a Roth IRA
3. Result: Roth IRA contribution with no income limit
Note: The "pro-rata rule" applies if you have other pre-tax IRA funds.
Consult a tax professional before executing.
7. Python Financial Planning Tools
Compound Interest Calculator
def compound_interest_calculator(
principal: float,
annual_rate: float,
years: int,
monthly_contribution: float = 0,
compounds_per_year: int = 12
) -> dict:
"""
Compound interest calculator with optional monthly contributions.
Args:
principal: Initial investment amount (USD)
annual_rate: Annual return rate (e.g., 0.07 for 7%)
years: Investment horizon in years
monthly_contribution: Additional monthly investment (USD)
compounds_per_year: How many times interest compounds per year
Returns:
Dictionary with final value, total invested, and total earnings
"""
r = annual_rate / compounds_per_year
n = compounds_per_year * years
# Future value of initial principal
fv_principal = principal * (1 + r) ** n
# Future value of monthly contributions (annuity formula)
if r > 0:
fv_contributions = monthly_contribution * (
((1 + r) ** n - 1) / r
)
else:
fv_contributions = monthly_contribution * n
total_future_value = fv_principal + fv_contributions
total_invested = principal + (monthly_contribution * n)
total_earnings = total_future_value - total_invested
return {
"final_value": round(total_future_value, 2),
"total_invested": round(total_invested, 2),
"total_earnings": round(total_earnings, 2),
"return_pct": round((total_earnings / total_invested) * 100, 2)
}
# Example: Investing USD 10,000 plus USD 500/month for 30 years at 7%
result = compound_interest_calculator(
principal=10_000,
annual_rate=0.07,
years=30,
monthly_contribution=500
)
print("=== Compound Interest Calculator ===")
print(f"Final Value: ${result['final_value']:>12,.2f}")
print(f"Total Invested: ${result['total_invested']:>12,.2f}")
print(f"Total Earnings: ${result['total_earnings']:>12,.2f}")
print(f"Return: {result['return_pct']:>11.2f}%")
FIRE Number Calculator and Simulation
def fire_simulation(
current_age: int,
current_portfolio: float,
annual_expenses: float,
annual_income: float,
savings_rate: float,
investment_return: float = 0.07,
safe_withdrawal_rate: float = 0.04,
inflation_rate: float = 0.03
) -> dict:
"""
FIRE (Financial Independence, Retire Early) simulation.
Args:
current_age: Your current age
current_portfolio: Current invested assets (USD)
annual_expenses: Current annual living expenses (USD)
annual_income: Annual after-tax income (USD)
savings_rate: Fraction of income saved (e.g., 0.30 = 30%)
investment_return: Expected annual portfolio return
safe_withdrawal_rate: Annual withdrawal rate in retirement (4% rule)
inflation_rate: Expected annual inflation rate
Returns:
FIRE number, projected age at retirement, years to FIRE
"""
# FIRE number: the portfolio needed to sustain expenses indefinitely
fire_number = annual_expenses / safe_withdrawal_rate
# Real (inflation-adjusted) return
real_return = (1 + investment_return) / (1 + inflation_rate) - 1
annual_savings = annual_income * savings_rate
portfolio = current_portfolio
years = 0
while portfolio < fire_number:
portfolio = portfolio * (1 + real_return) + annual_savings
years += 1
if years > 100:
return {
"error": "FIRE is not achievable within 100 years at current savings rate. "
"Consider increasing income, reducing expenses, or both."
}
fire_age = current_age + years
return {
"fire_number": round(fire_number, 2),
"fire_age": fire_age,
"years_to_fire": years,
"current_portfolio": round(current_portfolio, 2),
"annual_savings": round(annual_savings, 2),
"monthly_savings": round(annual_savings / 12, 2),
"savings_rate_pct": savings_rate * 100
}
# Example: 30-year-old, USD 50k portfolio, USD 60k expenses, USD 100k income, 30% savings rate
result = fire_simulation(
current_age=30,
current_portfolio=50_000,
annual_expenses=60_000,
annual_income=100_000,
savings_rate=0.30,
investment_return=0.07,
safe_withdrawal_rate=0.04
)
print("\n=== FIRE Simulation Results ===")
for key, value in result.items():
if isinstance(value, float) and value > 1000:
print(f"{key:25s}: ${value:>12,.2f}")
else:
print(f"{key:25s}: {value}")
Goal-Based Savings Calculator
def goal_savings_calculator(
target_amount: float,
current_savings: float,
monthly_contribution: float,
annual_return: float
) -> dict:
"""
Calculate time needed to reach a financial goal.
Args:
target_amount: Target savings goal (USD)
current_savings: Current amount saved (USD)
monthly_contribution: Monthly contribution amount (USD)
annual_return: Expected annual return rate
Returns:
Months needed, years and months breakdown, projected final amount
"""
monthly_return = annual_return / 12
months = 0
portfolio = current_savings
while portfolio < target_amount:
portfolio = portfolio * (1 + monthly_return) + monthly_contribution
months += 1
if months > 600:
break
years = months // 12
remaining_months = months % 12
return {
"target_amount": round(target_amount, 2),
"months_needed": months,
"time_to_goal": f"{years} years, {remaining_months} months",
"projected_balance": round(portfolio, 2)
}
# Example 1: House down payment
down_payment_goal = goal_savings_calculator(
target_amount=60_000,
current_savings=10_000,
monthly_contribution=1_200,
annual_return=0.05
)
print("\n=== Down Payment Goal ===")
print(f"Target: ${down_payment_goal['target_amount']:>10,.2f}")
print(f"Time needed: {down_payment_goal['time_to_goal']}")
print(f"Projected balance:${down_payment_goal['projected_balance']:>10,.2f}")
# Example 2: USD 1 million retirement milestone
million_goal = goal_savings_calculator(
target_amount=1_000_000,
current_savings=50_000,
monthly_contribution=1_500,
annual_return=0.07
)
print("\n=== USD 1 Million Milestone ===")
print(f"Target: ${million_goal['target_amount']:>10,.2f}")
print(f"Time needed: {million_goal['time_to_goal']}")
print(f"Projected balance:${million_goal['projected_balance']:>10,.2f}")
Debt Payoff Comparison: Snowball vs. Avalanche
def compare_debt_payoff_methods(
debts: list,
extra_monthly_payment: float
) -> dict:
"""
Compare Snowball and Avalanche debt payoff methods.
Args:
debts: List of dicts with keys: name, balance, apr, min_payment
extra_monthly_payment: Extra money available beyond minimums
Returns:
Comparison of total interest paid and months for each method
"""
import copy
def simulate_payoff(debt_list, method):
debts_copy = copy.deepcopy(debt_list)
total_interest = 0
months = 0
while any(d["balance"] > 0 for d in debts_copy):
months += 1
monthly_rate_list = [d["apr"] / 12 for d in debts_copy]
# Sort based on method
active = [d for d in debts_copy if d["balance"] > 0]
if method == "snowball":
active.sort(key=lambda x: x["balance"])
else: # avalanche
active.sort(key=lambda x: -x["apr"])
# Apply interest and minimum payments
for i, debt in enumerate(debts_copy):
if debt["balance"] > 0:
interest = debt["balance"] * (debt["apr"] / 12)
total_interest += interest
debt["balance"] += interest
payment = min(debt["min_payment"], debt["balance"])
debt["balance"] -= payment
debt["balance"] = max(0, debt["balance"])
# Apply extra payment to priority debt
remaining_extra = extra_monthly_payment
for debt in active:
match = next((d for d in debts_copy if d["name"] == debt["name"]), None)
if match and match["balance"] > 0:
applied = min(remaining_extra, match["balance"])
match["balance"] -= applied
remaining_extra -= applied
if remaining_extra <= 0:
break
if months > 600:
break
return {"months": months, "total_interest": round(total_interest, 2)}
snowball_result = simulate_payoff(debts, "snowball")
avalanche_result = simulate_payoff(debts, "avalanche")
return {
"snowball": snowball_result,
"avalanche": avalanche_result,
"interest_saved_with_avalanche": round(
snowball_result["total_interest"] - avalanche_result["total_interest"], 2
)
}
# Example debts
my_debts = [
{"name": "Credit Card A", "balance": 3_500, "apr": 0.22, "min_payment": 75},
{"name": "Medical Bill", "balance": 800, "apr": 0.00, "min_payment": 30},
{"name": "Personal Loan", "balance": 8_000, "apr": 0.14, "min_payment": 180},
{"name": "Car Loan", "balance": 15_000, "apr": 0.06, "min_payment": 280},
]
comparison = compare_debt_payoff_methods(my_debts, extra_monthly_payment=400)
print("\n=== Debt Payoff Method Comparison ===")
print(f"Snowball: {comparison['snowball']['months']} months, "
f"${comparison['snowball']['total_interest']:,.2f} total interest")
print(f"Avalanche: {comparison['avalanche']['months']} months, "
f"${comparison['avalanche']['total_interest']:,.2f} total interest")
print(f"Interest saved with Avalanche: ${comparison['interest_saved_with_avalanche']:,.2f}")
8. Quizzes
Quiz 1: Net Worth Calculation
Q: Calculate the net worth of someone with the following financial profile.
Assets: Checking account USD 3,000, Savings account USD 12,000, 401k USD 45,000, Car (market value) USD 18,000, Home (market value) USD 320,000 Liabilities: Mortgage balance USD 240,000, Car loan balance USD 11,000, Credit card balance USD 2,500
Answer: USD 144,500
Explanation:
- Total Assets = USD 3,000 + USD 12,000 + USD 45,000 + USD 18,000 + USD 320,000 = USD 398,000
- Total Liabilities = USD 240,000 + USD 11,000 + USD 2,500 = USD 253,500
- Net Worth = USD 398,000 - USD 253,500 = USD 144,500
Note: Net worth is a snapshot in time. Cars depreciate rapidly, so the real net worth may be lower if the car's value declines faster than the loan is paid off.
Quiz 2: 50/30/20 Rule Application
Q: A person earns USD 72,000 gross per year and pays USD 14,000 in taxes. Applying the 50/30/20 rule to their after-tax income, how much should they budget for wants per month?
Answer: USD 1,450 per month
Explanation:
- After-tax annual income = USD 72,000 - USD 14,000 = USD 58,000
- Monthly after-tax income = USD 58,000 / 12 = approximately USD 4,833
- Wants allocation (30%) = USD 4,833 x 0.30 = approximately USD 1,450
The 50/30/20 rule is applied to after-tax (take-home) income, not gross income.
Quiz 3: Debt Payoff Strategy
Q: You have three debts and USD 200 extra per month. In which order do the Snowball and Avalanche methods prioritize them?
Debt A: USD 500 balance, 24% APR, USD 25 minimum payment Debt B: USD 4,000 balance, 9% APR, USD 90 minimum payment Debt C: USD 2,200 balance, 16% APR, USD 60 minimum payment
Answer:
- Snowball order: A (USD 500) → C (USD 2,200) → B (USD 4,000) — smallest balance first
- Avalanche order: A (24%) → C (16%) → B (9%) — highest APR first
Explanation: In this case, Debt A happens to be both the smallest balance AND the highest APR, so both methods agree on attacking A first. After A is paid off, the methods diverge: Snowball moves to C (smaller balance), while Avalanche also moves to C (higher APR than B). In this specific scenario both methods produce the same order, but this is coincidental. In general, Snowball prioritizes balance while Avalanche prioritizes interest rate.
Quiz 4: Compound Interest
Q: Two investors each invest USD 10,000 at age 25 with a 7% annual return. Investor A contributes USD 500/month until age 65. Investor B never adds another dollar. Approximately how much does each have at age 65?
Answer:
- Investor A (USD 10,000 + USD 500/month for 40 years): approximately USD 1,310,000
- Investor B (USD 10,000, no additional contributions, 40 years): approximately USD 149,745
Explanation:
- Investor B: USD 10,000 x (1.07)^40 = approximately USD 149,745
- Investor A: The initial USD 10,000 grows to USD 149,745, PLUS the USD 500/month contributions compound to approximately USD 1,160,000, for a total of approximately USD 1,310,000
This illustrates the enormous impact of regular contributions vs. a single lump sum. Even a modest monthly addition dramatically accelerates wealth accumulation through compound growth.
Quiz 5: FIRE Number
Q: A couple plans to retire early and estimates they need USD 80,000 per year in retirement. Using the 4% rule, what is their FIRE number? If they currently have USD 200,000 invested and save USD 3,000/month with a 7% annual return, approximately how many years until they reach their FIRE number?
Answer: FIRE number = USD 2,000,000; approximately 21 years to reach it
Explanation:
- FIRE Number = Annual Expenses / Safe Withdrawal Rate = USD 80,000 / 0.04 = USD 2,000,000
- Starting with USD 200,000, adding USD 3,000/month at 7% annual return (compounding monthly)
- After approximately 21 years, the portfolio reaches approximately USD 2,000,000
- The 4% rule means in retirement, they withdraw 4% (USD 80,000) of USD 2,000,000 per year. Historical data suggests this amount sustains a 30+ year retirement in most market scenarios.
Conclusion
Building wealth is a marathon, not a sprint. No single strategy works for everyone, and perfection is the enemy of progress. The most important step is to start — even imperfectly — and to build momentum through consistent action.
Key takeaways:
- Know your numbers: Calculate net worth, track income and expenses, and measure progress monthly
- Emergency fund first: Three to six months of essential expenses in a high-yield savings account before investing aggressively
- Eliminate high-interest debt: Any debt above 10% APR is a guaranteed negative return on your money
- Maximize tax-advantaged accounts: 401k match, IRA, HSA — use all of them before investing in taxable accounts
- Invest consistently and automatically: Set up automatic contributions so behavior does not depend on willpower
- Stay the course: Long-term investors who ignore short-term volatility consistently outperform those who try to time the market
Your financial situation is unique. Use this guide as a framework, adapt it to your circumstances, and revisit your plan at least once per year. Financial freedom is achievable for anyone who starts with a solid plan and executes it patiently.