pragmatic.

Canadian mortgage tools · CAD

Prepayment Impact

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

calculator
slug
prepayment-impact
title
Prepayment Impact
description
One-time and recurring prepayments—interest saved and years shaved.
category
payments
input Schema
{
  "type": "object",
  "properties": {
    "principal": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string",
          "pattern": "^-?\\d+(?:\\.\\d+)?$"
        }
      ]
    },
    "nominalRatePercent": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "string",
          "pattern": "^-?\\d+(?:\\.\\d+)?$"
        }
      ]
    },
    "amortizationMonths": {
      "type": "integer",
      "minimum": 60,
      "maximum": 420
    },
    "termMonths": {
      "type": "integer",
      "minimum": 6,
      "maximum": 120,
      "default": 60
    },
    "frequency": {
      "type": "string",
      "enum": [
        "monthly",
        "semi_monthly",
        "biweekly",
        "accelerated_biweekly",
        "weekly",
        "accelerated_weekly"
      ]
    },
    "compounding": {
      "type": "string",
      "enum": [
        "semi_annual",
        "monthly",
        "annual"
      ],
      "default": "semi_annual"
    },
    "startDateISO": {
      "type": "string",
      "format": "date-time"
    },
    "oneTime": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "string",
                "pattern": "^-?\\d+(?:\\.\\d+)?$"
              }
            ]
          },
          "paymentNumber": {
            "type": "integer",
            "minimum": 1
          },
          "label": {
            "type": "string",
            "enum": [
              "Option A",
              "Option B",
              "Option C",
              "Current payment",
              "Current offer",
              "Alternative offer",
              "Lender retention",
              "Market offer",
              "Prepayment",
              "Lump sum",
              "Recurring increase"
            ]
          }
        },
        "required": [
          "amount",
          "paymentNumber"
        ],
        "additionalProperties": false
      },
      "default": []
    },
    "recurringIncrease": {
      "type": "object",
      "properties": {
        "amount": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "string",
              "pattern": "^-?\\d+(?:\\.\\d+)?$"
            }
          ]
        },
        "startPayment": {
          "type": "integer",
          "minimum": 1
        }
      },
      "required": [
        "amount",
        "startPayment"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "principal",
    "nominalRatePercent",
    "amortizationMonths",
    "frequency"
  ],
  "additionalProperties": false
}

Open the full calculator → · Structured data (JSON)