tl;dr pfcPersonal Finance Canada Connect to Claude

How the numbers are worked out

Everything here is arithmetic you could do yourself, done consistently. There is no model of the housing market and no forecast — you supply the assumptions and the calculator is honest about what follows from them. Where an assumption dominates the answer, it is shown as a range rather than a number.

Mortgages

Canadian fixed-rate mortgages are compounded semi-annually, not in advance. A quoted rate of j therefore charges a periodic rate of (1 + j/2)^(2/p) − 1 for p payments a year, not j/p. The difference is small and consistent: about $20 a month on a $700,000 mortgage, and several thousand dollars over the amortization. Variable-rate mortgages and HELOCs generally do compound monthly, which is why the convention is an input.

Payment frequencies all derive from the monthly payment, the way lenders quote them. Non-accelerated schedules spread the same annual total over more dates. Accelerated schedules pay half or a quarter of the monthly amount 26 or 52 times — thirteen monthly payments a year rather than twelve. That extra payment is a prepayment, so the schedule is simulated to a zero balance rather than assumed to end when the stated amortization does.

Mortgage default insurance

Required below 20% down. Premiums follow the published CMHC schedule by loan-to-value — 0.60% up to 65%, then 1.70%, 2.40%, 2.80%, 3.10% and 4.00% at 95%, with 4.50% where the down payment is borrowed rather than saved, plus 0.20% for an amortization over 25 years. The premium is added to the loan; in Ontario, Quebec and Saskatchewan the provincial sales tax on it is not, and is payable in cash at closing.

The minimum down payment is 5% of the first $500,000 and 10% of the portion above it, and 20% at or above $1,500,000, where insurance is unavailable at any price. Insured amortizations are capped at 25 years, or 30 for first-time buyers and newly built homes. A scenario that breaks one of these is flagged rather than quietly calculated.

Land transfer tax

Marginal brackets for every province, plus the municipal tax in Toronto and Montreal, net of the first-time buyer rebates where they apply. Alberta, Saskatchewan and the territories charge registration fees instead, which are small and folded into closing costs.

Rent vs buy

The comparison is between two positions, each valued as if you liquidated it today.

The result is reported year by year because it changes sign. Buying starts behind — the land transfer tax and the commission both land inside a short stay — and the year it catches up is the number most people actually need.

What this does not model

Sharing and automation

Every input on both calculators is a query-string parameter, so the address bar always describes the scenario on screen and the link reproduces it exactly. Only values that differ from the defaults are written, which keeps links short and lets a link that never mentioned the interest rate pick up today's.

The same calculations are exposed as an MCP server, so Claude can run them directly — paste a listing, get the breakeven, and receive a link back to the page with everything filled in. It is the same code path: a figure quoted in chat and the figure on the page are the same function call.

What is stored

Nothing, unless you sign in and ask for it. A scenario lives entirely in the URL — the price, the rent, the down payment, every input on the page — so there is no record of what anyone looked at, and closing the tab is the whole of deleting it.

Signing in adds exactly two things. The clients you have connected, so you can see them and cut one off. And, if you press Save as my defaults, the assumptions from the panel below the main inputs: your province, what you expect markets to return, whether your portfolio is taxed. The five inputs that lead a calculator are deliberately never saved — those are the scenario, and a page that resumed pricing the last house you looked at would be a page keeping a record of it.

Saved assumptions change only where an input starts. A link that names a value always wins, and a link you copy carries your assumptions explicitly, so the figures you send someone are the figures they see. You can forget them at any time, from the same panel.

Corrections

Rates and thresholds are current as of 2026-09 and are kept in one file with their sources. If something here is out of date or wrong, it is a bug worth reporting.