- calculator
- slug
- refinance-analyzer
- title
- Refinance Analyzer
- description
- Payment change, savings, penalty, and breakeven timeline.
- category
- refinance
- input Schema
{ "type": "object", "properties": { "propertyValue": { "anyOf": [ { "type": "number" }, { "type": "string", "pattern": "^-?\\d+(?:\\.\\d+)?$" } ] }, "maxLtvPct": { "anyOf": [ { "type": "number", "description": "Maximum loan-to-value as a fraction: 0.8 means 80%." }, { "type": "string", "description": "Maximum loan-to-value as a fraction: 0.8 means 80%.", "pattern": "^-?\\d+(?:\\.\\d+)?$" } ], "description": "Maximum loan-to-value as a fraction: 0.8 means 80%." }, "horizonMonths": { "type": "integer", "minimum": 6, "maximum": 720 }, "discountRate": { "anyOf": [ { "type": "number", "description": "Annual discount rate as a fraction: 0.04 means 4%." }, { "type": "string", "description": "Annual discount rate as a fraction: 0.04 means 4%.", "pattern": "^-?\\d+(?:\\.\\d+)?$" } ], "description": "Annual discount rate as a fraction: 0.04 means 4%." }, "current": { "type": "object", "properties": { "principal": { "anyOf": [ { "type": "number" }, { "type": "string", "pattern": "^-?\\d+(?:\\.\\d+)?$" } ] }, "nominalRatePercent": { "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": 1, "maximum": 120 }, "paymentFrequency": { "type": "string", "enum": [ "monthly", "semi_monthly", "biweekly", "accelerated_biweekly", "weekly", "accelerated_weekly" ] }, "explicitPayment": { "anyOf": [ { "anyOf": [ { "type": "number" }, { "type": "string", "pattern": "^-?\\d+(?:\\.\\d+)?$" } ] }, { "type": "null" } ] }, "startDateISO": { "anyOf": [ { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}(?:T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}:\\d{2}))?$" }, { "type": "null" } ] } }, "required": [ "principal", "nominalRatePercent", "amortization", "termMonths", "paymentFrequency" ], "additionalProperties": false }, "debts": { "type": "array", "items": { "type": "object", "properties": { "balance": { "anyOf": [ { "type": "number" }, { "type": "string", "pattern": "^-?\\d+(?:\\.\\d+)?$" } ] }, "apr": { "anyOf": [ { "type": "number", "description": "Annual debt interest as a decimal fraction: 0.199 means 19.9%." }, { "type": "string", "description": "Annual debt interest as a decimal fraction: 0.199 means 19.9%.", "pattern": "^-?\\d+(?:\\.\\d+)?$" } ], "description": "Annual debt interest as a decimal fraction: 0.199 means 19.9%." }, "minPayment": { "anyOf": [ { "anyOf": [ { "type": "number" }, { "type": "string", "pattern": "^-?\\d+(?:\\.\\d+)?$" } ] }, { "type": "null" } ] }, "payoffMonths": { "anyOf": [ { "type": "integer", "minimum": 1, "maximum": 480 }, { "type": "null" } ] }, "consolidate": { "type": "boolean" } }, "required": [ "balance", "apr" ], "additionalProperties": false }, "maxItems": 12, "default": [] }, "fees": { "type": "object", "properties": { "prepaymentPenalty": { "anyOf": [ { "type": "number" }, { "type": "string", "pattern": "^-?\\d+(?:\\.\\d+)?$" } ] }, "dischargeFee": { "anyOf": [ { "type": "number" }, { "type": "string", "pattern": "^-?\\d+(?:\\.\\d+)?$" } ], "default": 0 }, "legalFee": { "anyOf": [ { "type": "number" }, { "type": "string", "pattern": "^-?\\d+(?:\\.\\d+)?$" } ], "default": 0 }, "appraisalFee": { "anyOf": [ { "type": "number" }, { "type": "string", "pattern": "^-?\\d+(?:\\.\\d+)?$" } ], "default": 0 }, "otherFees": { "anyOf": [ { "type": "number" }, { "type": "string", "pattern": "^-?\\d+(?:\\.\\d+)?$" } ], "default": 0 }, "lenderIncentive": { "anyOf": [ { "type": "number" }, { "type": "string", "pattern": "^-?\\d+(?:\\.\\d+)?$" } ], "default": 0 }, "rollIn": { "type": "boolean", "default": false } }, "required": [ "prepaymentPenalty" ], "additionalProperties": false }, "plan": { "type": "object", "properties": { "keepSamePayment": { "type": "boolean", "default": false }, "increasePayment": { "anyOf": [ { "type": "number" }, { "type": "string", "pattern": "^-?\\d+(?:\\.\\d+)?$" } ], "default": 0 }, "cashOut": { "anyOf": [ { "type": "number" }, { "type": "string", "pattern": "^-?\\d+(?:\\.\\d+)?$" } ], "default": 0 }, "paymentFrequency": { "type": "string", "enum": [ "monthly", "semi_monthly", "biweekly", "accelerated_biweekly", "weekly", "accelerated_weekly" ] }, "newNominalRatePercent": { "anyOf": [ { "type": "number" }, { "type": "string", "pattern": "^-?\\d+(?:\\.\\d+)?$" } ] }, "newAmortization": { "type": "object", "properties": { "years": { "type": "integer", "minimum": 1, "maximum": 40 }, "months": { "type": "integer", "minimum": 0, "maximum": 11 } }, "required": [ "years", "months" ], "additionalProperties": false }, "newTermMonths": { "type": "integer", "minimum": 12, "maximum": 120 }, "explicitPayment": { "anyOf": [ { "anyOf": [ { "type": "number" }, { "type": "string", "pattern": "^-?\\d+(?:\\.\\d+)?$" } ] }, { "type": "null" } ] }, "startDateISO": { "anyOf": [ { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}(?:T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}:\\d{2}))?$" }, { "type": "null" } ] } }, "required": [ "paymentFrequency", "newNominalRatePercent", "newAmortization", "newTermMonths" ], "additionalProperties": false } }, "required": [ "propertyValue", "maxLtvPct", "current", "fees", "plan" ], "additionalProperties": false }
Canadian mortgage tools · CAD
Refinance Analyzer
Current public data and calculations from Pragmatic Mortgage. Anonymous access; no account required.