BC Municipal Surplus Trend Rankings
Trend direction of operating surplus per capita over 4 years.
154 municipalities ranked
Higher is better
Highest — Best Performing
Distribution
56
Top of Band
66
Mid-Band
32
Bottom of Band
About this Metric
High value means
Surpluses are improving year over year.
Low value means
Surpluses are declining, potentially signalling structural budget pressure.
For Councillors
A declining surplus trend is an early warning sign of structural deficits.
For Residents
Shrinking surpluses may lead to service cuts or tax increases.
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 | Fraser Lake | V | 942 | $5,612 | 3 of 192 | +3890% |
| 2 | Lytton | V | 228 | $3,362 | 4 of 192 | +2291% |
| 3 | Stewart | D | 515 | $1,246 | 12 of 192 | +786% |
| 4 | Port Clements | V | 352 | $625 | 33 of 192 | +344% |
| 5 | Princeton | T | 3,050 | $350 | 12 of 105 | +718% |
| 6 | Ucluelet | D | 2,452 | $349 | 13 of 105 | +716% |
| 7 | Merritt | C | 7,190 | $348 | 11 of 90 | +316% |
| 8 | Pouce Coupe | V | 813 | $337 | 50 of 192 | +140% |
| 9 | Grand Forks | C | 4,308 | $249 | 17 of 105 | +481% |
| 10 | Clinton | V | 707 | $232 | 64 of 192 | +65% |
| 11 | Osoyoos | T | 5,724 | $231 | 17 of 90 | +176% |
| 12 | Cache Creek | V | 1,053 | $221 | 66 of 192 | +57% |
| 13 | Enderby | C | 3,292 | $207 | 20 of 105 | +382% |
| 14 | Houston | D | 3,114 | $191 | 21 of 105 | +346% |
| 15 | Elkford | D | 3,030 | $186 | 22 of 105 | +333% |
| 16 | Radium Hot Springs | V | 1,489 | $170 | 75 of 192 | +21% |
| 17 | Williams Lake | C | 11,462 | $167 | 19 of 90 | +99% |
| 18 | Langley | C | 35,444 | $140 | 6 of 48 | +1334% |
| 19 | View Royal | T | 12,795 | $133 | 21 of 90 | +58% |
| 20 | Prince Rupert | C | 12,903 | $131 | 22 of 90 | +56% |
| 21 | Sparwood | D | 4,486 | $129 | 28 of 105 | +202% |
| 22 | Port Edward | D | 442 | $128 | 85 of 192 | -9% |
| 23 | West Vancouver | D | 47,929 | $127 | 7 of 48 | +1201% |
| 24 | Tumbler Ridge | D | 2,663 | $125 | 30 of 105 | +191% |
| 25 | 100 Mile House | D | 2,030 | $122 | 31 of 105 | +186% |
| 26 | White Rock | C | 25,057 | $113 | 8 of 48 | +1059% |
| 27 | Lake Cowichan | T | 3,757 | $113 | 33 of 105 | +165% |
| 28 | Revelstoke | C | 9,464 | $113 | 23 of 90 | +35% |
| 29 | Richmond | C | 239,584 | $111 | 1 of 10 | +585% |
| 30 | Belcarra | V | 702 | $108 | 88 of 192 | -24% |
| 31 | Tofino | D | 2,772 | $105 | 35 of 105 | +146% |
| 32 | Spallumcheen | D | 5,843 | $102 | 24 of 90 | +21% |
| 33 | Kimberley | C | 9,037 | $101 | 25 of 90 | +21% |
| 34 | Mackenzie | D | 3,442 | $95 | 37 of 105 | +122% |
| 35 | Gold River | V | 1,339 | $93 | 91 of 192 | -34% |
| 36 | Kent | D | 7,093 | $93 | 26 of 90 | +11% |
| 37 | Trail | C | 8,539 | $91 | 27 of 90 | +9% |
| 38 | Port Alice | V | 789 | $90 | 92 of 192 | -36% |
| 39 | Terrace | C | 13,648 | $83 | 29 of 90 | -0% |
| 40 | Dawson Creek | C | 13,635 | $78 | 31 of 90 | -7% |
| 41 | Bowen Island | D | 4,501 | $76 | 42 of 105 | +77% |
| 42 | Chase | V | 2,591 | $71 | 44 of 105 | +66% |
| 43 | Metchosin | D | 5,207 | $68 | 32 of 90 | -18% |
| 44 | Sun Peaks | V | 1,546 | $68 | 45 of 105 | +58% |
| 45 | Lumby | V | 2,257 | $67 | 46 of 105 | +57% |
| 46 | Colwood | C | 22,794 | $66 | 11 of 48 | +575% |
| 47 | Vancouver | C | 740,454 | $66 | 2 of 10 | +305% |
| 48 | Highlands | D | 2,753 | $64 | 47 of 105 | +50% |
| 49 | Smithers | T | 5,627 | $53 | 34 of 90 | -36% |
| 50 | Pitt Meadows | C | 20,892 | $51 | 13 of 48 | +426% |
| 51 | Telkwa | V | 1,544 | $49 | 48 of 105 | +14% |
| 52 | Fort St. John | C | 24,383 | $48 | 14 of 48 | +387% |
| 53 | Port Moody | C | 38,285 | $46 | 15 of 48 | +375% |
| 54 | Surrey | C | 703,531 | $46 | 3 of 10 | +185% |
| 55 | Maple Ridge | C | 105,925 | $45 | 4 of 22 | +212% |
| 56 | Oliver | T | 5,262 | $44 | 35 of 90 | -48% |
| 57 | Nanaimo | C | 111,845 | $40 | 5 of 22 | +182% |
| 58 | Comox | T | 15,884 | $36 | 16 of 48 | +264% |
| 59 | Central Saanich | D | 18,184 | $34 | 17 of 48 | +249% |
| 60 | Salmon Arm | C | 20,891 | $32 | 18 of 48 | +232% |
| 61 | Oak Bay | D | 18,626 | $31 | 19 of 48 | +213% |
| 62 | Burnaby | C | 299,682 | $30 | 5 of 10 | +85% |
| 63 | Parksville | C | 15,371 | $27 | 20 of 48 | +179% |
| 64 | Sechelt | D | 11,558 | $26 | 41 of 90 | -69% |
| 65 | Cumberland | V | 4,974 | $26 | 50 of 105 | -39% |
| 66 | Prince George | C | 85,944 | $26 | 6 of 22 | +78% |
| 67 | Anmore | V | 2,508 | $21 | 51 of 105 | -52% |
| 68 | Squamish | D | 28,578 | $19 | 22 of 48 | +90% |
| 69 | New Westminster | C | 92,124 | $18 | 7 of 22 | +28% |
| 70 | Campbell River | C | 38,300 | $18 | 23 of 48 | +82% |
| 71 | Chilliwack | C | 105,520 | $16 | 8 of 22 | +10% |
| 72 | Montrose | V | 1,072 | $15 | 98 of 192 | -89% |
| 73 | Lake Country | D | 17,637 | $15 | 24 of 48 | +54% |
| 74 | Ladysmith | T | 9,926 | $13 | 46 of 90 | -84% |
| 75 | Logan Lake | D | 2,337 | $13 | 53 of 105 | -69% |
| 76 | Mission | C | 47,280 | $12 | 25 of 48 | +21% |
| 77 | Cranbrook | C | 22,703 | $11 | 26 of 48 | +15% |
| 78 | Sidney | T | 13,445 | $11 | 48 of 90 | -87% |
| 79 | Fort St. James | D | 1,542 | $11 | 56 of 105 | -74% |
| 80 | Lions Bay | V | 1,375 | $11 | 101 of 192 | -92% |
| 81 | Delta | C | 124,670 | $11 | 9 of 22 | -24% |
| 82 | Quesnel | C | 10,253 | $10 | 51 of 90 | -88% |
| 83 | Salmo | V | 1,310 | $9 | 102 of 192 | -93% |
| 84 | North Vancouver | C | 66,624 | $8 | 10 of 22 | -45% |
| 85 | Langford | C | 59,664 | $7 | 11 of 22 | -48% |
| 86 | North Saanich | D | 12,986 | $7 | 52 of 90 | -92% |
| 87 | Saanich | D | 126,011 | $6 | 12 of 22 | -62% |
| 88 | Lantzville | D | 4,276 | $5 | 57 of 105 | -87% |
| 89 | Courtenay | C | 32,869 | $4 | 27 of 48 | -58% |
| 90 | Qualicum Beach | T | 9,640 | $2 | 54 of 90 | -97% |
| 91 | Port Coquitlam | C | 67,724 | $1 | 14 of 22 | -96% |
| 92 | Golden | T | 4,433 | -$1 | 59 of 105 | -103% |
| 93 | Summerland | D | 12,343 | -$2 | 55 of 90 | -103% |
| 94 | Warfield | V | 1,729 | -$2 | 60 of 105 | -105% |
| 95 | North Cowichan | D | 34,525 | -$3 | 29 of 48 | -134% |
| 96 | North Vancouver | D | 97,845 | -$4 | 15 of 22 | -125% |
| 97 | Harrison Hot Springs | V | 2,148 | -$8 | 61 of 105 | -119% |
| 98 | Creston | T | 5,976 | -$9 | 57 of 90 | -110% |
| 99 | Langley | D | 163,885 | -$9 | 6 of 10 | -155% |
| 100 | Port McNeill | T | 2,402 | -$9 | 62 of 105 | -121% |
| 101 | Penticton | C | 39,068 | -$11 | 31 of 48 | -217% |
| 102 | Hope | D | 7,183 | -$11 | 59 of 90 | -114% |
| 103 | Abbotsford | C | 175,358 | -$12 | 7 of 10 | -175% |
| 104 | Lillooet | D | 2,065 | -$13 | 64 of 105 | -131% |
| 105 | Armstrong | C | 5,643 | -$15 | 60 of 90 | -118% |
| 106 | Duncan | C | 5,745 | -$16 | 61 of 90 | -119% |
| 107 | Nakusp | V | 1,740 | -$16 | 65 of 105 | -138% |
| 108 | Fernie | C | 7,086 | -$16 | 62 of 90 | -120% |
| 109 | Castlegar | C | 9,465 | -$19 | 63 of 90 | -122% |
| 110 | Kelowna | C | 167,654 | -$20 | 8 of 10 | -220% |
| 111 | Burns Lake | V | 2,007 | -$24 | 69 of 105 | -157% |
| 112 | Invermere | D | 4,305 | -$25 | 70 of 105 | -158% |
| 113 | Sooke | D | 17,248 | -$28 | 35 of 48 | -385% |
| 114 | Coldstream | D | 11,380 | -$30 | 65 of 90 | -135% |
| 115 | Coquitlam | C | 173,599 | -$33 | 9 of 10 | -301% |
| 116 | Slocan | V | 488 | -$33 | 109 of 192 | -123% |
| 117 | McBride | V | 646 | -$35 | 110 of 192 | -125% |
| 118 | Kamloops | C | 108,793 | -$37 | 16 of 22 | -357% |
| 119 | Nelson | C | 12,126 | -$40 | 67 of 90 | -147% |
| 120 | Rossland | C | 4,355 | -$43 | 73 of 105 | -201% |
| 121 | Vernon | C | 49,527 | -$44 | 37 of 48 | -545% |
| 122 | Midway | V | 671 | -$48 | 114 of 192 | -134% |
| 123 | Vanderhoof | D | 4,545 | -$49 | 74 of 105 | -215% |
| 124 | Powell River | C | 14,947 | -$50 | 69 of 90 | -159% |
| 125 | Victoria | C | 103,888 | -$50 | 18 of 22 | -449% |
| 126 | West Kelowna | C | 40,274 | -$55 | 38 of 48 | -665% |
| 127 | Ashcroft | V | 1,744 | -$56 | 75 of 105 | -230% |
| 128 | Chetwynd | D | 2,484 | -$59 | 77 of 105 | -238% |
| 129 | Pemberton | V | 3,620 | -$70 | 79 of 105 | -264% |
| 130 | Daajing Giids | V | 999 | -$81 | 116 of 192 | -158% |
| 131 | Port Alberni | C | 19,671 | -$87 | 40 of 48 | -993% |
| 132 | Peachland | D | 6,302 | -$90 | 73 of 90 | -208% |
| 133 | Sicamous | D | 2,854 | -$91 | 82 of 105 | -311% |
| 134 | Fruitvale | V | 2,068 | -$93 | 83 of 105 | -317% |
| 135 | Sayward | V | 329 | -$93 | 119 of 192 | -166% |
| 136 | New Hazelton | D | 666 | -$94 | 120 of 192 | -167% |
| 137 | Masset | V | 914 | -$101 | 122 of 192 | -172% |
| 138 | Taylor | D | 1,415 | -$104 | 123 of 192 | -174% |
| 139 | Keremeos | V | 1,779 | -$107 | 84 of 105 | -349% |
| 140 | Clearwater | D | 2,500 | -$108 | 85 of 105 | -353% |
| 141 | Valemount | V | 1,082 | -$114 | 128 of 192 | -181% |
| 142 | Esquimalt | D | 19,512 | -$121 | 41 of 48 | -1339% |
| 143 | New Denver | V | 527 | -$122 | 131 of 192 | -187% |
| 144 | Port Hardy | D | 4,201 | -$123 | 86 of 105 | -387% |
| 145 | Gibsons | T | 5,090 | -$126 | 78 of 90 | -250% |
| 146 | Whistler | D | 15,090 | -$132 | 42 of 48 | -1452% |
| 147 | Alert Bay | V | 465 | -$144 | 135 of 192 | -202% |
| 148 | Hudson's Hope | D | 1,019 | -$148 | 137 of 192 | -205% |
| 149 | Kaslo | V | 1,141 | -$187 | 142 of 192 | -233% |
| 150 | Silverton | V | 196 | -$251 | 147 of 192 | -278% |
| 151 | Tahsis | V | 418 | -$403 | 161 of 192 | -387% |
| 152 | Granisle | V | 357 | -$528 | 167 of 192 | -475% |
| 153 | Canal Flats | V | 889 | -$744 | 175 of 192 | -629% |
| 154 | Zeballos | V | 136 | -$1,245 | 184 of 192 | -985% |
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 |