pragmatic.

Canadian mortgage tools · CAD

Fixed vs Variable Rate Shock

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

calculator
slug
rate-compare
title
Fixed vs Variable Rate Shock
description
Quick payment-shock bands across a fixed offer and expected prime paths.
category
rates
input Schema
{
  "type": "object",
  "properties": {
    "mortgageBalance": {
      "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
    },
    "termMonths": {
      "type": "integer",
      "minimum": 12,
      "maximum": 360,
      "default": 60
    },
    "fixedRatePercent": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string",
          "pattern": "^-?\\d+(?:\\.\\d+)?$"
        }
      ]
    },
    "variablePrimeRatePercent": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string",
          "pattern": "^-?\\d+(?:\\.\\d+)?$"
        }
      ]
    },
    "variableSpreadPercent": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string",
          "pattern": "^-?\\d+(?:\\.\\d+)?$"
        }
      ],
      "default": "0"
    },
    "compounding": {
      "type": "string",
      "enum": [
        "semi_annual",
        "monthly",
        "annual",
        "quarterly",
        "bi_weekly",
        "weekly",
        "daily"
      ],
      "default": "semi_annual"
    },
    "expectedPrimeChangeBps": {
      "type": "integer",
      "minimum": -1000,
      "maximum": 1000,
      "default": 0
    },
    "primeShockUpsideBps": {
      "type": "integer",
      "minimum": 0,
      "maximum": 1500,
      "default": 75
    },
    "primeShockDownsideBps": {
      "type": "integer",
      "minimum": 0,
      "maximum": 1500,
      "default": 75
    }
  },
  "required": [
    "mortgageBalance",
    "amortization",
    "fixedRatePercent",
    "variablePrimeRatePercent"
  ],
  "additionalProperties": false
}

Open the full calculator → · Structured data (JSON)