Bank of Canada Raises Policy Rate to 2.50%
Three numbers decide whether a home is within reach: the price, the income you need to qualify and the interest you pay while you carry the mortgage. A Bank of Canada decision moves the last two long before it moves prices.
Each cell shows the current figure, then the change over 12 months. Prices are the latest CREA benchmark. Income and interest apply today’s nesto rates to each province’s September 2026 benchmark price, so their change shows what rates alone did to the same home.
| Province | Benchmark home price | Income needed to qualify | Interest over a 5-year term |
|---|---|---|---|
| Canada | $651,400 decreased by $26,000 | $130,550 increased by $8,301 | $119,840 increased by $20,274 |
| British Columbia | $868,900 decreased by $44,200 | $172,207 increased by $11,035 | $157,931 increased by $26,993 |
| Alberta | $508,500 decreased by $2,200 | $102,428 increased by $6,457 | $94,026 increased by $15,746 |
| Saskatchewan | $376,700 increased by $10,400 | $77,233 increased by $4,541 | $70,181 increased by $11,020 |
| Manitoba | $388,200 increased by $799 | $79,050 increased by $4,652 | $71,902 increased by $11,291 |
| Ontario | $736,300 decreased by $30,800 | $147,500 increased by $9,405 | $135,775 increased by $22,969 |
| Quebec | $537,100 increased by $6,000 | $108,771 increased by $6,869 | $100,029 increased by $16,751 |
| New Brunswick | $341,700 increased by $9,100 | $69,595 increased by $4,073 | $62,953 increased by $9,885 |
| Nova Scotia | $423,200 decreased by $11,000 | $86,050 increased by $5,081 | $78,526 increased by $12,331 |
| Prince Edward Island | $377,900 increased by $1,700 | $78,470 increased by $4,616 | $71,353 increased by $11,204 |
| Newfoundland and Labrador | $355,600 increased by $18,600 | $72,553 increased by $4,254 | $65,753 increased by $10,325 |
How we calculate it: qualifying income assumes a 20% down payment, a 25-year amortization and a 39% gross debt service (GDS) ratio. It is stress-tested at the minimum qualifying rate: the greater of 5.25% and the contract rate plus two percentage points. Interest is the total paid over a five-year fixed term and excludes principal, property tax, heating, insurance and maintenance. These are qualification thresholds, not affordability recommendations.
Paste sections of this into a WordPress test page (Paragraph or Custom HTML block) and check the rendered result against the label. Each line shows the same shortcode twice, separated by::: the first copy is in double square brackets ([[tag]]), WordPress’s escape convention, so it prints as literal text — that’s the code you’re checking. The second copy is in normal single square brackets ([tag]), so it actually executes and shows the live value right next to it. Nothing needs stripping or editing before pasting.
Scenario used throughout, matching the editor guide’s own worked examples so results are cross-checkable: 5-year fixed, $500,000 price, $100,000 down, 25-year amortization unless a row says otherwise.
[housing type="snlr"] : 48.8%[housing type="snlr" output="market"] : 48.8%[housing type="snlr" output="text_market"] : balanced market[housing type="snlr" output="market_type"] : 48.8%[housing type="snlr" output="snlr_market"] : 48.8%[housing type="snlr" date="mom" change="true"] : decreased by 0.61%[housing type="snlr" output="text_market"] : balanced market[housing type="snlr" location="on" output="text_market"] : buyers market[housing type="snlr" location="qc" output="text_market"] : balanced market[housing type="snlr" location="bc" output="text_market"] : buyers market[housing type="snlr" location="ab" output="text_market"] : balanced market[housing type="snlr" location="sk" output="text_market"] : sellers market[housing type="snlr" location="mb" output="text_market"] : sellers market[housing type="snlr" location="nb" output="text_market"] : balanced market[housing type="snlr" location="ns" output="text_market"] : balanced market[housing type="snlr" location="pei" output="text_market"] : balanced market[housing type="snlr" location="nf" output="text_market"] : sellers market[housing type="snlr" location="toronto" output="text_market"] : buyers market[housing type="snlr" location="montreal" output="text_market"] : balanced market[housing type="snlr" location="ottawa" output="text_market"] : buyers market[housing type="snlr" location="hamilton" output="text_market"] : buyers market[housing type="snlr" location="london" output="text_market"] : buyers market[housing type="snlr" location="calgary" output="text_market"] : balanced market[housing type="snlr" location="edmonton" output="text_market"] : balanced market[housing type="snlr" location="vancouver" output="text_market"] : buyers market[housing type="snlr" location="winnipeg" output="text_market"] : balanced market[housing type="snlr" location="victoria" output="text_market"] : buyers market[housing type="snlr" location="regina" output="text_market"] : sellers market[housing type="snlr" location="saskatoon" output="text_market"] : balanced market[housing type="snlr" location="guelph" output="text_market"] : buyers market[housing type="snlr" location="kingston" output="text_market"] : buyers market[housing type="snlr" location="kitchener" output="text_market"] : buyers market[housing type="snlr" location="mississauga" output="text_market"] : buyers market[housing type="snlr" location="windsor" output="text_market"] : buyers market[housing type="snlr" location="fredericton" output="text_market"] : balanced market[housing type="snlr" location="moncton" output="text_market"] : balanced market[housing type="snlr" location="saint_john" output="text_market"] : sellers market[housing type="snlr" location="halifax" output="text_market"] : balanced market[housing type="snlr" location="st_johns" output="text_market"] : sellers market[housing type="snlr" location="central_quebec" output="text_market"] : sellers market[housing type="snlr" location="estrie" output="text_market"] : sellers market[housing type="snlr" location="mauricie" output="text_market"] : sellers market[housing type="snlr" location="quebec_city" output="text_market"] : balanced market[payment type="5_fixed" price="500000" down="100000"] : $2,301[interest type="5_fixed" price="500000" down="100000"] : $91,501[principal type="5_fixed" price="500000" down="100000"] : $46,585[paid type="5_fixed" price="500000" down="100000"] : $138,086[balance type="5_fixed" price="500000" down="100000"] : $353,415[rate_value type="5_fixed" price="500000" down="100000"] : 4.89%[income_needed type="5_fixed" price="500000" down="100000"] : $86,711[min_down price="500000"] : $25,000[payment type="5_fixed" price="500000" down="100000"] : $2,301[payment_q type="5_fixed" price="500000" down="100000"] : $2,775[payment_mom type="5_fixed" price="500000" down="100000"] : $2,301[payment_yoy type="5_fixed" price="500000" down="100000"] : $2,124[payment_mom_q type="5_fixed" price="500000" down="100000"] : $2,775[payment_yoy_q type="5_fixed" price="500000" down="100000"] : $2,581[payment_change_mom type="5_fixed" price="500000" down="100000"] : remains unchanged[payment_change_yoy type="5_fixed" price="500000" down="100000"] : increased by 8.37%[payment_change_mom_q type="5_fixed" price="500000" down="100000"] : remains unchanged[payment_change_yoy_q type="5_fixed" price="500000" down="100000"] : increased by 7.51%Same ten endings apply to interest, principal, paid, balance, rate_value and income_needed too — min_down has no endings at all (see the editor guide, 4.6).
[payment_change_yoy type="5_fixed" price="500000" down="100000" output="text_percent"] : increased by 8.37%[payment_change_yoy type="5_fixed" price="500000" down="100000" output="text_dollar"] : increased by $178[payment_change_yoy type="5_fixed" price="500000" down="100000" output="arrow_percent"] : increased by 8.37%[payment_change_yoy type="5_fixed" price="500000" down="100000" output="arrow_dollar"] : increased by $178[payment type="5_fixed" price="500000" down="min"] : $2,679[payment type="5_fixed" price="500000" down="25000"] : $2,679[payment type="5_fixed" price="500000" down="100000"] : $2,301[payment type="5_fixed" amount="400000"] : $2,256location is documented as feeding income_needed‘s property-tax lookup, but property tax isn’t factored in on the live site yet — every location currently returns the same figure for an identical scenario, so a location-by-location sweep here would just repeat one number 37 times. Skipped for now; worth revisiting once property tax ships. One spot-check, to confirm that’s still true today:
[income_needed type="5_fixed" price="500000" down="100000" location="canada"] : $86,711[income_needed type="5_fixed" price="500000" down="100000" location="on"] : $86,711[housing] : $651,400[housing_mom] : $657,500[housing_yoy] : $677,400[housing_change_mom] : decreased by 0.93%[housing_change_yoy] : decreased by 3.84%[housing type="composite"] : $651,400[housing type="single_family"] : $723,500[housing type="townhouse"] : $590,700[housing type="condo"] : $455,700[housing type="rent"] : $2,034[housing type="rent_1"] : $1,756[housing type="rent_2"] : $2,138[housing type="sales"] : 36,842[housing type="listings"] : 75,466[housing type="snlr"] : 48.8%Confirms which regions currently have composite-price data.
[housing location="canada"] : $651,400[housing location="on"] : $736,300[housing location="qc"] : $537,100[housing location="bc"] : $868,900[housing location="ab"] : $508,500[housing location="sk"] : $376,700[housing location="mb"] : $388,200[housing location="nb"] : $341,700[housing location="ns"] : $423,200[housing location="pei"] : $377,900[housing location="nf"] : $355,600[housing location="toronto"] : $917,600[housing location="montreal"] : $578,200[housing location="ottawa"] : $623,500[housing location="hamilton"] : $718,600[housing location="london"] : $552,500[housing location="calgary"] : $569,200[housing location="edmonton"] : $416,700[housing location="vancouver"] : $1,075,900[housing location="winnipeg"] : $392,100[housing location="victoria"] : $877,000[housing location="regina"] : $343,900[housing location="saskatoon"] : $439,600[housing location="guelph"] : $720,200[housing location="kingston"] : $542,800[housing location="kitchener"] : $630,200[housing location="mississauga"] : $903,600[housing location="windsor"] : $570,000[housing location="fredericton"] : $364,400[housing location="moncton"] : $377,400[housing location="saint_john"] : $355,400[housing location="halifax"] : $541,700[housing location="st_johns"] : $421,800[housing location="central_quebec"] : $366,600[housing location="estrie"] : $475,400[housing location="mauricie"] : $331,200[housing location="quebec_city"] : $445,800[housing output="date"] : September 2026[housing_mom output="date"] : August 2026[housing_yoy output="date"] : September 2025[housing date="2026-01"] : $665,400[housing date="2026_01"] : $651,400output=”market” is confirmed as the correct attribute — no text_ prefix. It works only with type="snlr"; anything else renders nothing.
The ratio itself, Canada:
[housing type="snlr"] : 48.8%[housing_mom type="snlr"] : 49.1%[housing_yoy type="snlr"] : 50.6%[housing_change_mom type="snlr"] : decreased by 0.61%[housing_change_yoy type="snlr"] : decreased by 3.56%The market label, several locations and periods:
[housing type="snlr" output="market"] : 48.8%[housing type="snlr" location="on" output="market"] : 34%[housing type="snlr" location="qc" output="market"] : 45.8%[housing type="snlr" location="toronto" output="market"] : 30.5%[housing_mom type="snlr" output="market"] : 49.1%[housing_yoy type="snlr" location="on" output="market"] : 33.7%[housing type="snlr" location="on" date="2026-01" output="market"] : 32.1%[housing type="snlr" change="true" output="market"] : Untested combination — does output=”market” survive on a change tag, or does the change-format win?
[housing_change_mom type="snlr" output="market"] : decreased by 0.61%[housing_change_yoy type="snlr" output="market"] : decreased by 3.56%Should render nothing — market label only works on snlr:
[housing type="composite" output="market"] : $651,400[housing type="sales" output="market"] : 36,842[housing_change_yoy output="text_percent"] : decreased by 3.84%[housing_change_yoy output="text_dollar"] : decreased by $26,000[housing_change_yoy output="arrow_percent"] : decreased by 3.84%[housing_change_yoy output="arrow_dollar"] : decreased by $26,000The mechanics are covered in 2.5. This sweeps every accepted location once, so you can see at a glance which ones actually have snlr data published right now.
[housing type="snlr" location="canada"] : 48.8%[housing type="snlr" location="canada" output="date"] : September 2026[housing type="snlr" location="canada" output="market"] : 48.8%[housing type="snlr" location="on"] : 34%[housing type="snlr" location="on" output="date"] : September 2026[housing type="snlr" location="on" output="market"] : 34%[housing type="snlr" location="qc"] : 45.8%[housing type="snlr" location="qc" output="date"] : September 2026[housing type="snlr" location="qc" output="market"] : 45.8%[housing type="snlr" location="bc"] : 12%[housing type="snlr" location="bc" output="date"] : September 2026[housing type="snlr" location="bc" output="market"] : 12%[housing type="snlr" location="ab"] : 53.8%[housing type="snlr" location="ab" output="date"] : September 2026[housing type="snlr" location="ab" output="market"] : 53.8%[housing type="snlr" location="sk"] : 62.4%[housing type="snlr" location="sk" output="date"] : September 2026[housing type="snlr" location="sk" output="market"] : 62.4%[housing type="snlr" location="mb"] : 60.4%[housing type="snlr" location="mb" output="date"] : September 2026[housing type="snlr" location="mb" output="market"] : 60.4%[housing type="snlr" location="nb"] : 56.1%[housing type="snlr" location="nb" output="date"] : September 2026[housing type="snlr" location="nb" output="market"] : 56.1%[housing type="snlr" location="ns"] : 57.7%[housing type="snlr" location="ns" output="date"] : September 2026[housing type="snlr" location="ns" output="market"] : 57.7%[housing type="snlr" location="pei"] : 58.9%[housing type="snlr" location="pei" output="date"] : September 2026[housing type="snlr" location="pei" output="market"] : 58.9%[housing type="snlr" location="nf"] : 66.3%[housing type="snlr" location="nf" output="date"] : September 2026[housing type="snlr" location="nf" output="market"] : 66.3%[housing type="snlr" location="toronto"] : 30.5%[housing type="snlr" location="toronto" output="date"] : September 2026[housing type="snlr" location="toronto" output="market"] : 30.5%[housing type="snlr" location="montreal"] : 41.1%[housing type="snlr" location="montreal" output="date"] : September 2026[housing type="snlr" location="montreal" output="market"] : 41.1%[housing type="snlr" location="ottawa"] : 34.5%[housing type="snlr" location="ottawa" output="date"] : September 2026[housing type="snlr" location="ottawa" output="market"] : 34.5%[housing type="snlr" location="hamilton"] : 35.4%[housing type="snlr" location="hamilton" output="date"] : September 2026[housing type="snlr" location="hamilton" output="market"] : 35.4%[housing type="snlr" location="london"] : 34.7%[housing type="snlr" location="london" output="date"] : September 2026[housing type="snlr" location="london" output="market"] : 34.7%[housing type="snlr" location="calgary"] : 49.2%[housing type="snlr" location="calgary" output="date"] : September 2026[housing type="snlr" location="calgary" output="market"] : 49.2%[housing type="snlr" location="edmonton"] : 50.7%[housing type="snlr" location="edmonton" output="date"] : September 2026[housing type="snlr" location="edmonton" output="market"] : 50.7%[housing type="snlr" location="vancouver"] : 29.3%[housing type="snlr" location="vancouver" output="date"] : September 2026[housing type="snlr" location="vancouver" output="market"] : 29.3%[housing type="snlr" location="winnipeg"] : 59%[housing type="snlr" location="winnipeg" output="date"] : September 2026[housing type="snlr" location="winnipeg" output="market"] : 59%[housing type="snlr" location="victoria"] : 14.5%[housing type="snlr" location="victoria" output="date"] : September 2026[housing type="snlr" location="victoria" output="market"] : 14.5%[housing type="snlr" location="regina"] : 65.8%[housing type="snlr" location="regina" output="date"] : September 2026[housing type="snlr" location="regina" output="market"] : 65.8%[housing type="snlr" location="saskatoon"] : 49.7%[housing type="snlr" location="saskatoon" output="date"] : September 2026[housing type="snlr" location="saskatoon" output="market"] : 49.7%[housing type="snlr" location="guelph"] : 36.8%[housing type="snlr" location="guelph" output="date"] : September 2026[housing type="snlr" location="guelph" output="market"] : 36.8%[housing type="snlr" location="kingston"] : 32%[housing type="snlr" location="kingston" output="date"] : September 2026[housing type="snlr" location="kingston" output="market"] : 32%[housing type="snlr" location="kitchener"] : 35.7%[housing type="snlr" location="kitchener" output="date"] : September 2026[housing type="snlr" location="kitchener" output="market"] : 35.7%[housing type="snlr" location="mississauga"] : 34.1%[housing type="snlr" location="mississauga" output="date"] : September 2026[housing type="snlr" location="mississauga" output="market"] : 34.1%[housing type="snlr" location="windsor"] : 32.2%[housing type="snlr" location="windsor" output="date"] : September 2026[housing type="snlr" location="windsor" output="market"] : 32.2%[housing type="snlr" location="fredericton"] : 49.7%[housing type="snlr" location="fredericton" output="date"] : September 2026[housing type="snlr" location="fredericton" output="market"] : 49.7%[housing type="snlr" location="moncton"] : 48.5%[housing type="snlr" location="moncton" output="date"] : September 2026[housing type="snlr" location="moncton" output="market"] : 48.5%[housing type="snlr" location="saint_john"] : 72.7%[housing type="snlr" location="saint_john" output="date"] : September 2026[housing type="snlr" location="saint_john" output="market"] : 72.7%[housing type="snlr" location="halifax"] : 59.7%[housing type="snlr" location="halifax" output="date"] : September 2026[housing type="snlr" location="halifax" output="market"] : 59.7%[housing type="snlr" location="st_johns"] : 126.6%[housing type="snlr" location="st_johns" output="date"] : September 2026[housing type="snlr" location="st_johns" output="market"] : 126.6%[housing type="snlr" location="central_quebec"] : 61.3%[housing type="snlr" location="central_quebec" output="date"] : September 2026[housing type="snlr" location="central_quebec" output="market"] : 61.3%[housing type="snlr" location="estrie"] : 64.8%[housing type="snlr" location="estrie" output="date"] : September 2026[housing type="snlr" location="estrie" output="market"] : 64.8%[housing type="snlr" location="mauricie"] : 60.4%[housing type="snlr" location="mauricie" output="date"] : September 2026[housing type="snlr" location="mauricie" output="market"] : 60.4%[housing type="snlr" location="quebec_city"] : 55.3%[housing type="snlr" location="quebec_city" output="date"] : September 2026[housing type="snlr" location="quebec_city" output="market"] : 55.3%If a row shows nothing: that’s the shortcode’s normal empty-string behaviour for a missing attribute, an unpublished month, or a region with no data for that type — not necessarily a bug. Note which ones are empty; that’s exactly what today’s pass is for.