pragmatic.

Canadian mortgage tools · CAD

Affordability (Max Purchase)

Current public data and calculations from Pragmatic Mortgage. Anonymous access; no account required.

calculator
slug
affordability
title
Affordability (Max Purchase)
description
GDS/TDS-driven max price, stress-tested.
category
purchase
input Schema
{
  "type": "object",
  "properties": {
    "downPayment": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string",
          "pattern": "^-?\\d+(?:\\.\\d+)?$"
        }
      ]
    },
    "grossIncomeAnnual": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string",
          "pattern": "^-?\\d+(?:\\.\\d+)?$"
        }
      ]
    },
    "otherIncomeAnnual": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string",
          "pattern": "^-?\\d+(?:\\.\\d+)?$"
        }
      ]
    },
    "otherDebtsMonthly": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string",
          "pattern": "^-?\\d+(?:\\.\\d+)?$"
        }
      ]
    },
    "contractRatePercent": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string",
          "pattern": "^-?\\d+(?:\\.\\d+)?$"
        }
      ]
    },
    "amortization": {
      "type": "object",
      "properties": {
        "years": {
          "type": "integer",
          "minimum": 0,
          "maximum": 40
        },
        "months": {
          "type": "integer",
          "minimum": 0,
          "maximum": 11
        }
      },
      "required": [
        "years",
        "months"
      ],
      "additionalProperties": false
    },
    "shelter": {
      "type": "object",
      "properties": {
        "taxesAnnual": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "string",
              "pattern": "^-?\\d+(?:\\.\\d+)?$"
            }
          ]
        },
        "heatMonthly": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "string",
              "pattern": "^-?\\d+(?:\\.\\d+)?$"
            }
          ]
        },
        "condoFeesMonthly": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "string",
              "pattern": "^-?\\d+(?:\\.\\d+)?$"
            }
          ]
        },
        "insuranceMonthly": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "string",
              "pattern": "^-?\\d+(?:\\.\\d+)?$"
            }
          ]
        }
      },
      "required": [
        "taxesAnnual",
        "heatMonthly"
      ],
      "additionalProperties": false
    },
    "targets": {
      "type": "object",
      "properties": {
        "maxGds": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "string",
              "pattern": "^-?\\d+(?:\\.\\d+)?$"
            }
          ]
        },
        "maxTds": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "string",
              "pattern": "^-?\\d+(?:\\.\\d+)?$"
            }
          ]
        }
      },
      "additionalProperties": false,
      "default": {}
    },
    "osfiFloorPercent": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string",
          "pattern": "^-?\\d+(?:\\.\\d+)?$"
        }
      ]
    },
    "paymentFrequency": {
      "type": "string",
      "enum": [
        "monthly",
        "semi_monthly",
        "biweekly",
        "accelerated_biweekly",
        "weekly",
        "accelerated_weekly"
      ],
      "default": "monthly"
    }
  },
  "required": [
    "downPayment",
    "grossIncomeAnnual",
    "otherDebtsMonthly",
    "contractRatePercent",
    "amortization",
    "shelter"
  ],
  "additionalProperties": false
}

Open the full calculator → · Structured data (JSON)