{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://askcalculators.com/ca/stress-test/schema.json",
  "title": "Canadian Mortgage Stress-test Calculator — Canada inputs",
  "description": "Apply the OSFI uninsured-mortgage qualifying-rate floor and buffer, using Canadian nominal semi-annual compounding for a level monthly payment. CAD planning view; stated limitations apply.",
  "type": "object",
  "properties": {
    "principal": {
      "title": "Mortgage principal",
      "type": "number",
      "description": "Illustrative starting value; replace with your own evidence.",
      "default": 280000,
      "minimum": 0,
      "maximum": 1000000000000,
      "x-step": 0.01,
      "x-prefix": "CAD",
      "x-unit": "currency"
    },
    "contractRate": {
      "title": "Contract nominal annual rate",
      "type": "number",
      "description": "Illustrative starting value; replace with your own evidence.",
      "default": 4.5,
      "minimum": 0,
      "maximum": 30,
      "x-step": 0.1,
      "x-unit": "percent"
    },
    "years": {
      "title": "Amortization years",
      "type": "number",
      "description": "Illustrative starting value; replace with your own evidence.",
      "default": 25,
      "minimum": 1,
      "maximum": 40,
      "x-step": 1,
      "multipleOf": 1
    },
    "income": {
      "title": "Gross annual household income",
      "type": "number",
      "description": "Illustrative starting value; replace with your own evidence.",
      "default": 80000,
      "minimum": 0,
      "maximum": 1000000000000,
      "x-step": 0.01,
      "x-prefix": "CAD",
      "x-unit": "currency"
    },
    "housingOther": {
      "title": "Monthly property tax, heating and assessed condo allowance",
      "type": "number",
      "description": "Illustrative starting value; replace with your own evidence.",
      "default": 400,
      "minimum": 0,
      "maximum": 1000000000000,
      "x-step": 0.01,
      "x-prefix": "CAD",
      "x-unit": "currency"
    },
    "debt": {
      "title": "Other monthly debt payments",
      "type": "number",
      "description": "Illustrative starting value; replace with your own evidence.",
      "default": 200,
      "minimum": 0,
      "maximum": 1000000000000,
      "x-step": 0.01,
      "x-prefix": "CAD",
      "x-unit": "currency"
    },
    "gdsLimit": {
      "title": "Verified lender GDS limit",
      "type": "number",
      "description": "Illustrative starting value; replace with your own evidence.",
      "default": 39,
      "minimum": 0,
      "maximum": 100,
      "x-step": 0.1,
      "x-unit": "percent"
    },
    "tdsLimit": {
      "title": "Verified lender TDS limit",
      "type": "number",
      "description": "Illustrative starting value; replace with your own evidence.",
      "default": 44,
      "minimum": 0,
      "maximum": 100,
      "x-step": 0.1,
      "x-unit": "percent"
    }
  },
  "required": [
    "principal",
    "contractRate",
    "years",
    "income",
    "housingOther",
    "debt",
    "gdsLimit",
    "tdsLimit"
  ],
  "additionalProperties": false,
  "x-askcalculators": {
    "version": "20.16.0",
    "calculatorUrl": "https://askcalculators.com/ca/stress-test/",
    "queryExample": "https://askcalculators.com/ca/stress-test/?principal=280000&contractRate=4.5&years=25&income=80000&housingOther=400&debt=200&gdsLimit=39&tdsLimit=44",
    "migrationStatus": "new",
    "reviewStatus": "pending",
    "pageStatus": "live",
    "workStatus": "pending",
    "formula": {
      "expression": "Qualifying rate = max(contract + 2 percentage points, 5.25%). Monthly rate = (1 + nominal/2)^(1/6) − 1.",
      "note": "Inputs are converted to canonical units before evaluating this stated formula."
    },
    "quality": {
      "availability": "live",
      "technicalReviewRecord": "/reviews/v20-ca-stress-test.json",
      "qualifiedReview": "pending",
      "qualifiedReviewer": null,
      "qualifiedReviewDate": null,
      "formulaVersion": "20.16.0",
      "referenceCoverage": "references-listed",
      "releaseTestScope": "Catalog and regression checks are not a professional formula audit; consult release evidence.",
      "historicalMetadataDate": "",
      "historicalMetadataNotice": "The imported date is not evidence of a completed human review."
    },
    "outputs": {
      "qualifyingRate": {
        "title": "Qualifying nominal annual rate",
        "type": "number",
        "x-format": "percent",
        "x-digits": 2
      },
      "payment": {
        "title": "Stressed monthly mortgage payment",
        "type": "number",
        "x-format": "currency",
        "x-currency": "CAD",
        "x-digits": 2,
        "x-primary": true
      },
      "gds": {
        "title": "Gross debt-service ratio",
        "type": "number",
        "x-format": "percent",
        "x-digits": 2
      },
      "tds": {
        "title": "Total debt-service ratio",
        "type": "number",
        "x-format": "percent",
        "x-digits": 2
      },
      "assessment": {
        "title": "Entered-limit comparison",
        "type": "string",
        "x-format": "text",
        "x-digits": 2
      }
    }
  }
}
