How we calculate our estimates
Every number on CostByCity.ca is a modeled estimate range, not a quote. We publish the method so you can judge it.
1. National baseline
For each project we set a 2026 national installed-cost range for a defined, typical scope (for example, a ~2,000 sq ft asphalt shingle roof). Each range is checked against at least two current published Canadian cost guides.
2. City factor
We adjust the baseline for each city with two Statistics Canada datasets:
- Construction prices: Table 18-10-0289-01, Building construction price index for single-detached houses (April 2026), relative to the 15-city composite. Cities without their own index use the nearest city or province.
- Trade wages: Table 14-10-0064-01, average hourly wage in construction by province (2025), relative to the Canadian average, applied only to the labour share of the job (40–55%).
city factor = (labour share × wage ratio + material share) × city price index ÷ national composite
3. Rounding & tax
Ranges are rounded to the nearest $50 and exclude GST/HST/PST.
Limits
- The price index tracks new-home construction, not renovation.
- Wages are provincial, not city-level.
- Your home's size, access and material choices matter more than the city. Always get 3 written quotes.
Updates
We refresh StatCan data each quarter and re-check national baselines yearly.