Mortgage affordability methodology

Last verified: Effective for Canadian mortgage qualification rules, 2026 by Fiscal Moose

Open the Mortgage Affordability calculator

The Mortgage Affordability calculator works backward from your income, down payment, and monthly costs to the largest home price that still passes Canada’s mortgage-qualification rules: the stress test (you qualify at a higher rate than you pay) and the GDS and TDS debt-service ratios. This page documents the rules and conventions the calculator relies on, the sources we verify them against, the reference cases that authorise the formula to ship, and the known limitations of our model. For the payment side (the periodic payment, amortization, and the CMHC premium itself), see our mortgage payment calculator and its methodology page.

How the calculator works

The calculator solves a price, not a payment, all from the versioned constants in our data file and the conventions in the FCAC stress-test rule and the CMHC schedule:

Current constants (2026)

Stress-test floor 5.25% (the minimum qualifying rate is never below this)
Stress-test spread Contract rate + 2 percentage points (whichever is higher than the floor binds)
Gross debt service (GDS) maximum 39% of gross income
Total debt service (TDS) maximum 44% of gross income
Condo-fee share counted in GDS 50% of monthly condo / strata fees
Minimum down payment 5% to $500k; 10% from $500k to just under $1.5M; 20% at $1.5M and above

These values are read directly from our versioned data files (packages/data/src/mortgage/limits.ts). The debt-service ratio table and the stress-test rule are also rendered on the calculator page itself.

Worked example

A household with $120,000 of gross annual income and $100,000 of cash, at a 4% contract rate over 25 years, with $4,800/yr property tax and $1,800/yr heating and no condo fees or other debt, qualifies at a minimum qualifying rate of 6.00% (4% + 2%). Gross debt service is the binding constraint, capping the qualifying payment at $3,350/month, which works back to a maximum home price of $609,335. The base mortgage is $509,335 (an 83.6% loan-to-value, so CMHC insurance applies), the 2.80% premium of $14,261 is capitalized onto the loan, and the buyer’s actual payment at the 4% contract rate is $2,754.22/month: they qualify on the higher $3,350 stress-test payment but pay the lower one. Qualifying at the contract rate instead would have returned about $717,709, overstating affordability by roughly $108,000.

Reference cases and verification

The affordability formula ships only after passing a suite of 30 reference cases, each a known scenario with a known expected output: the binding constraint (GDS, TDS, or the down-payment floor), the minimum qualifying rate at the floor and at the spread, the $1.5 million cap behaviour, the all-cash (unaffordable) edge, and the over-stating defects caught in adversarial review. The build fails if any case diverges from its expected value beyond the case’s tolerance. The price solve also has its own independent closed-form verifier (scripts/verify-affordability-cases.ts) that re-derives the qualifying payment and price on a separate code path, so a solve error cannot pass both checks.

The marquee anchor is the $609,335 worked example above, the figure that exposes whether a calculator qualifies you at the stress-test rate (the safe, correct way) or at your contract rate (the over-stating bug).

Our update cadence

The stress-test rule (the 2% spread and the 5.25% floor) is set by OSFI’s B-20 guideline for federally regulated lenders and by the Department of Finance for insured mortgages; the 39% / 44% debt-service maximums are the federal qualifying limits these rules apply. The Financial Consumer Agency of Canada publishes the consumer-facing summary of all of this, which is the page we verify against and refresh on an as-needed basis when the published rule changes. The minimum-down-payment bands and the $1.5 million insurable cap are CMHC / Department of Finance policy on the same as-needed cadence. The Bank of Canada policy-rate default is refreshed on the Bank’s announcement schedule, but it is only a convenience pre-fill, not a figure the methodology depends on.

If you find an error

If you spot a mistake in the calculator or this page, report it through our contact page. We commit to acknowledging within 24 hours, fixing clear formula or data errors within 7 days, and publishing a changelog entry describing what changed and when.

Professional-review status

This page is operator-verified against the Financial Consumer Agency of Canada, CMHC, and the Interest Act; it is not professional financial advice and has not been CPA- or broker-reviewed. The uninsured stress-test rate, the 39% / 44% debt-service maximums, and the minimum-down-payment bands were re-confirmed verbatim against the live source pages on 2026-07-06. The insured-mortgage qualifying rate is corroborated by FCAC and CMHC but is still flagged for a Department-of-Finance-instrument verbatim re-confirmation before any future indexability flip.

Sources

Known limitations

Open the Mortgage Affordability calculator

Back to methodology index