British Columbia · summer air quality · 57 communities · 2018–2026

Where in BC can you actually breathe during wildfire season?

We ranked 57 BC communities on nine summers of real air quality measurements. The gap is enormous: Prince George averages almost 13 smoky days a summer. Prince Rupert has never recorded a single one. Where a town lands comes down to one thing — whether the air reaching it came off the ocean or out of a burning interior.

A “smoky day” means a full-day average of 35.5 µg/m³ or more of fine particulate — the level where health authorities start telling kids, seniors and anyone with asthma or heart trouble to take it easy. A clear summer day in BC runs about 3 to 6.

Cleanest
Prince Rupert
No smoky day on record. 98% of its summer days rate “good”
Smokiest
Prince George
12.6 smoky days a summer — nearly two weeks of bad air
The coastal effect
0.2 vs 9.9
Smoky days a summer: the outer coast against the northeast corner
Surprise finding
Coast, not latitude
Smithers and Houston sit far north, and still beat every city on Vancouver Island

The ranking

Every monitored community in BC, cleanest to smokiest

One bar per community: the average number of smoky days it gets each summer. Read top to bottom and the province sorts itself almost perfectly by geography — the coast and the islands fill the clean end, the interior valleys the smoky end. The real surprise is Metro Vancouver. For all its traffic and its two and a half million people, it sits comfortably in the clean half. On smoke, an ocean beats a small population every time.

Hollow bars marked with an asterisk are estimates. Those towns — Nelson, Revelstoke, Fernie, Creston and the rest — have no government monitor, so their figures come from PurpleAir sensors residents put up themselves, over 2023–2025 rather than the full nine summers. Their rough tier is trustworthy; their exact position is not. There's more on why further down.

Pick an air zone below to narrow the ranking, the map and the year-by-year grid to that corner of the province. Press Escape, or choose All of BC, to bring everything back.

Smoky days per summer — days averaging 35.5 µg/m³ or more

Swipe the chart sideways →

Table view

The map

Smoke is almost entirely a question of distance from salt water

The same numbers, placed on the map. BC's smoke is made in the dry interior and then trapped by mountain valleys, while the Pacific keeps pushing clean air onto the coast until the ranges stop it. What you can see below is where those two forces meet.

Average smoky days per summer, by monitor location

Swipe the map sideways →

Circle size also scales with the value, so the pattern survives in greyscale and for colour-blind readers. Tap or hover any community for its numbers.

Timing

The clean places aren't just cleaner — their season is shorter

Every summer on record, averaged day by day. The interior climbs steeply from mid-July and stays high into September. The coast barely has a smoke season at all — its line is nearly flat. At the height of it, in mid-August, the interior averages more than three times the coast. The clean places aren't just better on the bad days; they get far fewer of them.

Average daily PM2.5 by calendar day, by broad region

Swipe the chart sideways →

This chart groups the province into three broad bands of air, so it doesn't respond to the air-zone picker above.

Year by year

Bad summers are province-wide, but they don't land evenly

Each row is a community, each column a summer, shaded by how many smoky days it got. The darker vertical bands are the province-wide fire years — 2018, 2021 and 2023 — when almost everywhere took a hit at once. If you're weighing up where to live, the rows worth finding are the ones that stay pale even in those columns.

Smoky days per summer, by community and year

Swipe the chart sideways →

Blank cells are summers with too little data to count.

The gaps

What about towns with no government monitor?

Most BC communities have no air quality station at all — Nelson, Revelstoke, Fernie, Osoyoos and dozens more. The only readings those towns have come from PurpleAir sensors that residents bought and mounted on their own houses. Handled carefully, they still answer the question.

Carefully is doing a lot of work in that sentence. These sensors don't read on the same scale as government instruments. Four towns have both, and in the three where the sensors actually track the monitor, citizen readings run from about the same as the official number to nearly double it (0.95× to 1.86×) — so a town could sit a few places higher or lower than its asterisk suggests. In the fourth, Victoria, the surviving sensor barely correlates with the monitor at all — see the caution further down. Kamloops and Kelowna appear below in grey because we can check them against a real monitor; they show how far the drift goes.

Every citizen-sensor town, and how far the scale can drift

No government monitor Has one — shown to check the scale

Swipe the chart sideways →

Table view

Each town is the median of up to three sensors across the summers of 2023, 2024 and 2025. Using several sensors matters: a single one can fail silently for months, and often does.

How this was measured

Everything here is measured, not modelled. Two sources, kept deliberately separate because they are not on the same scale.

  • The government network. Every hourly PM2.5 reading in the BC Ministry of Environment's archive, June through September, 2018 to 2026 — about 65,000 station-days across 83 stations. A day counts only if the monitor reported at least 18 valid hours; a summer counts only with 100 or more valid days; a community is ranked only with five or more complete summers. That leaves 61 stations across 46 communities — with the 11 estimated towns below, 57 communities appear in the ranking.
  • The 11 asterisked towns have no monitor at all, so they come from citizen sensors over 2023–2025 and are marked as estimates everywhere they appear — hollow bars in the ranking, hollow rings on the map, and left out of the year-by-year grid entirely, since there isn't enough history to fill it.
  • Where a town has several monitors, the middle one represents it, so a single station beside a mill or a smelter doesn't get to define a whole community.
  • “Smoky” means a 24-hour average of 35.5 µg/m³ or more — the US EPA threshold where the air quality index passes 101 and advisories begin for children, seniors and anyone with asthma or heart conditions. A clear summer day in BC runs about 3–6 µg/m³.
  • Citizen sensors are PurpleAir units, corrected with the standard US EPA wood smoke adjustment, taken as the median of up to three sensors per town over 2023–2025.

A caution about cheap sensors. Of the 39 PurpleAir units examined for this piece, eight had to be thrown out — they reported 24-hour averages between 3,600 and 7,200 µg/m³, which is not physically possible in outdoor air. For comparison, the worst day the government network has recorded in nine summers is 851 µg/m³. All three sensors in Prince George and two of three in Victoria failed this test, as did the only sensor in Nakusp. Anyone reading a single PurpleAir dot off the map should know how often they simply break.

Coverage is uneven. Prince Rupert's record misses 2018 and 2023, two of the three big fire years, so its perfect score is flattered — neighbouring Kitimat, which covers all nine summers, still manages 0.4 smoky days a summer, so the finding holds. Stations run by industry sit near industrial sources by design and may read higher than the town around them. 2026 is complete only through August 7. Everything covers June 1 to September 30 only, so this says nothing about winter inversions or wood stove season, which reshuffle the interior rankings considerably.

Who made this

Need a dashboard, or software to help run your business?

I'm Ryan — a software developer in Nelson. I build dashboards, internal tools and automation that take the repetitive work off a team's desk: the same pipeline behind this report, pointed at your numbers. If something in your business still runs on spreadsheets and guesswork, I'd like to hear about it.

hello@ryandury.com