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:

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

Updates

We refresh StatCan data each quarter and re-check national baselines yearly.