Buy vs. Rent Calculator

Monte Carlo simulation across 1,000 scenarios — probability ranges, not single estimates. Global city presets included.

Break-Even Year
80% confidence range
Buy Net Cost
at horizon (median)
Rent Net Cost
at horizon (median)
Monthly Mortgage
principal + interest only
Home Value (FV)
at horizon (median)
Verdict
median scenario
Calculating…
📊

PV · NPV · FV Analysis

Metric5 Yrs10 Yrs20 Yrs30 Yrs
Calculating…
📈

Monte Carlo — Buying Advantage Over Time

90th %ile
50th %ile (median)
10th %ile
Break-even

Positive = buying is cheaper; negative = renting is cheaper. Shaded band shows P10–P90 uncertainty.

💰

Cumulative Net Cost Over Time

Net cost of buying (after equity)
Net cost of renting (after investment)
🗓

Monthly Cost Comparison Over Time

Total monthly ownership cost
Monthly rent
📐

Formula Reference

Monthly Mortgage Payment (PMT)

PMT = P × [r(1+r)ⁿ] / [(1+r)ⁿ − 1]
  • P = loan principal (home price − down payment)
  • r = monthly interest rate (annual rate ÷ 12 ÷ 100)
  • n = total number of monthly payments (years × 12)

Future Value (FV)

FV = PV × (1 + r)ⁿ
  • PV = present value (home price or down payment)
  • r = annual growth rate ÷ 100
  • n = number of years

Present Value (PV)

PV = FV / (1 + r)ⁿ
  • FV = future cash value
  • r = discount rate per period
  • n = number of years

Present Value of Annuity

PV = PMT × [1 − (1+r)⁻ⁿ] / r
  • PMT = periodic payment
  • r = monthly discount rate
  • n = total number of periods

Net Present Value (NPV)

NPV = Σ [ CFₜ / (1 + r)ᵗ ] for t = 1 to n
  • CFₜ = net cash flow in year t
  • r = discount rate per year

Remaining Loan Balance

B = P × [(1+r)ⁿ − (1+r)ᵏ] / [(1+r)ⁿ − 1]
  • k = payments made so far

Monte Carlo Simulation

X = μ + σ × Z where Z ~ N(0,1)
  • μ = user-specified base rate
  • σ = standard deviation (appreciation 2%, rent 1.5%, inv return 2.5%, maint 1%)
  • 1,000 scenarios; P10/P50/P90 reported

Opportunity Cost of Down Payment

OC = DP × (1 + r_inv)ⁿ − DP
  • DP = down payment amount
  • r_inv = annual investment return ÷ 100