{
  "id": "heloc-calculator",
  "version": "1.0.0",
  "name": "Home Equity Line of Credit (HELOC) Calculator",
  "shortName": "HELOC",
  "description": "Estimate interest-only draw payments, repayment-period payments, fees, and an LTV-based HELOC limit.",
  "category": "Finance",
  "categorySlug": "finance",
  "keywords": [
    "heloc",
    "home equity line of credit",
    "draw period",
    "repayment period",
    "ltv",
    "variable rate"
  ],
  "status": "live",
  "workStatus": "pending",
  "reviewStatus": "pending",
  "migrationStatus": "new",
  "engine": "native",
  "creator": null,
  "reviewer": null,
  "quality": {
    "availability": "live",
    "technicalReviewRecord": "/reviews/heloc-calculator.json",
    "qualifiedReview": "pending",
    "qualifiedReviewer": null,
    "qualifiedReviewDate": null,
    "formulaVersion": "1.0.0",
    "referenceCoverage": "references-listed",
    "releaseTestScope": "Catalog and regression checks are not a professional formula audit; consult release evidence.",
    "historicalMetadataDate": "2026-08-25",
    "historicalMetadataNotice": "The imported date is not evidence of a completed human review."
  },
  "notice": "This model assumes the full line is drawn immediately and the interest rate stays unchanged.",
  "urls": {
    "page": "/calculator/heloc-calculator/",
    "definition": "/calculator/heloc-calculator/definition.json",
    "schema": "/calculator/heloc-calculator/schema.json",
    "llms": "/calculator/heloc-calculator/llms.txt",
    "legacyDefinition": "/calculator/heloc-calculator.json"
  },
  "queryExample": "https://askcalculators.com/calculator/heloc-calculator/?creditLine=50000&annualRate=8&drawYears=5&repaymentYears=15&annualFee=0&includeClosingCosts=0&homeValue=500000&mortgageBalance=210000&maxLtv=80",
  "queryParameters": {
    "creditLine": {
      "label": "Amount drawn",
      "type": "money",
      "required": true,
      "default": 50000
    },
    "annualRate": {
      "label": "Interest rate",
      "type": "percent",
      "required": true,
      "default": 8
    },
    "drawYears": {
      "label": "Draw period",
      "type": "number",
      "required": true,
      "default": 5
    },
    "repaymentYears": {
      "label": "Repayment period",
      "type": "number",
      "required": true,
      "default": 15
    },
    "annualFee": {
      "label": "Annual fee",
      "type": "money",
      "required": false,
      "default": 0
    },
    "includeClosingCosts": {
      "label": "Include closing costs",
      "type": "checkbox",
      "required": false,
      "default": false
    },
    "closingCostValue": {
      "label": "Closing cost value",
      "type": "number",
      "required": true,
      "default": 2,
      "showWhen": {
        "field": "includeClosingCosts",
        "equals": true
      }
    },
    "closingCostUnit": {
      "label": "Closing cost unit",
      "type": "select",
      "required": true,
      "default": "percent",
      "showWhen": {
        "field": "includeClosingCosts",
        "equals": true
      }
    },
    "closingCostTreatment": {
      "label": "Closing cost treatment",
      "type": "select",
      "required": true,
      "default": "deducted",
      "showWhen": {
        "field": "includeClosingCosts",
        "equals": true
      }
    },
    "homeValue": {
      "label": "Current home value",
      "type": "money",
      "required": true,
      "default": 500000
    },
    "mortgageBalance": {
      "label": "Current mortgage balance",
      "type": "money",
      "required": true,
      "default": 210000
    },
    "maxLtv": {
      "label": "Maximum combined LTV",
      "type": "percent",
      "required": true,
      "default": 80
    }
  },
  "inputs": [
    {
      "id": "creditLine",
      "label": "Amount drawn",
      "type": "money",
      "required": true,
      "defaultValue": 50000,
      "min": 1,
      "step": 1000,
      "width": "half"
    },
    {
      "id": "annualRate",
      "label": "Interest rate",
      "type": "percent",
      "required": true,
      "defaultValue": 8,
      "min": 0,
      "max": 50,
      "step": 0.05,
      "control": "slider-number",
      "width": "half"
    },
    {
      "id": "drawYears",
      "label": "Draw period",
      "type": "number",
      "required": true,
      "defaultValue": 5,
      "min": 1,
      "max": 30,
      "step": 1,
      "suffix": " years",
      "width": "half"
    },
    {
      "id": "repaymentYears",
      "label": "Repayment period",
      "type": "number",
      "required": true,
      "defaultValue": 15,
      "min": 1,
      "max": 40,
      "step": 1,
      "suffix": " years",
      "width": "half"
    },
    {
      "id": "annualFee",
      "label": "Annual fee",
      "type": "money",
      "defaultValue": 0,
      "min": 0,
      "step": 10,
      "help": "Spread evenly across monthly outlays.",
      "width": "full"
    },
    {
      "id": "includeClosingCosts",
      "label": "Include closing costs",
      "type": "checkbox",
      "defaultValue": false,
      "help": "Adds fees to the cost and APR estimate.",
      "width": "full"
    },
    {
      "id": "closingCostValue",
      "label": "Closing cost value",
      "type": "number",
      "required": true,
      "defaultValue": 2,
      "min": 0,
      "step": 0.1,
      "showWhen": {
        "field": "includeClosingCosts",
        "equals": true
      },
      "width": "half"
    },
    {
      "id": "closingCostUnit",
      "label": "Closing cost unit",
      "type": "select",
      "required": true,
      "defaultValue": "percent",
      "options": [
        {
          "label": "Percent of amount drawn",
          "value": "percent"
        },
        {
          "label": "Dollar amount",
          "value": "amount"
        }
      ],
      "showWhen": {
        "field": "includeClosingCosts",
        "equals": true
      },
      "width": "half"
    },
    {
      "id": "closingCostTreatment",
      "label": "Closing cost treatment",
      "type": "select",
      "required": true,
      "defaultValue": "deducted",
      "options": [
        {
          "label": "Deducted from proceeds",
          "value": "deducted"
        },
        {
          "label": "Paid upfront",
          "value": "upfront"
        }
      ],
      "showWhen": {
        "field": "includeClosingCosts",
        "equals": true
      },
      "width": "full"
    },
    {
      "id": "homeValue",
      "label": "Current home value",
      "type": "money",
      "required": true,
      "defaultValue": 500000,
      "min": 1,
      "step": 1000,
      "help": "Used for the borrowing-limit estimate.",
      "width": "half"
    },
    {
      "id": "mortgageBalance",
      "label": "Current mortgage balance",
      "type": "money",
      "required": true,
      "defaultValue": 210000,
      "min": 0,
      "step": 1000,
      "width": "half"
    },
    {
      "id": "maxLtv",
      "label": "Maximum combined LTV",
      "type": "percent",
      "required": true,
      "defaultValue": 80,
      "min": 1,
      "max": 100,
      "step": 1,
      "control": "slider-number",
      "width": "full"
    }
  ],
  "outputs": [
    {
      "id": "drawMonthlyPayment",
      "label": "Draw-period monthly outlay",
      "format": "currency",
      "primary": true
    },
    {
      "id": "repaymentMonthlyPayment",
      "label": "Repayment-period monthly outlay",
      "format": "currency"
    },
    {
      "id": "totalScheduledPayments",
      "label": "Total scheduled monthly outlays",
      "format": "currency"
    },
    {
      "id": "totalInterest",
      "label": "Total interest",
      "format": "currency"
    },
    {
      "id": "totalFees",
      "label": "Closing + annual fees",
      "format": "currency"
    },
    {
      "id": "totalBorrowingCost",
      "label": "Interest + fees",
      "format": "currency"
    },
    {
      "id": "cashReceived",
      "label": "Proceeds received",
      "format": "currency"
    },
    {
      "id": "cashDueAtClosing",
      "label": "Cash due at closing",
      "format": "currency"
    },
    {
      "id": "estimatedApr",
      "label": "Cash-flow APR estimate",
      "format": "percent",
      "digits": 3
    },
    {
      "id": "estimatedCreditLimit",
      "label": "LTV-based HELOC limit",
      "format": "currency"
    },
    {
      "id": "combinedLtv",
      "label": "Combined LTV with this draw",
      "format": "percent",
      "digits": 2
    }
  ],
  "formula": {
    "expression": "Draw payment = balance × r; repayment M = P × [r(1 + r)ⁿ] ÷ [(1 + r)ⁿ − 1]",
    "variables": [
      {
        "symbol": "P",
        "meaning": "amount drawn at the start"
      },
      {
        "symbol": "r",
        "meaning": "monthly interest rate"
      },
      {
        "symbol": "M",
        "meaning": "repayment-period principal-and-interest payment"
      },
      {
        "symbol": "n",
        "meaning": "number of repayment months"
      }
    ],
    "note": "The draw period is modeled as interest-only. Annual fees are divided into monthly outlays, and the rate is held constant."
  },
  "examples": [
    {
      "label": "Reproducible default-input example (not a personal recommendation)",
      "inputs": {
        "creditLine": 50000,
        "annualRate": 8,
        "drawYears": 5,
        "repaymentYears": 15,
        "annualFee": 0,
        "includeClosingCosts": false,
        "closingCostValue": 2,
        "closingCostUnit": "percent",
        "closingCostTreatment": "deducted",
        "homeValue": 500000,
        "mortgageBalance": 210000,
        "maxLtv": 80
      }
    }
  ],
  "sources": [
    {
      "label": "Consumer Financial Protection Bureau: What is a HELOC?",
      "url": "https://www.consumerfinance.gov/ask-cfpb/what-is-a-home-equity-line-of-credit-heloc-en-107/"
    },
    {
      "label": "Consumer Financial Protection Bureau: HELOC fees",
      "url": "https://www.consumerfinance.gov/ask-cfpb/what-fees-can-my-lender-charge-if-i-take-out-a-heloc-en-249/"
    }
  ]
}
