Open source

An open-source civic project. Not affiliated with the Government of Canada or the City of Toronto.

Open NshipyardContagion Tracker

Nshipyard Canada · Housing

Unaffordability travels.

The thesis: when Toronto prices out a nurse, she moves to Hamilton. Hamilton gets expensive. The wave rolls on to Brantford. This tracker tests that story against 45 years of new-housing prices across seven corridor cities. Kitchener-Waterloo prices rose 46.7% since 2017 while Toronto managed 2.9%. The wave is not a metaphor. It has a number.

+46.7%

Kitchener-Waterloo new-home price growth, 2017 to 2026. Toronto: +2.9%. The corridor outran the core.

1.43x

Kitchener-Waterloo's price index relative to Toronto's in 2026, both set to 100 in 2017. The gap closed, then reversed.

0.87-0.96

Correlation of each corridor city's monthly price cycle with Toronto's, 2017-2026. One regional market, five speeds.

548

Months of new-housing price data per city, January 1981 to August 2026, from Statistics Canada's open tables.

The ripple

Watch the wave move.

New Housing Price Index, rebased to 100 in 2017 for every city. Drag the year slider to see each corridor city's index pull away from or fall back toward Toronto. The second chart shows each city's index divided by Toronto's: above 1.0 means it outran Toronto since 2017.

…

Findings

What the wave shows.

01

Kitchener-Waterloo is the epicentre

New-home prices there rose 46.7% from 2017 to 2026 against Toronto's 2.9%, peaking at 154.0 on the 2017=100 index in 2022. By 2026 its index sat at 1.43 times Toronto's. The nurse did not stop in Hamilton; the wave kept going.

02

The corridor front-ran the core

Hamilton's monthly price cycle correlates 0.87 with Toronto's, but its turning points arrive roughly 6 months earlier. In the 2017-2026 window the corridor did not follow Toronto with a lag; in the pandemic surge it moved first, as Toronto buyers spilled outward.

03

The boom was a corridor boom

From 2017 to 2021, Kitchener-Waterloo gained 35.4%, Guelph 17.2%, Hamilton 13.5% and Oshawa 13.0%, all ahead of Toronto's 6.6%. The 2021-2026 correction then bit the corridor harder: Hamilton -6.6%, the rest near flat. Contagion cuts both ways.

04

Toronto is flat since 2017

Toronto's new-home index sits at 102.9 in 2026 against 100 in 2017. Four decades of growth, 53.2 in 2000 to 111.4 in 2022, then a full round trip. Anyone who bought the Toronto new-build peak is underwater on price while the corridor kept its gains.

05

What this cannot say

The New Housing Price Index tracks new homes only, not resale, and Toronto's new supply is mostly condos while the corridor builds detached houses. Resale price levels are proprietary (Teranet, CREA) and are not in this dataset. Barrie and Brantford have no NHPI coverage at all. The wave is measured in new-home prices; treat it as one lens, not the whole market.

Methodology

How the wave was measured, and where it is weak.

  1. 01

    Price source: Statistics Canada table 18-10-0205-01, New Housing Price Index, monthly January 1981 to August 2026, retrieved 2026-10-09. Five corridor CMAs are covered: Toronto, Hamilton, Oshawa, Guelph and Kitchener-Cambridge-Waterloo. Oshawa and Guelph enter the series in December 2016, so the comparison window is 2017-2026.

  2. 02

    Annual values are simple averages of the twelve monthly index readings; 2026 averages January to August only. Each city's series is rebased to 2017 = 100 for the catch-up comparison.

  3. 03

    The ripple metric is the city's rebased index divided by Toronto's rebased index. Above 1.0 means the city outran Toronto since 2017. Cycle correlation is the Pearson correlation of monthly year-over-year growth rates against Toronto's, 2017-2026; the lead in months is the lag that maximizes that correlation.

  4. 04

    City metadata: 2021 census populations from StatCan table 98-10-0003-01; distances are great-circle kilometres from Union Station, Toronto, computed from OpenStreetMap Nominatim coordinates, rounded to 0.1 km.

  5. 05

    NHPI measures contractor-reported prices for new houses with a fixed specification, land included. It is not a resale index, and its dwelling mix differs by city: Toronto's new supply is condominium-heavy, the corridor's is detached-heavy. Compare growth rates, not levels, across cities.

  6. 06

    Not used, on purpose: resale price levels are proprietary to Teranet and CREA and cannot be redistributed; census median dwelling values by CMA are not published in an accessible StatCan table. No price-to-income levels are computed. Every number on this site traces to the two open tables above.

For developers

Query it from code, or from an agent.

Three consumption paths, same open data. REST for applications, OpenAPI for integration, MCP tools over streamable HTTP for AI agents.

Endpoints

GET/api/v1/citiesTry it →

Seven corridor cities: CMA, distance from downtown Toronto, 2021 population, NHPI coverage

{
  "cities": [
    { "id": "hamilton", "name": "Hamilton",
      "distance_km": 58.7, "population_2021": 785184,
      "nhpi_coverage": true }
  ]}
GET/api/v1/rippleTry it →

Full dataset: cities, annual NHPI series rebased 2017=100, Toronto-relative catch-up, ripple analysis

{
  "series": {
    "Kitchener-Waterloo": [
      { "year": 2017, "index_2017": 100.0,
        "vs_toronto": 1.0 },
      { "year": 2026, "index_2017": 146.7,
        "vs_toronto": 1.43 }
    ] } }

MCP server

One streamable-HTTP endpoint. Tools: city_lookup, ripple_series, contagion_summary.

Connect your agent

Put this data to work inside your AI tools.

Pick your harness, copy the prompt, send it to your agent. Your agent runs the setup itself.

Copy and send this to Claude Code

Set up the Canada Housing Contagion Tracker MCP server so I can query it from here.
1. Run: claude mcp add --transport http contagion https://this-site.example/mcp
2. Run `claude mcp list` to confirm it connected.
3. look up the Kitchener-Waterloo ripple record, and show me the result.

Data

Take the files.

The full dataset and the annual price series, MIT licensed, as JSON and CSV.

contagion.json

Cities, annual NHPI series, catch-up ratios and ripple analysis

Download

nhpi_annual.csv

Annual average NHPI by CMA, 1981-2026, with Toronto-relative ratios

Download