BC Municipal Infrastructure Health Rankings
Net book value of tangible capital assets as a share of historical cost (2024).
Highest — Best Performing
Distribution
62
Top of Band
45
Mid-Band
47
Bottom of Band
About this Metric
High value means
Assets retain significant value — infrastructure is relatively newer or well-maintained.
Low value means
A large share of asset value has been depreciated — infrastructure may be aging and require major reinvestment.
For Councillors
A low ratio signals an infrastructure deficit. Deferred maintenance today becomes emergency capital spending tomorrow.
For Residents
Aging infrastructure means more road repairs, water main breaks, and facility closures until reinvestment catches up.
Full Rankings
Click column headers to sort. Filter by population band.
Swipe table to see all columns
| Prov. # ▲ | Municipality | Type | Population | Value | Band Rank | vs Band Avg |
|---|---|---|---|---|---|---|
| 1 | Tofino | D | 2,772 | 0.86 | 1 of 41 | +40% |
| 2 | Langford | C | 59,664 | 0.83 | 1 of 13 | +22% |
| 3 | Lantzville | D | 4,276 | 0.81 | 2 of 41 | +32% |
| 4 | Port Moody | C | 38,285 | 0.80 | 1 of 26 | +22% |
| 5 | Anmore | V | 2,508 | 0.79 | 3 of 41 | +29% |
| 6 | Sun Peaks | V | 1,546 | 0.79 | 4 of 41 | +29% |
| 7 | Surrey | C | 703,531 | 0.79 | 1 of 8 | +14% |
| 8 | Lake Country | D | 17,637 | 0.77 | 2 of 26 | +18% |
| 9 | Bowen Island | D | 4,501 | 0.77 | 5 of 41 | +25% |
| 10 | Coquitlam | C | 173,599 | 0.76 | 2 of 8 | +11% |
| 11 | Port Coquitlam | C | 67,724 | 0.76 | 2 of 13 | +10% |
| 12 | Langley | C | 35,444 | 0.75 | 3 of 26 | +15% |
| 13 | Langley | D | 163,885 | 0.75 | 3 of 8 | +9% |
| 14 | Sicamous | D | 2,854 | 0.75 | 6 of 41 | +22% |
| 15 | Port Clements | V | 352 | 0.75 | 1 of 33 | +25% |
| 16 | Mission | C | 47,280 | 0.74 | 4 of 26 | +13% |
| 17 | Colwood | C | 22,794 | 0.74 | 5 of 26 | +13% |
| 18 | Lytton | V | 228 | 0.73 | 2 of 33 | +23% |
| 19 | New Denver | V | 527 | 0.73 | 3 of 33 | +22% |
| 20 | Burnaby | C | 299,682 | 0.73 | 4 of 8 | +6% |
| 21 | Victoria | C | 103,888 | 0.73 | 3 of 13 | +6% |
| 22 | Cumberland | V | 4,974 | 0.73 | 7 of 41 | +18% |
| 23 | Fort St. John | C | 24,383 | 0.72 | 6 of 26 | +11% |
| 24 | Sooke | D | 17,248 | 0.72 | 7 of 26 | +10% |
| 25 | Vernon | C | 49,527 | 0.72 | 8 of 26 | +10% |
| 26 | Maple Ridge | C | 105,925 | 0.72 | 4 of 13 | +5% |
| 27 | Merritt | C | 7,190 | 0.71 | 1 of 33 | +19% |
| 28 | Squamish | D | 28,578 | 0.71 | 9 of 26 | +8% |
| 29 | Sayward | V | 329 | 0.71 | 4 of 33 | +18% |
| 30 | Prince Rupert | C | 12,903 | 0.71 | 2 of 33 | +18% |
| 31 | Peachland | D | 6,302 | 0.70 | 3 of 33 | +18% |
| 32 | Belcarra | V | 702 | 0.70 | 5 of 33 | +17% |
| 33 | Parksville | C | 15,371 | 0.69 | 10 of 26 | +5% |
| 34 | Granisle | V | 357 | 0.69 | 6 of 33 | +15% |
| 35 | Whistler | D | 15,090 | 0.69 | 11 of 26 | +5% |
| 36 | New Westminster | C | 92,124 | 0.68 | 5 of 13 | -0% |
| 37 | North Vancouver | C | 66,624 | 0.68 | 6 of 13 | -0% |
| 38 | North Vancouver | D | 97,845 | 0.68 | 7 of 13 | -0% |
| 39 | Powell River | C | 14,947 | 0.68 | 4 of 33 | +14% |
| 40 | Harrison Hot Springs | V | 2,148 | 0.68 | 8 of 41 | +11% |
| 41 | Lions Bay | V | 1,375 | 0.68 | 7 of 33 | +14% |
| 42 | Slocan | V | 488 | 0.68 | 8 of 33 | +13% |
| 43 | Lake Cowichan | T | 3,757 | 0.68 | 9 of 41 | +10% |
| 44 | Oliver | T | 5,262 | 0.68 | 5 of 33 | +13% |
| 45 | Burns Lake | V | 2,007 | 0.67 | 10 of 41 | +10% |
| 46 | Sechelt | D | 11,558 | 0.67 | 6 of 33 | +13% |
| 47 | Kamloops | C | 108,793 | 0.67 | 8 of 13 | -2% |
| 48 | Grand Forks | C | 4,308 | 0.67 | 11 of 41 | +9% |
| 49 | Osoyoos | T | 5,724 | 0.67 | 7 of 33 | +12% |
| 50 | Gibsons | T | 5,090 | 0.67 | 8 of 33 | +12% |
| 51 | Sidney | T | 13,445 | 0.67 | 9 of 33 | +12% |
| 52 | Pemberton | V | 3,620 | 0.67 | 12 of 41 | +8% |
| 53 | View Royal | T | 12,795 | 0.67 | 10 of 33 | +11% |
| 54 | Saanich | D | 126,011 | 0.67 | 9 of 13 | -3% |
| 55 | Richmond | C | 239,584 | 0.66 | 5 of 8 | -4% |
| 56 | Pitt Meadows | C | 20,892 | 0.66 | 12 of 26 | +1% |
| 57 | Ucluelet | D | 2,452 | 0.66 | 13 of 41 | +7% |
| 58 | Coldstream | D | 11,380 | 0.65 | 11 of 33 | +9% |
| 59 | Radium Hot Springs | V | 1,489 | 0.65 | 9 of 33 | +8% |
| 60 | Vancouver | C | 740,454 | 0.65 | 6 of 8 | -6% |
| 61 | Fraser Lake | V | 942 | 0.65 | 10 of 33 | +8% |
| 62 | Princeton | T | 3,050 | 0.65 | 14 of 41 | +5% |
| 63 | Sparwood | D | 4,486 | 0.65 | 15 of 41 | +5% |
| 64 | Chilliwack | C | 105,520 | 0.64 | 10 of 13 | -6% |
| 65 | Delta | C | 124,670 | 0.64 | 11 of 13 | -6% |
| 66 | Invermere | D | 4,305 | 0.64 | 16 of 41 | +5% |
| 67 | Valemount | V | 1,082 | 0.64 | 11 of 33 | +6% |
| 68 | Daajing Giids | V | 999 | 0.64 | 12 of 33 | +6% |
| 69 | Highlands | D | 2,753 | 0.64 | 17 of 41 | +3% |
| 70 | White Rock | C | 25,057 | 0.64 | 13 of 26 | -3% |
| 71 | Chetwynd | D | 2,484 | 0.64 | 18 of 41 | +3% |
| 72 | Summerland | D | 12,343 | 0.64 | 12 of 33 | +6% |
| 73 | Keremeos | V | 1,779 | 0.63 | 19 of 41 | +3% |
| 74 | Ladysmith | T | 9,926 | 0.63 | 13 of 33 | +6% |
| 75 | West Vancouver | D | 47,929 | 0.63 | 14 of 26 | -3% |
| 76 | West Kelowna | C | 40,274 | 0.63 | 15 of 26 | -4% |
| 77 | Oak Bay | D | 18,626 | 0.63 | 16 of 26 | -4% |
| 78 | Fort St. James | D | 1,542 | 0.62 | 20 of 41 | +1% |
| 79 | Revelstoke | C | 9,464 | 0.62 | 14 of 33 | +4% |
| 80 | Armstrong | C | 5,643 | 0.62 | 15 of 33 | +4% |
| 81 | Comox | T | 15,884 | 0.62 | 17 of 26 | -6% |
| 82 | North Saanich | D | 12,986 | 0.62 | 16 of 33 | +3% |
| 83 | Zeballos | V | 136 | 0.61 | 13 of 33 | +2% |
| 84 | Fruitvale | V | 2,068 | 0.61 | 21 of 41 | -0% |
| 85 | Nanaimo | C | 111,845 | 0.61 | 12 of 13 | -11% |
| 86 | Montrose | V | 1,072 | 0.61 | 14 of 33 | +2% |
| 87 | North Cowichan | D | 34,525 | 0.61 | 18 of 26 | -6% |
| 88 | Rossland | C | 4,355 | 0.61 | 22 of 41 | -0% |
| 89 | Fernie | C | 7,086 | 0.61 | 17 of 33 | +2% |
| 90 | Qualicum Beach | T | 9,640 | 0.61 | 18 of 33 | +2% |
| 91 | Nelson | C | 12,126 | 0.61 | 19 of 33 | +2% |
| 92 | Duncan | C | 5,745 | 0.61 | 20 of 33 | +2% |
| 93 | Canal Flats | V | 889 | 0.61 | 15 of 33 | +1% |
| 94 | Kent | D | 7,093 | 0.61 | 21 of 33 | +1% |
| 95 | Courtenay | C | 32,869 | 0.60 | 19 of 26 | -8% |
| 96 | Chase | V | 2,591 | 0.60 | 23 of 41 | -2% |
| 97 | Cranbrook | C | 22,703 | 0.60 | 20 of 26 | -8% |
| 98 | Elkford | D | 3,030 | 0.60 | 24 of 41 | -2% |
| 99 | Telkwa | V | 1,544 | 0.60 | 25 of 41 | -2% |
| 100 | Clearwater | D | 2,500 | 0.60 | 26 of 41 | -2% |
| 101 | Mackenzie | D | 3,442 | 0.60 | 27 of 41 | -2% |
| 102 | Salmon Arm | C | 20,891 | 0.60 | 21 of 26 | -9% |
| 103 | Kelowna | C | 167,654 | 0.59 | 7 of 8 | -14% |
| 104 | Dawson Creek | C | 13,635 | 0.59 | 22 of 33 | -1% |
| 105 | Lumby | V | 2,257 | 0.59 | 28 of 41 | -4% |
| 106 | Abbotsford | C | 175,358 | 0.59 | 8 of 8 | -15% |
| 107 | Masset | V | 914 | 0.59 | 16 of 33 | -2% |
| 108 | Quesnel | C | 10,253 | 0.59 | 23 of 33 | -2% |
| 109 | Pouce Coupe | V | 813 | 0.58 | 17 of 33 | -3% |
| 110 | Hudson's Hope | D | 1,019 | 0.58 | 18 of 33 | -3% |
| 111 | 100 Mile House | D | 2,030 | 0.58 | 29 of 41 | -6% |
| 112 | Prince George | C | 85,944 | 0.58 | 13 of 13 | -16% |
| 113 | Port Alberni | C | 19,671 | 0.57 | 22 of 26 | -12% |
| 114 | Midway | V | 671 | 0.57 | 19 of 33 | -5% |
| 115 | Esquimalt | D | 19,512 | 0.57 | 23 of 26 | -13% |
| 116 | Kimberley | C | 9,037 | 0.57 | 24 of 33 | -5% |
| 117 | Port Edward | D | 442 | 0.57 | 20 of 33 | -6% |
| 118 | Stewart | D | 515 | 0.57 | 21 of 33 | -6% |
| 119 | New Hazelton | D | 666 | 0.56 | 22 of 33 | -6% |
| 120 | Silverton | V | 196 | 0.56 | 23 of 33 | -6% |
| 121 | Cache Creek | V | 1,053 | 0.56 | 24 of 33 | -7% |
| 122 | Taylor | D | 1,415 | 0.55 | 25 of 33 | -8% |
| 123 | Clinton | V | 707 | 0.55 | 26 of 33 | -8% |
| 124 | Campbell River | C | 38,300 | 0.55 | 24 of 26 | -16% |
| 125 | Salmo | V | 1,310 | 0.54 | 27 of 33 | -9% |
| 126 | Creston | T | 5,976 | 0.54 | 25 of 33 | -10% |
| 127 | Nakusp | V | 1,740 | 0.54 | 30 of 41 | -12% |
| 128 | Golden | T | 4,433 | 0.53 | 31 of 41 | -14% |
| 129 | Central Saanich | D | 18,184 | 0.53 | 25 of 26 | -20% |
| 130 | Vanderhoof | D | 4,545 | 0.53 | 32 of 41 | -15% |
| 131 | Ashcroft | V | 1,744 | 0.52 | 33 of 41 | -15% |
| 132 | Trail | C | 8,539 | 0.52 | 26 of 33 | -13% |
| 133 | Penticton | C | 39,068 | 0.52 | 26 of 26 | -21% |
| 134 | Terrace | C | 13,648 | 0.52 | 27 of 33 | -14% |
| 135 | Lillooet | D | 2,065 | 0.51 | 34 of 41 | -16% |
| 136 | Logan Lake | D | 2,337 | 0.51 | 35 of 41 | -17% |
| 137 | McBride | V | 646 | 0.51 | 28 of 33 | -15% |
| 138 | Warfield | V | 1,729 | 0.51 | 36 of 41 | -17% |
| 139 | Williams Lake | C | 11,462 | 0.51 | 28 of 33 | -15% |
| 140 | Kaslo | V | 1,141 | 0.50 | 29 of 33 | -16% |
| 141 | Enderby | C | 3,292 | 0.50 | 37 of 41 | -19% |
| 142 | Smithers | T | 5,627 | 0.49 | 29 of 33 | -18% |
| 143 | Tahsis | V | 418 | 0.49 | 30 of 33 | -19% |
| 144 | Castlegar | C | 9,465 | 0.49 | 30 of 33 | -19% |
| 145 | Gold River | V | 1,339 | 0.49 | 31 of 33 | -19% |
| 146 | Port Alice | V | 789 | 0.47 | 32 of 33 | -21% |
| 147 | Alert Bay | V | 465 | 0.47 | 33 of 33 | -22% |
| 148 | Houston | D | 3,114 | 0.47 | 38 of 41 | -24% |
| 149 | Hope | D | 7,183 | 0.46 | 31 of 33 | -23% |
| 150 | Port Hardy | D | 4,201 | 0.45 | 39 of 41 | -27% |
| 151 | Tumbler Ridge | D | 2,663 | 0.43 | 40 of 41 | -30% |
| 152 | Metchosin | D | 5,207 | 0.41 | 32 of 33 | -31% |
| 153 | Spallumcheen | D | 5,843 | 0.41 | 33 of 33 | -31% |
| 154 | Port McNeill | T | 2,402 | 0.32 | 41 of 41 | -48% |
Municipalities with Incomplete Data
The following 7 municipalities are excluded from this ranking due to missing or insufficient data points.
| Municipality | Type | Reason for Exclusion |
|---|---|---|
| Barriere | D | Stale or missing fiscal reporting |
| Greenwood | C | Stale or missing fiscal reporting |
| Hazelton | V | Stale or missing fiscal reporting |
| Kitimat | D | Stale or missing fiscal reporting |
| Northern Rockies | D | Insufficient historical data points |
| shíshálh Nation Government District | D | Insufficient historical data points |
| Wells | D | Stale or missing fiscal reporting |