pragmatic.

Canadian mortgage tools · CAD

Renewal Compare

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

calculator
slug
renewal-compare
title
Renewal Compare
description
Offers vs market; payment shock forecast.
category
renewal
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
    },
    "comparisonHorizonMonths": {
      "type": "integer",
      "minimum": 1,
      "maximum": 360
    },
    "paymentFrequency": {
      "type": "string",
      "enum": [
        "monthly",
        "semi_monthly",
        "biweekly",
        "accelerated_biweekly",
        "weekly",
        "accelerated_weekly"
      ],
      "default": "monthly"
    },
    "compounding": {
      "type": "string",
      "enum": [
        "semi_annual",
        "monthly",
        "annual",
        "quarterly",
        "bi_weekly",
        "weekly",
        "daily"
      ],
      "default": "semi_annual"
    },
    "existingRatePercent": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string",
          "pattern": "^-?\\d+(?:\\.\\d+)?$"
        }
      ]
    },
    "existingLabel": {
      "type": "string",
      "minLength": 1,
      "default": "Current payment",
      "enum": [
        "Option A",
        "Option B",
        "Option C",
        "Current payment",
        "Current offer",
        "Alternative offer",
        "Lender retention",
        "Market offer",
        "Prepayment",
        "Lump sum",
        "Recurring increase"
      ]
    },
    "currentOffer": {
      "type": "object",
      "properties": {
        "label": {
          "type": "string",
          "minLength": 1,
          "enum": [
            "Option A",
            "Option B",
            "Option C",
            "Current payment",
            "Current offer",
            "Alternative offer",
            "Lender retention",
            "Market offer",
            "Prepayment",
            "Lump sum",
            "Recurring increase"
          ]
        },
        "ratePercent": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "string",
              "pattern": "^-?\\d+(?:\\.\\d+)?$"
            }
          ]
        },
        "termMonths": {
          "type": "integer",
          "minimum": 1,
          "maximum": 360
        }
      },
      "required": [
        "label",
        "ratePercent",
        "termMonths"
      ],
      "additionalProperties": false
    },
    "marketOffer": {
      "type": "object",
      "properties": {
        "label": {
          "type": "string",
          "minLength": 1,
          "enum": [
            "Option A",
            "Option B",
            "Option C",
            "Current payment",
            "Current offer",
            "Alternative offer",
            "Lender retention",
            "Market offer",
            "Prepayment",
            "Lump sum",
            "Recurring increase"
          ]
        },
        "ratePercent": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "string",
              "pattern": "^-?\\d+(?:\\.\\d+)?$"
            }
          ]
        },
        "termMonths": {
          "type": "integer",
          "minimum": 1,
          "maximum": 360
        }
      },
      "required": [
        "label",
        "ratePercent",
        "termMonths"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "mortgageBalance",
    "amortization",
    "existingRatePercent",
    "currentOffer",
    "marketOffer"
  ],
  "additionalProperties": false
}

Open the full calculator → · Structured data (JSON)