Commercial property maintenance by city
Local cost benchmarks, winter load, and contractor market depth for 135 Canadian markets.
| City | Population | Commercial buildings | Snowfall days/yr | Labour index |
|---|---|---|---|---|
| Toronto, ON | 2,794,356 | 75,400 | 38 | 1.15 |
| Montreal, QC | 1,762,949 | 47,600 | 60 | 1.00 |
| Calgary, AB | 1,306,784 | 35,300 | 55 | 1.10 |
| Ottawa, ON | 1,017,449 | 27,500 | 58 | 1.05 |
| Edmonton, AB | 1,010,899 | 27,300 | 52 | 1.08 |
| Winnipeg, MB | 749,607 | 20,200 | 50 | 0.92 |
| Mississauga, ON | 717,961 | 19,400 | 40 | 1.10 |
| Vancouver, BC | 662,248 | 17,900 | 9 | 1.18 |
| Brampton, ON | 656,480 | 17,700 | 40 | 1.08 |
| Hamilton, ON | 569,353 | 15,400 | 42 | 1.00 |
| Surrey, BC | 568,322 | 15,300 | 10 | 1.12 |
| Quebec City, QC | 549,459 | 14,800 | 72 | 0.95 |
| Halifax, NS | 439,819 | 11,900 | 40 | 0.95 |
| London, ON | 422,324 | 11,400 | 52 | 0.95 |
| Kitchener, ON | 256,885 | 6,900 | 48 | 0.97 |
| Laval, QC | 438,366 | 11,800 | 58 | 0.97 |
| Victoria, BC | 397,237 | 10,700 | 6 | 1.10 |
| Markham, ON | 338,503 | 9,100 | 39 | 1.10 |
| Vaughan, ON | 323,103 | 8,700 | 39 | 1.10 |
| Saskatoon, SK | 317,480 | 8,600 | 48 | 0.90 |
| Gatineau, QC | 291,041 | 7,900 | 60 | 0.93 |
| Longueuil, QC | 254,483 | 6,900 | 58 | 0.95 |
| Regina, SK | 249,217 | 6,700 | 46 | 0.90 |
| Burnaby, BC | 249,125 | 6,700 | 10 | 1.14 |
| Windsor, ON | 229,660 | 6,200 | 38 | 0.93 |
| Oakville, ON | 213,759 | 5,800 | 61 | 1.00 |
| Richmond, BC | 209,937 | 5,700 | 8 | 1.14 |
| Richmond Hill, ON | 202,022 | 5,500 | 79 | 1.00 |
| Burlington, ON | 186,948 | 5,000 | 57 | 1.00 |
| Oshawa, ON | 175,383 | 4,700 | 42 | 0.98 |
| Sherbrooke, QC | 172,950 | 4,700 | 90 | 0.95 |
| Greater Sudbury, ON | 166,004 | 4,500 | 87 | 1.00 |
| Abbotsford, BC | 153,524 | 4,100 | 27 | 1.12 |
| Lévis, QC | 149,683 | 4,000 | 84 | 0.95 |
| Coquitlam, BC | 148,625 | 4,000 | 23 | 1.12 |
| Barrie, ON | 147,829 | 4,000 | 91 | 1.00 |
| Saguenay, QC | 144,723 | 3,900 | 91 | 0.95 |
| Kelowna, BC | 144,576 | 3,900 | 25 | 1.00 |
| Guelph, ON | 143,740 | 3,900 | 78 | 1.00 |
| Trois-Rivières, QC | 139,163 | 3,800 | 82 | 0.95 |
| Whitby, ON | 138,501 | 3,700 | 70 | 1.00 |
| Cambridge, ON | 138,479 | 3,700 | 73 | 1.00 |
| St. Catharines, ON | 136,803 | 3,700 | 67 | 1.00 |
| Milton, ON | 132,979 | 3,600 | 66 | 1.00 |
| Langley, BC | 132,603 | 3,600 | 23 | 1.12 |
| Kingston, ON | 132,485 | 3,600 | 69 | 1.00 |
| Ajax, ON | 126,666 | 3,400 | 70 | 1.00 |
| Waterloo, ON | 121,436 | 3,300 | 77 | 1.00 |
| Terrebonne, QC | 119,944 | 3,200 | 73 | 0.95 |
| Saanich, BC | 117,735 | 3,200 | 21 | 1.12 |
| St. John's, NL | 110,525 | 3,000 | 81 | 0.95 |
| Thunder Bay, ON | 108,843 | 2,900 | 76 | 1.00 |
| Delta, BC | 108,455 | 2,900 | 17 | 1.12 |
| Brantford, ON | 104,688 | 2,800 | 66 | 1.00 |
| Chatham-Kent, ON | 103,988 | 2,800 | 38 | 0.93 |
| Red Deer, AB | 100,844 | 2,700 | 48 | 0.95 |
| Nanaimo, BC | 99,863 | 2,700 | 16 | 1.12 |
| Pickering, ON | 99,186 | 2,700 | 65 | 1.00 |
| Lethbridge, AB | 98,406 | 2,700 | 44 | 0.92 |
| Saint-Jean-sur-Richelieu, QC | 98,036 | 2,600 | 81 | 0.95 |
| Kamloops, BC | 97,902 | 2,600 | 56 | 1.12 |
| Niagara Falls, ON | 94,415 | 2,500 | 71 | 1.00 |
| Chilliwack, BC | 93,203 | 2,500 | 37 | 1.12 |
| Dartmouth, NS | 92,300 | 2,500 | 40 | 0.95 |
| Brossard, QC | 91,525 | 2,500 | 60 | 1.00 |
| Maple Ridge, BC | 90,990 | 2,500 | 26 | 1.12 |
| Newmarket, ON | 87,942 | 2,400 | 80 | 1.00 |
| Repentigny, QC | 86,216 | 2,300 | 73 | 0.95 |
| Peterborough, ON | 84,230 | 2,300 | 78 | 1.00 |
| Saint-Jerome, QC | 80,213 | 2,200 | 73 | 0.95 |
| Moncton, NB | 79,470 | 2,100 | 67 | 0.90 |
| Drummondville, QC | 79,258 | 2,100 | 89 | 0.95 |
| New Westminster, BC | 78,916 | 2,100 | 21 | 1.12 |
| Charlottetown, PE | 78,858 | 2,100 | 72 | 0.88 |
| Prince George, BC | 76,708 | 2,100 | 92 | 1.12 |
| Caledon, ON | 76,581 | 2,100 | 40 | 1.08 |
| Airdrie, AB | 74,100 | 2,000 | 61 | 1.05 |
| Sault Ste. Marie, ON | 72,051 | 1,900 | 100 | 1.00 |
| Sarnia, ON | 72,047 | 1,900 | 55 | 1.00 |
| Saint John, NB | 69,895 | 1,900 | 56 | 0.90 |
| Granby, QC | 69,025 | 1,900 | 94 | 0.95 |
| St. Albert, AB | 68,232 | 1,800 | 87 | 1.05 |
| Fort McMurray, AB | 68,002 | 1,800 | 92 | 1.05 |
| Norfolk County, ON | 67,490 | 1,800 | 66 | 1.00 |
| Grande Prairie, AB | 64,141 | 1,700 | 91 | 1.05 |
| Medicine Hat, AB | 63,271 | 1,700 | 52 | 1.05 |
| Fredericton, NB | 63,116 | 1,700 | 61 | 0.90 |
| Halton Hills, ON | 62,951 | 1,700 | 66 | 1.00 |
| Port Coquitlam, BC | 61,498 | 1,700 | 23 | 1.12 |
| North Vancouver, BC | 58,120 | 1,600 | 36 | 1.12 |
| Welland, ON | 55,750 | 1,500 | 71 | 1.00 |
| Belleville, ON | 55,071 | 1,500 | 67 | 1.00 |
| North Bay, ON | 52,662 | 1,400 | 87 | 1.00 |
| Brandon, MB | 51,313 | 1,400 | 59 | 0.92 |
| Shawinigan, QC | 49,620 | 1,300 | 82 | 0.95 |
| Rimouski, QC | 48,664 | 1,300 | 91 | 0.95 |
| Cornwall, ON | 47,845 | 1,300 | 58 | 1.05 |
| Victoriaville, QC | 47,523 | 1,300 | 89 | 0.95 |
| Woodstock, ON | 46,705 | 1,300 | 66 | 1.00 |
| Vernon, BC | 44,519 | 1,200 | 46 | 1.12 |
| Bradford West Gwillimbury, ON | 42,880 | 1,200 | 80 | 1.00 |
| Rouyn-Noranda, QC | 42,313 | 1,100 | 60 | 0.93 |
| Salaberry-de-Valleyfield, QC | 41,250 | 1,100 | 60 | 1.00 |
| Timmins, ON | 41,145 | 1,100 | 87 | 1.00 |
| Prince Albert, SK | 37,756 | 1,000 | 79 | 0.90 |
| Spruce Grove, AB | 37,645 | 1,000 | 79 | 1.05 |
| Penticton, BC | 36,885 | 1,000 | 25 | 1.00 |
| West Kelowna, BC | 36,078 | 1,000 | 25 | 1.00 |
| Campbell River, BC | 35,519 | 1,000 | 16 | 1.12 |
| Leduc, AB | 34,094 | 900 | 52 | 1.08 |
| Moose Jaw, SK | 33,665 | 900 | 60 | 0.90 |
| Orillia, ON | 33,411 | 900 | 91 | 1.00 |
| Stratford, ON | 33,232 | 900 | 77 | 1.00 |
| Val-d'Or, QC | 32,752 | 900 | 60 | 0.93 |
| Cochrane, AB | 32,199 | 900 | 55 | 1.10 |
| Whitehorse, YT | 31,913 | 900 | 110 | 1.15 |
| Okotoks, AB | 30,405 | 800 | 55 | 1.10 |
| Sydney, NS | 29,904 | 800 | 68 | 0.95 |
| Courtenay, BC | 28,420 | 800 | 16 | 1.12 |
| Dieppe, NB | 28,114 | 800 | 67 | 0.90 |
| Fort Saskatchewan, AB | 27,088 | 700 | 52 | 1.08 |
| Sept-Iles, QC | 25,062 | 700 | 91 | 0.95 |
| Mount Pearl, NL | 22,957 | 600 | 81 | 0.95 |
| Owen Sound, ON | 21,612 | 600 | 91 | 1.00 |
| Cranbrook, BC | 20,499 | 600 | 46 | 1.12 |
| Yellowknife, NT | 20,340 | 500 | 63 | 1.25 |
| Corner Brook, NL | 19,333 | 500 | 81 | 0.95 |
| Steinbach, MB | 17,806 | 500 | 67 | 0.92 |
| Miramichi, NB | 17,537 | 500 | 67 | 0.90 |
| Swift Current, SK | 16,750 | 500 | 60 | 0.90 |
| Summerside, PE | 16,001 | 400 | 72 | 0.88 |
| Winkler, MB | 13,745 | 400 | 67 | 0.92 |
| Truro, NS | 12,954 | 300 | 40 | 0.95 |
| Bathurst, NB | 12,157 | 300 | 67 | 0.90 |
| Iqaluit, NU | 7,429 | 200 | 96 | 1.35 |
City guides
- Toronto, ON
- Montreal, QC
- Calgary, AB
- Ottawa, ON
- Edmonton, AB
- Winnipeg, MB
- Mississauga, ON
- Vancouver, BC
- Brampton, ON
- Hamilton, ON
- Surrey, BC
- Quebec City, QC
- Halifax, NS
- London, ON
- Kitchener, ON
- Laval, QC
- Victoria, BC
- Markham, ON
- Vaughan, ON
- Saskatoon, SK
- Gatineau, QC
- Longueuil, QC
- Regina, SK
- Burnaby, BC
- Windsor, ON
- Oakville, ON
- Richmond, BC
- Richmond Hill, ON
- Burlington, ON
- Oshawa, ON
- Sherbrooke, QC
- Greater Sudbury, ON
- Abbotsford, BC
- Lévis, QC
- Coquitlam, BC
- Barrie, ON
- Saguenay, QC
- Kelowna, BC
- Guelph, ON
- Trois-Rivières, QC
- Whitby, ON
- Cambridge, ON
- St. Catharines, ON
- Milton, ON
- Langley, BC
- Kingston, ON
- Ajax, ON
- Waterloo, ON
- Terrebonne, QC
- Saanich, BC
- St. John's, NL
- Thunder Bay, ON
- Delta, BC
- Brantford, ON
- Chatham-Kent, ON
- Red Deer, AB
- Nanaimo, BC
- Pickering, ON
- Lethbridge, AB
- Saint-Jean-sur-Richelieu, QC
- Kamloops, BC
- Niagara Falls, ON
- Chilliwack, BC
- Dartmouth, NS
- Brossard, QC
- Maple Ridge, BC
- Newmarket, ON
- Repentigny, QC
- Peterborough, ON
- Saint-Jerome, QC
- Moncton, NB
- Drummondville, QC
- New Westminster, BC
- Charlottetown, PE
- Prince George, BC
- Caledon, ON
- Airdrie, AB
- Sault Ste. Marie, ON
- Sarnia, ON
- Saint John, NB
- Granby, QC
- St. Albert, AB
- Fort McMurray, AB
- Norfolk County, ON
- Grande Prairie, AB
- Medicine Hat, AB
- Fredericton, NB
- Halton Hills, ON
- Port Coquitlam, BC
- North Vancouver, BC
- Welland, ON
- Belleville, ON
- North Bay, ON
- Brandon, MB
- Shawinigan, QC
- Rimouski, QC
- Cornwall, ON
- Victoriaville, QC
- Woodstock, ON
- Vernon, BC
- Bradford West Gwillimbury, ON
- Rouyn-Noranda, QC
- Salaberry-de-Valleyfield, QC
- Timmins, ON
- Prince Albert, SK
- Spruce Grove, AB
- Penticton, BC
- West Kelowna, BC
- Campbell River, BC
- Leduc, AB
- Moose Jaw, SK
- Orillia, ON
- Stratford, ON
- Val-d'Or, QC
- Cochrane, AB
- Whitehorse, YT
- Okotoks, AB
- Sydney, NS
- Courtenay, BC
- Dieppe, NB
- Fort Saskatchewan, AB
- Sept-Iles, QC
- Mount Pearl, NL
- Owen Sound, ON
- Cranbrook, BC
- Yellowknife, NT
- Corner Brook, NL
- Steinbach, MB
- Miramichi, NB
- Swift Current, SK
- Summerside, PE
- Winkler, MB
- Truro, NS
- Bathurst, NB
- Iqaluit, NU