Canadian building construction price intelligence (quarterly)
Quarterly Canadian building-construction price intelligence from Statistics Canada's Web Data Service (keyless): table 18-10-0289-01, building construction price indexes (2023=100, not seasonally adjusted) for the 15-CMA composite plus the 15 census metropolitan areas, residential and non-residential buildings, 1981 -> present. Per geography x building type x quarter: index, quarter-over-quarter and year-over-year growth, 4-quarter annualized pulse, trailing 12-quarter moving average, a documented 0-100 construction-cost pressure score with per-quarter ranks, accelerating/record-high flags. Statistics Canada Open Licence (commercial reuse allowed); source: Statistics Canada.
- Source
- Statistics Canada
- Rows
- 1,024
- Columns
- 19
- Source cadence
- Quarterly
- Last refreshed
- Sep 27, 2026
- Theme
- economy
| Column | Type | Description |
|---|---|---|
| quarter | string | Reference quarter, YYYY-Qn (the WDS refPer is the quarter-start month). (unit: quarter label) |
| country_code | string | ISO alpha-3 country code (CAN for every row). (unit: ISO 3166-1 alpha-3) |
| geo_code | string | Stable geography key: CA15 (fifteen-CMA composite), STJ, HAL, MON, QUE, MTL, OTT, TOR, LON, WPG, REG, SAS, CAL, EDM, VAN, VIC. Primary join key with quarter and building_type. (unit: code) |
| geo_label | string | Human-readable geography name (CMA or composite). |
| building_type | string | Building type: RES (residential buildings) or NRES (non-residential buildings). (unit: categorical) |
| building_type_label | string | Human-readable building-type name. |
| index_2023_100 | float | Building construction price index, 2023=100, not seasonally adjusted. Null only where upstream publishes no value (never zero-filled). (unit: index points) |
| qoq_pct | float | Quarter-over-quarter percent change in the index. (unit: percent) |
| yoy_pct | float | Year-over-year percent change in the index. Null for the first 4 quarters of each series (warm-up). (unit: percent) |
| annualized_qoq_pct | float | 4-quarter annualized pulse: (1 + qoq/100)^4 - 1, in percent. (unit: percent) |
| ma_12q | float | Trailing 12-quarter moving average of the index. Null until 12 quarters of history exist. (unit: index points) |
| cost_pressure_score | float | Documented 0-100 composite, per quarter and building type, across the 16 geographies: 100 * (0.5 * min-max(clip(yoy_pct, -10, +10)) + 0.5 * min-max(clip(annualized_qoq_pct, -8, +8))). High = construction costs running hot. Degenerate quarters score 50. (unit: 0-100 score) |
| pressure_rank | integer | Per-quarter, per-building-type dense rank of cost_pressure_score across the 16 geographies, 1 = hottest. (unit: rank) |
| pressure_tier | string | Tier of cost_pressure_score: p1 hot (>= 75), p2 (50-75), p3 (25-50), p4 cool (< 25). (unit: categorical) |
| accelerating_flag | float | 1 when yoy_pct rose vs the prior quarter (cost growth accelerating). (unit: binary) |
| record_high_12q_flag | float | 1 when the index equals the trailing-12-quarter maximum (inclusive). Null until 12 quarters of history exist or where the index is null. (unit: binary) |
| as_of | string | Latest reference quarter in the fetched panel (YYYY-Qn); identical across rows and across runs on the same vintage. (unit: quarter label) |
| source_table | string | Statistics Canada table number the row was parsed from (18-10-0289-01). (unit: code) |
| row_hash | string | Deterministic 16-hex row id: sha256('BCPI|<geo_code>|<building_type>|<quarter>'). (unit: hash) |
First 10 sample rows — a preview, not the complete dataset.
| quarter | country_code | geo_code | geo_label | building_type | building_type_label | index_2023_100 | qoq_pct | yoy_pct | annualized_qoq_pct | ma_12q | cost_pressure_score | pressure_rank | pressure_tier | accelerating_flag | record_high_12q_flag | as_of | source_table | row_hash |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2018-Q3 | CAN | CA15 | Fifteen CMA composite | NRES | Non-residential | 74.6 | 1.5 | 4.48 | 6.12 | 71 | 58.19 | 5 | p2 | 1 | 1 | 2026-Q2 | 18-10-0289-01 | 6181e4d2a04a3e4f |
| 2018-Q3 | CAN | CAL | Calgary | NRES | Non-residential | 82.7 | 1.22 | 2.48 | 4.99 | 80.5 | 23.56 | 9 | p4 | 1 | 1 | 2026-Q2 | 18-10-0289-01 | 6825c31657b07f6f |
| 2018-Q3 | CAN | EDM | Edmonton | NRES | Non-residential | 77.2 | 1.31 | 3.07 | 5.35 | 75.3 | 34.07 | 8 | p3 | 1 | 1 | 2026-Q2 | 18-10-0289-01 | c990b05939bc9369 |
| 2018-Q3 | CAN | HAL | Halifax | NRES | Non-residential | 77.8 | 1.57 | 3.6 | 6.42 | 74.6 | 51.77 | 6 | p2 | 1 | 1 | 2026-Q2 | 18-10-0289-01 | 56560cdaed4f43e5 |
| 2018-Q3 | CAN | LON | London | NRES | Non-residential | — | — | — | — | — | — | — | p4 | — | — | 2026-Q2 | 18-10-0289-01 | f256c349c767769f |
| 2018-Q3 | CAN | MON | Moncton | NRES | Non-residential | 73.2 | 1.53 | 3.39 | 6.24 | — | 47.46 | 7 | p3 | 1 | — | 2026-Q2 | 18-10-0289-01 | d54d6318dc0e13a2 |
| 2018-Q3 | CAN | MTL | Montréal | NRES | Non-residential | 72.2 | 1.83 | 5.09 | 7.54 | 68 | 80.64 | 3 | p1 | 1 | 1 | 2026-Q2 | 18-10-0289-01 | 50c10ad5f41bb406 |
| 2018-Q3 | CAN | OTT | Ottawa–Gatineau | NRES | Non-residential | 68.4 | 2.55 | 6.38 | 10.59 | 64.2 | 100 | 1 | p1 | 1 | 1 | 2026-Q2 | 18-10-0289-01 | 4a666b7d88f2ea45 |
| 2018-Q3 | CAN | QUE | Quebec | NRES | Non-residential | — | — | — | — | — | — | — | p4 | — | — | 2026-Q2 | 18-10-0289-01 | 5cc9439376c95b6f |
| 2018-Q3 | CAN | REG | Regina | NRES | Non-residential | — | — | — | — | — | — | — | p4 | — | — | 2026-Q2 | 18-10-0289-01 | 15f0ae28a80389d0 |
Profiled Sep 27, 2026 from snapshot 20260927T165121Z-329cbb70f504
Measured- Completeness
- 90.8%
- Rows
- 1,024
- Columns
- 19
- Columns with gaps
- 9
| Column | Missing | Distinct | Range | Distribution |
|---|---|---|---|---|
| quartervarchar | 0% | 27 | — |
|
| country_codevarchar | 0% | 1 | — |
|
| geo_codevarchar | 0% | 15 | — |
|
| geo_labelvarchar | 0% | 19 | — |
|
| building_typevarchar | 0% | 2 | — |
|
| building_type_labelvarchar | 0% | 2 | — |
|
| index_2023_100double | 14.1% | 391 | 55.5 → 124.5median 98.25 | 17 outside 1st–99th percentile |
| qoq_pctdouble | 14.8% | 393 | -1.19 → 14.34median 1.04 | 18 outside 1st–99th percentile |
| yoy_pctdouble | 17.2% | 640 | -1.09 → 34.46median 4.45 | 18 outside 1st–99th percentile |
| annualized_qoq_pctdouble | 14.8% | 784 | -4.67 → 70.94median 4.22 | 18 outside 1st–99th percentile |
| ma_12qdouble | 30.5% | 313 | 54 → 112.3median 86.45 | 14 outside 1st–99th percentile |
| cost_pressure_scoredouble | 17.2% | 726 | 0 → 100median 51.01 | |
| pressure_rankbigint | 17.2% | 18 | 1 → 16median 6 | |
| pressure_tiervarchar | 0% | 4 | — |
|
| accelerating_flagdouble | 18% | 2 | 0 → 1median 0 | |
| record_high_12q_flagdouble | 30.5% | 2 | 0 → 1median 1 | |
| as_ofvarchar | 0% | 1 | — |
|
| source_tablevarchar | 0% | 1 | — |
|
| row_hashvarchar | 0% | 1,057 | — |
|
- Current
20260927T165121Z-329cbb70f504 · sha256 329cbb70f504…
1,024 rows · first snapshot
Point any LLM at the metadata endpoint — the documentation above is machine-readable too (JSON-LD + Croissant).
curl "https://datazimuts.com/v1/datasets/statcan_construction_price_intel/ca_building_construction_price_quarterly" | jq '{title, rows, columns_count, license}'import requests
ds = requests.get("https://datazimuts.com/v1/datasets/statcan_construction_price_intel/ca_building_construction_price_quarterly").json()
print(ds["title"], ds["rows"], "rows")
# Sample rows for an LLM context window
for row in ds.get("sample_rows", [])[:5]:
print(row)API endpoint: https://datazimuts.com/v1/datasets/statcan_construction_price_intel/ca_building_construction_price_quarterly
Tip: fetch /llms.txt for the full machine-readable catalog.
Where this data comes from and what was made from it. Other people's work shows as counts; only shared projects are named.
Cite this snapshot
Pinned to snapshot 20260927T165121Z-329cbb70f504 and its content hash, so readers get exactly the data you used.
Statistics Canada. (2026). Canadian building construction price intelligence (quarterly) [Data set, snapshot 20260927T165121Z-329cbb70f504, sha256 329cbb70f504]. Datazimuts. Retrieved 2026-09-27, from https://datazimuts.com/en/datasets/statcan_construction_price_intel/ca_building_construction_price_quarterly?snapshot=20260927T165121Z-329cbb70f504
@misc{dz_statcan_construction_price_intel_ca_buil_329cbb70,
title = {{Canadian building construction price intelligence (quarterly)}},
author = {{Statistics Canada}},
year = {2026},
publisher = {Datazimuts},
howpublished = {\url{https://datazimuts.com/en/datasets/statcan_construction_price_intel/ca_building_construction_price_quarterly?snapshot=20260927T165121Z-329cbb70f504}},
note = {Snapshot 20260927T165121Z-329cbb70f504, sha256 329cbb70f504e694fdcc4f63b918c3a1417aa6eea9c564e33a838867616ab994; accessed 2026-09-27}
}Embed a table or a chart
Paste this into any page. The embed is pinned to the same snapshot, follows the reader's light or dark setting, and always shows the source, license and a link back.
<iframe src="https://datazimuts.com/embed/chart?dataset=statcan_construction_price_intel%2Fca_building_construction_price_quarterly&lang=en&theme=auto&snapshot=20260927T165121Z-329cbb70f504&x=quarter&y=index_2023_100&agg=avg" title="Canadian building construction price intelligence (quarterly)" width="100%" height="380" style="border:0" loading="lazy"></iframe>
Ask about this dataset. Answers come only from its catalog record, measured profile and change history, and list the facts they used.