{
  "id": "refinance",
  "version": "1eb879e24f1f",
  "status": "published",
  "name": "Refinance Calculator",
  "question": "Should I refinance my mortgage?",
  "summary": "Compares the current mortgage with a new fixed-rate loan: the new payment, the monthly saving, the months to earn back the closing costs, and the interest saved over both loans.",
  "category": "finance",
  "subcategory": "loans",
  "url": "https://www.acalculator.org/finance/refinance-calculator",
  "markdown": "https://www.acalculator.org/finance/refinance-calculator.md",
  "kind": "schedule",
  "method": "payment = L × r ÷ (1 − (1 + r)^−n) for each loan; monthly saving = current payment − new payment; break-even = closing costs ÷ monthly saving; net saving = interest left now − new interest − closing costs.",
  "assumptions": [
    "Both loans have fixed rates, and interest is charged monthly at the yearly rate ÷ 12.",
    "The current payment is the one that repays today’s balance over the months left.",
    "Closing costs are paid in cash at closing or added to the new loan; either way they count once in the net saving.",
    "Tax, insurance, mortgage insurance, and any prepayment penalty are not included; nothing is rounded between months."
  ],
  "inputs": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "type": "object",
    "properties": {
      "balance": {
        "title": "Balance today",
        "description": "The principal you still owe on the current mortgage.",
        "type": "number",
        "x-unit": "USD",
        "minimum": 1000,
        "maximum": 100000000
      },
      "rate": {
        "title": "Current interest rate",
        "description": "The fixed yearly rate on the current mortgage.",
        "type": "number",
        "x-unit": "percent",
        "minimum": 0,
        "maximum": 30
      },
      "left": {
        "title": "Months left to pay",
        "description": "The number of monthly payments left on the current mortgage, for example 300 for 25 years.",
        "type": "integer",
        "minimum": 1,
        "maximum": 480
      },
      "newRate": {
        "title": "New interest rate",
        "description": "The fixed yearly rate on the new loan.",
        "type": "number",
        "x-unit": "percent",
        "minimum": 0,
        "maximum": 30
      },
      "newYears": {
        "title": "New loan term (years)",
        "description": "The length of the new loan, for example 30 or 15 years.",
        "type": "integer",
        "minimum": 1,
        "maximum": 40
      },
      "costs": {
        "title": "Closing costs",
        "description": "The fees and points to refinance.",
        "type": "number",
        "x-unit": "USD",
        "minimum": 0,
        "maximum": 10000000
      },
      "roll": {
        "title": "Pay the closing costs",
        "description": "Pay the closing costs in cash, or add them to the new loan.",
        "type": "string",
        "enum": [
          "cash",
          "loan"
        ]
      },
      "start": {
        "title": "New loan start date",
        "description": "The day the loan starts. The first payment is one month later.",
        "type": "string",
        "format": "date"
      }
    }
  },
  "outputs": {
    "newPayment": {
      "label": "New monthly payment",
      "description": "The principal and interest payment on the new loan.",
      "format": "money"
    },
    "oldPayment": {
      "label": "Current monthly payment",
      "description": "The payment that repays today’s balance over the months left at the current rate.",
      "format": "money"
    },
    "saving": {
      "label": "Monthly saving",
      "description": "The current payment minus the new payment.",
      "format": "money"
    },
    "breakEven": {
      "label": "Months to break even",
      "description": "The closing costs ÷ the monthly saving, rounded up to a whole month.",
      "format": "integer"
    },
    "newLoan": {
      "label": "New loan amount",
      "description": "Today’s balance, plus the closing costs when they are added to the loan.",
      "format": "money"
    },
    "oldInterest": {
      "label": "Interest left on the current loan",
      "description": "The interest the current loan charges from today until it is paid off.",
      "format": "money"
    },
    "newInterest": {
      "label": "Interest on the new loan",
      "description": "All the interest the new loan charges.",
      "format": "money"
    },
    "net": {
      "label": "Net saving",
      "description": "The interest left on the current loan, minus the new loan’s interest and the closing costs.",
      "format": "money"
    },
    "payoff": {
      "label": "New loan paid off in",
      "description": "The month of the new loan’s last payment, when a start date is given.",
      "format": "month-year"
    }
  },
  "defaultAnswer": {
    "inputs": {
      "balance": 300000,
      "rate": 7.5,
      "left": 324,
      "newRate": 6.25,
      "newYears": 30,
      "costs": 6000,
      "roll": "cash",
      "start": "2026-09-30"
    },
    "outputs": {
      "newPayment": 1847.1516012791747,
      "oldPayment": 2162.2015050965842,
      "saving": 315.0499038174096,
      "breakEven": 20,
      "newLoan": 300000,
      "oldInterest": 400553.28765129286,
      "newInterest": 364974.57646050345,
      "net": 29578.711190789414,
      "payoff": "2056-09-30"
    },
    "text": "Refinancing $300,000.00 into a 30-year loan at 6.25% changes the payment from $2,162.20 to $1,847.15."
  },
  "examples": [
    {
      "given": {
        "balance": 300000,
        "rate": 7.5,
        "left": 324,
        "newRate": 6.25,
        "newYears": 30,
        "costs": 6000,
        "roll": "cash"
      },
      "expect": {
        "oldPayment": 2162.2015050965742,
        "newPayment": 1847.1516012791835,
        "saving": 315.0499038173907,
        "breakEven": 20,
        "oldInterest": 400553.2876513011,
        "newInterest": 364974.576460496,
        "net": 29578.71119080513
      },
      "source": "Freddie Mac, Planning to refinance: break even = the total refinance cost ÷ the monthly saving; hand calculation in content.mdx, checked in Python 3 (docs/progress/WP-48/python/refinance.py)"
    },
    {
      "given": {
        "balance": 200000,
        "rate": 6.5,
        "left": 300,
        "newRate": 5.5,
        "newYears": 15,
        "costs": 4000,
        "roll": "loan"
      },
      "expect": {
        "newLoan": 204000,
        "oldPayment": 1350.4143226952833,
        "newPayment": 1666.8502474271124,
        "saving": -316.4359247318291,
        "net": 105091.25227169857
      },
      "source": "hand calculation in content.mdx, checked in Python 3 (docs/progress/WP-48/python/refinance.py)"
    },
    {
      "given": {
        "balance": 120000,
        "rate": 0,
        "left": 120,
        "newRate": 0,
        "newYears": 20,
        "costs": 0,
        "roll": "cash"
      },
      "expect": {
        "oldPayment": 1000,
        "newPayment": 500,
        "saving": 500,
        "oldInterest": 0,
        "newInterest": 0,
        "net": 0
      },
      "source": "hand calculation in content.mdx: at 0%, 120,000 ÷ 120 and 120,000 ÷ 240; no costs, so no break-even"
    }
  ],
  "sources": [
    "Freddie Mac, Planning to refinance (break even: total refinance cost ÷ monthly saving; not for cash-out or shorter-term refinances). https://myhome.freddiemac.com/refinancing/planning-to-refinance",
    "Freddie Mac, Understanding the costs of refinancing (about 3% to 6% of the loan principal). https://myhome.freddiemac.com/refinancing/costs-of-refinancing",
    "Consumer Financial Protection Bureau, What is a prepayment penalty? https://www.consumerfinance.gov/ask-cfpb/what-is-a-prepayment-penalty-en-1957/",
    "Amortized loan payment (annuity) formula: S. A. Broverman, Mathematics of Investment and Credit, chapter 3."
  ],
  "related": [
    "mortgage",
    "cash-out-refinance",
    "mortgage-recast",
    "mortgage-interest"
  ],
  "changelog": []
}
