{
  "id": "rent-vs-buy",
  "version": "3c5f6eb76b23",
  "status": "published",
  "name": "Rent vs Buy Calculator",
  "question": "Rent vs buy: which is better?",
  "summary": "Compares the net worth of buying a home with renting and investing the difference, month by month, and finds when buying breaks even.",
  "category": "finance",
  "subcategory": "loans",
  "url": "https://www.acalculator.org/finance/rent-vs-buy-calculator",
  "markdown": "https://www.acalculator.org/finance/rent-vs-buy-calculator.md",
  "kind": "schedule",
  "method": "Month by month, the buyer pays the mortgage and costs of owning and the renter pays rent; whoever pays less invests the difference. Net worth if you buy = home value after selling costs − loan − tax + investments; if you rent = investments after tax.",
  "assumptions": [
    "Both households start with the same cash. The renter invests the down payment and buying costs instead.",
    "Each month, whoever pays less for housing invests the difference at the investment return.",
    "Property tax, insurance, and maintenance are yearly shares of the home’s current value, paid monthly.",
    "Rent rises at the start of each new year. The home’s value and investments grow monthly at the yearly rates.",
    "PMI is paid only on a loan above 80% of the price, until the balance falls to 78% of the price.",
    "Federal tax saving: the 2026 tax with the standard deduction minus the tax with itemized mortgage interest (scaled by $750,000 ÷ the year’s average balance above that) and property tax (up to the SALT limit), credited once a year. It is never more than the tax owed. 2026 tax law and amounts are used for every year; state income and sales taxes are not counted.",
    "At the end, the home is sold: selling costs, the loan, and capital gains tax on any gain above the exclusion (after 2 years) are paid. Investment gains are taxed at the capital gains rate. A loss gives no tax back."
  ],
  "inputs": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "type": "object",
    "properties": {
      "homePrice": {
        "title": "Home price",
        "description": "The price of the home you would buy.",
        "type": "number",
        "x-unit": "USD",
        "minimum": 1000,
        "maximum": 100000000
      },
      "downPaymentPercent": {
        "title": "Down payment",
        "description": "The share of the price paid up front; the rest is the mortgage.",
        "type": "number",
        "x-unit": "percent",
        "minimum": 0,
        "maximum": 100
      },
      "interestRate": {
        "title": "Mortgage rate",
        "description": "The fixed yearly mortgage interest rate (APR), paid monthly.",
        "type": "number",
        "x-unit": "percent",
        "minimum": 0,
        "maximum": 30
      },
      "loanTerm": {
        "title": "Mortgage length (years)",
        "description": "How many years the fixed-rate mortgage runs.",
        "type": "integer",
        "minimum": 1,
        "maximum": 50
      },
      "monthlyRent": {
        "title": "Rent per month",
        "description": "The rent for a similar home today.",
        "type": "number",
        "x-unit": "USD",
        "minimum": 0,
        "maximum": 1000000
      },
      "years": {
        "title": "How long will you stay? (years)",
        "description": "How many years until you would sell the home or stop renting.",
        "type": "integer",
        "minimum": 1,
        "maximum": 40
      },
      "propertyTaxRate": {
        "title": "Property tax (per year)",
        "description": "Yearly property tax as a share of the home’s value.",
        "type": "number",
        "x-unit": "percent",
        "minimum": 0,
        "maximum": 10
      },
      "homeInsuranceRate": {
        "title": "Home insurance (per year)",
        "description": "Yearly homeowners insurance as a share of the home’s value.",
        "type": "number",
        "x-unit": "percent",
        "minimum": 0,
        "maximum": 10
      },
      "maintenanceRate": {
        "title": "Maintenance (per year)",
        "description": "Yearly upkeep and repairs as a share of the home’s value.",
        "type": "number",
        "x-unit": "percent",
        "minimum": 0,
        "maximum": 10
      },
      "hoaFee": {
        "title": "HOA fee per month",
        "description": "Homeowners association dues each month.",
        "type": "number",
        "x-unit": "USD",
        "minimum": 0,
        "maximum": 100000
      },
      "pmiRate": {
        "title": "Mortgage insurance (PMI, per year)",
        "description": "Yearly private mortgage insurance as a share of the loan, paid while the balance is above 78% of the price.",
        "type": "number",
        "x-unit": "percent",
        "minimum": 0,
        "maximum": 5
      },
      "buyingClosingCosts": {
        "title": "Closing costs when buying",
        "description": "One-time costs to buy, as a share of the price.",
        "type": "number",
        "x-unit": "percent",
        "minimum": 0,
        "maximum": 20
      },
      "sellingClosingCosts": {
        "title": "Costs of selling",
        "description": "Agent fees and other costs to sell, as a share of the sale price.",
        "type": "number",
        "x-unit": "percent",
        "minimum": 0,
        "maximum": 20
      },
      "homeAppreciation": {
        "title": "Home value growth (per year)",
        "description": "How fast the home’s value rises each year.",
        "type": "number",
        "x-unit": "percent",
        "minimum": -20,
        "maximum": 30
      },
      "rentAppreciation": {
        "title": "Rent increase (per year)",
        "description": "How much the rent rises at the start of each new year.",
        "type": "number",
        "x-unit": "percent",
        "minimum": -20,
        "maximum": 30
      },
      "investmentReturn": {
        "title": "Investment return (per year)",
        "description": "The yearly return on money invested instead of spent on the home.",
        "type": "number",
        "x-unit": "percent",
        "minimum": -20,
        "maximum": 30
      },
      "capitalGainsTax": {
        "title": "Capital gains tax rate",
        "description": "The tax rate on investment gains, and on home sale gains above the exclusion.",
        "type": "number",
        "x-unit": "percent",
        "minimum": 0,
        "maximum": 50
      },
      "annualIncome": {
        "title": "Household income (per year)",
        "description": "Yearly income, used for the federal tax bracket and the SALT limit.",
        "type": "number",
        "x-unit": "USD",
        "minimum": 0,
        "maximum": 100000000
      },
      "filingStatus": {
        "title": "Tax filing status",
        "description": "The federal filing status, for the standard deduction, brackets, and home sale exclusion.",
        "type": "string",
        "enum": [
          "single",
          "married",
          "head"
        ]
      }
    }
  },
  "outputs": {
    "advantage": {
      "label": "Better off by",
      "description": "The difference in net worth at the end, in favor of the better choice.",
      "format": "money"
    },
    "winner": {
      "label": "Better choice",
      "description": "Buying or renting, whichever ends with more.",
      "format": "text"
    },
    "buyWorth": {
      "label": "Net worth if you buy",
      "description": "After selling the home at the end, paying the loan, selling costs, and tax, plus any investments.",
      "format": "money"
    },
    "rentWorth": {
      "label": "Net worth if you rent",
      "description": "The renter’s investments at the end, after capital gains tax.",
      "format": "money"
    },
    "breakEven": {
      "label": "Buying pays off after",
      "description": "The first month from which buying stays ahead of renting to the end.",
      "format": "duration"
    },
    "payment": {
      "label": "Mortgage payment",
      "description": "The monthly principal and interest payment.",
      "format": "money"
    },
    "firstBuyCost": {
      "label": "First month cost of buying",
      "description": "Mortgage payment, property tax, insurance, maintenance, HOA, and PMI in the first month.",
      "format": "money"
    },
    "upfront": {
      "label": "Cash needed to buy",
      "description": "The down payment plus the closing costs.",
      "format": "money"
    },
    "taxSavings": {
      "label": "Total tax saving",
      "description": "Federal tax saved by itemizing mortgage interest and property tax, over the whole stay.",
      "format": "money"
    }
  },
  "defaultAnswer": {
    "inputs": {
      "homePrice": 400000,
      "downPaymentPercent": 20,
      "interestRate": 5.5,
      "loanTerm": 30,
      "monthlyRent": 1800,
      "years": 10,
      "propertyTaxRate": 1.2,
      "homeInsuranceRate": 0.5,
      "maintenanceRate": 1,
      "hoaFee": 0,
      "pmiRate": 0.5,
      "buyingClosingCosts": 2,
      "sellingClosingCosts": 6,
      "homeAppreciation": 3,
      "rentAppreciation": 2,
      "investmentReturn": 7,
      "capitalGainsTax": 15,
      "annualIncome": 80000,
      "filingStatus": "single"
    },
    "outputs": {
      "advantage": 48723.67478606294,
      "winner": "Renting",
      "buyWorth": 245921.19462863894,
      "rentWorth": 294644.8694147019,
      "payment": 1816.9248043104094,
      "firstBuyCost": 2716.9248043104094,
      "upfront": 88000,
      "taxSavings": 12527.096265986904
    },
    "text": "Renting leaves you $48,723.67 better off after 10 years."
  },
  "examples": [
    {
      "given": {
        "homePrice": 400000,
        "downPaymentPercent": 20,
        "interestRate": 5.5,
        "loanTerm": 30,
        "monthlyRent": 4000,
        "years": 10,
        "propertyTaxRate": 1.2,
        "homeInsuranceRate": 0.5,
        "maintenanceRate": 1,
        "hoaFee": 0,
        "pmiRate": 0.5,
        "buyingClosingCosts": 2,
        "sellingClosingCosts": 6,
        "homeAppreciation": 3,
        "rentAppreciation": 2,
        "investmentReturn": 7,
        "capitalGainsTax": 15,
        "annualIncome": 80000,
        "filingStatus": "single"
      },
      "expect": {
        "payment": 1816.924804310402,
        "firstBuyCost": 2716.9248043104017,
        "upfront": 88000,
        "buyWorth": 501394.0961980961,
        "rentWorth": 160342.9215252595,
        "advantage": 341051.1746728366,
        "winner": "Buying",
        "breakEven": {
          "years": 1,
          "months": 3
        },
        "taxSavings": 12527.096265986906
      },
      "source": "the rules in content.mdx, run month by month in Python (docs/progress/WP-22/python/rent_vs_buy.py); payment from the CFPB amortization formula; 2026 tax figures from IRS Rev. Proc. 2025-32"
    },
    {
      "given": {
        "homePrice": 400000,
        "downPaymentPercent": 20,
        "interestRate": 5.5,
        "loanTerm": 30,
        "monthlyRent": 1800,
        "years": 10,
        "propertyTaxRate": 1.2,
        "homeInsuranceRate": 0.5,
        "maintenanceRate": 1,
        "hoaFee": 0,
        "pmiRate": 0.5,
        "buyingClosingCosts": 2,
        "sellingClosingCosts": 6,
        "homeAppreciation": 3,
        "rentAppreciation": 2,
        "investmentReturn": 7,
        "capitalGainsTax": 15,
        "annualIncome": 80000,
        "filingStatus": "single"
      },
      "expect": {
        "buyWorth": 245921.19462863903,
        "rentWorth": 294644.8694147005,
        "advantage": 48723.674786061456,
        "winner": "Renting"
      },
      "source": "the rules in content.mdx, run in Python (docs/progress/WP-22/python/rent_vs_buy.py, rvb(rent=1800)); rent from US Census Bureau ACS 2019-2023 medians"
    },
    {
      "given": {
        "homePrice": 900000,
        "downPaymentPercent": 10,
        "interestRate": 5.5,
        "loanTerm": 30,
        "monthlyRent": 3500,
        "years": 15,
        "propertyTaxRate": 1.2,
        "homeInsuranceRate": 0.5,
        "maintenanceRate": 1,
        "hoaFee": 0,
        "pmiRate": 0.5,
        "buyingClosingCosts": 2,
        "sellingClosingCosts": 6,
        "homeAppreciation": 3,
        "rentAppreciation": 2,
        "investmentReturn": 7,
        "capitalGainsTax": 15,
        "annualIncome": 250000,
        "filingStatus": "married"
      },
      "expect": {
        "payment": 4599.090910910704,
        "rentWorth": 1162056.4845493333,
        "advantage": 380209.1153763471,
        "taxSavings": 66345.1577890284,
        "winner": "Renting"
      },
      "source": "the rules in content.mdx, run in Python (docs/progress/WP-22/python/rent_vs_buy.py)"
    },
    {
      "given": {
        "homePrice": 400000,
        "downPaymentPercent": 20,
        "interestRate": 5.5,
        "loanTerm": 30,
        "monthlyRent": 2000,
        "years": 5,
        "propertyTaxRate": 1.2,
        "homeInsuranceRate": 0.5,
        "maintenanceRate": 1,
        "hoaFee": 0,
        "pmiRate": 0.5,
        "buyingClosingCosts": 2,
        "sellingClosingCosts": 6,
        "homeAppreciation": 3,
        "rentAppreciation": 2,
        "investmentReturn": 7,
        "capitalGainsTax": 15,
        "annualIncome": 80000,
        "filingStatus": "single"
      },
      "expect": {
        "buyWorth": 143474.9477158967,
        "rentWorth": 163093.6034936456,
        "winner": "Renting",
        "advantage": 19618.655777748907
      },
      "source": "the rules in content.mdx, run in Python (docs/progress/WP-22/python/rent_vs_buy.py)"
    },
    {
      "given": {
        "homePrice": 400000,
        "downPaymentPercent": 10,
        "interestRate": 5.5,
        "loanTerm": 30,
        "monthlyRent": 2500,
        "years": 10,
        "propertyTaxRate": 1.2,
        "homeInsuranceRate": 0.5,
        "maintenanceRate": 1,
        "hoaFee": 0,
        "pmiRate": 0.5,
        "buyingClosingCosts": 2,
        "sellingClosingCosts": 6,
        "homeAppreciation": 3,
        "rentAppreciation": 2,
        "investmentReturn": 7,
        "capitalGainsTax": 15,
        "annualIncome": 80000,
        "filingStatus": "single"
      },
      "expect": {
        "payment": 2044.0404048492019,
        "firstBuyCost": 3094.040404849202,
        "breakEven": {
          "years": 4,
          "months": 0
        },
        "taxSavings": 16986.555334310517
      },
      "source": "the rules in content.mdx, run in Python (docs/progress/WP-22/python/rent_vs_buy.py); PMI of $150 a month on a $360,000 loan"
    },
    {
      "given": {
        "homePrice": 1000000,
        "downPaymentPercent": 20,
        "interestRate": 5.5,
        "loanTerm": 30,
        "monthlyRent": 6000,
        "years": 10,
        "propertyTaxRate": 1.2,
        "homeInsuranceRate": 0.5,
        "maintenanceRate": 1,
        "hoaFee": 0,
        "pmiRate": 0.5,
        "buyingClosingCosts": 2,
        "sellingClosingCosts": 6,
        "homeAppreciation": 3,
        "rentAppreciation": 2,
        "investmentReturn": 7,
        "capitalGainsTax": 15,
        "annualIncome": 700000,
        "filingStatus": "head"
      },
      "expect": {
        "payment": 4542.312010776004,
        "taxSavings": 95416.64772792053,
        "breakEven": {
          "years": 3,
          "months": 0
        },
        "advantage": 229513.54753234884
      },
      "source": "the rules in content.mdx, run in Python (docs/progress/WP-22/python/rent_vs_buy.py); IRS Pub 505 SALT limit, Rev. Proc. 2025-32 brackets"
    },
    {
      "given": {
        "homePrice": 3000000,
        "downPaymentPercent": 20,
        "interestRate": 5.5,
        "loanTerm": 30,
        "monthlyRent": 12000,
        "years": 10,
        "propertyTaxRate": 1.2,
        "homeInsuranceRate": 0.5,
        "maintenanceRate": 1,
        "hoaFee": 0,
        "pmiRate": 0.5,
        "buyingClosingCosts": 2,
        "sellingClosingCosts": 6,
        "homeAppreciation": 3,
        "rentAppreciation": 2,
        "investmentReturn": 7,
        "capitalGainsTax": 15,
        "annualIncome": 520000,
        "filingStatus": "married"
      },
      "expect": {
        "taxSavings": 143957.02816103905,
        "buyWorth": 1853116.7038253513,
        "rentWorth": 2454050.4106608178,
        "winner": "Renting"
      },
      "source": "the rules in content.mdx, run in Python (docs/progress/WP-22/python/rent_vs_buy.py)"
    }
  ],
  "sources": [
    "IRS Rev. Proc. 2025-32 and IRS newsroom release for tax year 2026: tax brackets and standard deductions. https://www.irs.gov/newsroom/irs-releases-tax-inflation-adjustments-for-tax-year-2026-including-amendments-from-the-one-big-beautiful-bill",
    "IRS Rev. Proc. 2025-32, section 4.01 tables 1 to 3 (2026 tax rate tables), Internal Revenue Bulletin 2025-45. https://www.irs.gov/irb/2025-45_IRB",
    "IRS Publication 505 (2026): SALT deduction limit of $40,400, reduced for modified AGI above $505,000, not below $10,000. https://www.irs.gov/publications/p505",
    "IRS Publication 936, Home Mortgage Interest Deduction ($750,000 limit). https://www.irs.gov/publications/p936",
    "IRS Publication 523, Selling Your Home ($250,000 or $500,000 gain exclusion after 2 of 5 years). https://www.irs.gov/publications/p523",
    "Consumer Financial Protection Bureau, When can I remove private mortgage insurance (PMI) from my loan? (Homeowners Protection Act: automatic end at 78% of the original value). https://www.consumerfinance.gov/ask-cfpb/when-can-i-remove-private-mortgage-insurance-pmi-from-my-loan-en-202/",
    "Freddie Mac, Breaking down PMI (about $30 to $70 a month per $100,000 borrowed). https://myhome.freddiemac.com/buying/breaking-down-pmi",
    "U.S. Census Bureau, 2019-2023 ACS 5-year estimates press release (median home value $303,400, median gross rent $1,348 a month). https://www.census.gov/newsroom/press-releases/2024/acs-5-year-homeowners-renters.html"
  ],
  "related": [
    "mortgage",
    "cap-rate",
    "compound-interest"
  ],
  "changelog": [
    {
      "date": "2026-09-29",
      "note": "The default rent is $1,800, near the typical rent for a $400,000 home (Census ACS medians), not $4,000 (user test 2026-09-29)."
    },
    {
      "date": "2026-09-29",
      "note": "The answer sentence starts with the better choice, so it is not capitalized mid-sentence (user test 2026-09-29)."
    },
    {
      "date": "2026-09-29",
      "note": "Related links start with the mortgage calculator (user test 2026-09-29)."
    }
  ]
}
