{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://askcalculators.com/calculator/mortgage-calculator/schema.json",
  "title": "Mortgage Calculator inputs",
  "description": "Estimate principal, interest, taxes, insurance, optional HOA fees, and extra payments.",
  "type": "object",
  "properties": {
    "homePrice": {
      "title": "Home price",
      "type": "number",
      "default": 350000,
      "minimum": 1,
      "x-step": 1000,
      "multipleOf": 1000,
      "x-unit": "currency"
    },
    "downPayment": {
      "title": "Down payment",
      "type": "number",
      "description": "Optional",
      "default": 70000,
      "minimum": 0,
      "x-step": 1000,
      "multipleOf": 1000,
      "x-unit": "currency"
    },
    "annualRate": {
      "title": "Interest rate",
      "type": "number",
      "default": 6.5,
      "minimum": 0,
      "maximum": 20,
      "x-step": 0.05,
      "x-unit": "percent",
      "x-control": "slider-number"
    },
    "years": {
      "title": "Loan term",
      "type": "number",
      "default": 30,
      "enum": [
        10,
        15,
        20,
        30
      ],
      "x-optionLabels": {
        "10": "10 years",
        "15": "15 years",
        "20": "20 years",
        "30": "30 years"
      }
    },
    "propertyTax": {
      "title": "Annual property tax",
      "type": "number",
      "description": "Optional",
      "default": 4200,
      "minimum": 0,
      "x-step": 100,
      "multipleOf": 100,
      "x-unit": "currency"
    },
    "insurance": {
      "title": "Annual home insurance",
      "type": "number",
      "description": "Optional",
      "default": 1500,
      "minimum": 0,
      "x-step": 100,
      "multipleOf": 100,
      "x-unit": "currency"
    },
    "hoa": {
      "title": "Monthly HOA",
      "type": "number",
      "description": "Optional",
      "minimum": 0,
      "x-step": 10,
      "multipleOf": 10,
      "x-unit": "currency"
    },
    "extraPayment": {
      "title": "Extra monthly payment",
      "type": "number",
      "description": "Optional",
      "minimum": 0,
      "x-step": 10,
      "multipleOf": 10,
      "x-unit": "currency"
    }
  },
  "required": [
    "homePrice",
    "annualRate",
    "years"
  ],
  "additionalProperties": false,
  "x-askcalculators": {
    "version": "20.1.0",
    "calculatorUrl": "https://askcalculators.com/calculator/mortgage-calculator/",
    "queryExample": "https://askcalculators.com/calculator/mortgage-calculator/?homePrice=350000&downPayment=70000&annualRate=6.5&years=30&propertyTax=4200&insurance=1500",
    "migrationStatus": "new",
    "reviewStatus": "pending",
    "pageStatus": "live",
    "workStatus": "pending",
    "formula": {
      "expression": "M = P × [r(1 + r)ⁿ] ÷ [(1 + r)ⁿ − 1]",
      "variables": [
        {
          "symbol": "M",
          "meaning": "monthly principal and interest"
        },
        {
          "symbol": "P",
          "meaning": "loan amount after down payment"
        },
        {
          "symbol": "r",
          "meaning": "monthly interest rate"
        },
        {
          "symbol": "n",
          "meaning": "number of monthly payments"
        }
      ],
      "note": "Taxes, insurance, HOA, and extra payment are added after the loan payment is calculated."
    },
    "quality": {
      "availability": "live",
      "technicalReviewRecord": "/reviews/mortgage-calculator.json",
      "qualifiedReview": "pending",
      "qualifiedReviewer": null,
      "qualifiedReviewDate": null,
      "formulaVersion": "20.1.0",
      "referenceCoverage": "references-listed",
      "releaseTestScope": "Flagship reference cases are specified in scripts/test-v20-1.mjs; consult release evidence for executed results.",
      "historicalMetadataDate": "2026-08-18",
      "historicalMetadataNotice": "The imported date is not evidence of a completed human review."
    },
    "outputs": {
      "requiredHousingPayment": {
        "title": "Required monthly housing payment",
        "type": "number",
        "x-format": "currency"
      },
      "extraPrincipal": {
        "title": "Optional extra principal",
        "type": "number",
        "x-format": "currency"
      },
      "monthlyPayment": {
        "title": "Planned monthly payment with extras",
        "type": "number",
        "x-format": "currency",
        "x-primary": true
      },
      "loanAmount": {
        "title": "Loan amount",
        "type": "number",
        "x-format": "currency"
      },
      "principalInterest": {
        "title": "Principal + interest",
        "type": "number",
        "x-format": "currency"
      },
      "totalInterest": {
        "title": "Total interest",
        "type": "number",
        "x-format": "currency"
      },
      "payoffTime": {
        "title": "Payoff time",
        "type": "string",
        "x-format": "text"
      },
      "totalLoanCost": {
        "title": "Principal + interest paid",
        "type": "number",
        "x-format": "currency"
      }
    }
  }
}
