Compare breaking or keeping a Canadian mortgage
compare_break_or_stayRead-only
Use this when a user is partway through a Canadian mortgage term and asks whether to break the mortgage early (to refinance the same debt, switch lender or take a lower rate) or stay until the term ends. Compares keeping it with a user-supplied replacement offer, counting the lender-quoted penalty, such as an interest rate differential (IRD) or three months' interest. Shows cashflow payback separately from borrowing-cost crossover. Do not use to calculate or estimate a penalty: the lender must quote it, and an unknown penalty prevents an unconditional ranking. No cash-out or rate search.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| penalty | Yes | The penalty amount the lender quoted, in CAD. Never estimate it; use {state:"unknown"} if there is no quote. | |
| horizonMonths | No | Comparison horizon in months, 1 to 600. If omitted: the shorter of the remaining current term and the replacement term. | |
| penaltyFunding | Yes | cash if paid out of pocket; financed if added to the new mortgage. | |
| scheduleWindow | No | ||
| currentMortgage | Yes | ||
| penaltyQuotedAt | No | Payout date the lender's penalty quote is for, YYYY-MM-DD. | |
| startingBalance | Yes | Mortgage balance now, in CAD, as digits only: no $ sign, no commas, no spaces, for example "412000" or "412000.50". Before any costs are added. | |
| replacementOffer | Yes | ||
| penaltySensitivity | No | ||
| remainingTermMonths | Yes | Months left in the current term, as a count of months: 2 years left is 24. |
Output Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| links | Yes | ||
| scope | Yes | ||
| payoff | No | ||
| status | Yes | ||
| horizon | No | ||
| reasons | Yes | ||
| sources | Yes | ||
| currency | Yes | ||
| schedule | No | ||
| breakEven | No | ||
| scenarios | Yes | ||
| assumptions | Yes | ||
| differences | No | ||
| sensitivity | No | ||
| dateMappings | No | ||
| missingInputs | Yes | ||
| nextQuestions | Yes | ||
| schemaVersion | Yes | ||
| evaluatedThrough | No | ||
| requestedHorizon | No | ||
| illustrativeRatio | No | ||
| calculationVersion | Yes |