Research
PurpleAir vs AirNow: Why Their Numbers Don't Match
By Jason Curtis · 9 min read · Updated 2026-08-12

Open PurpleAir's map and AirNow's map at the same moment, for the same town, and you will often see two different numbers. Sometimes they are twenty points apart. Neither one is broken. They are measuring different things, in different places, over different spans of time, and the honest answer to "which is right?" is that it depends on what you are about to do.
Canairy reads both, so this is a question we had to answer in code rather than in the abstract. Here is what actually causes the gap, in rough order of how much it matters day to day.
The short answer
| PurpleAir | AirNow (EPA) | |
|---|---|---|
| What it is | Community-hosted low-cost sensors | Federal, state and tribal regulatory monitors |
| How it measures PM2.5 | Laser light scattering, mass inferred from particle counts | Gravimetric or beta attenuation, traceable to mass |
| Roughly how many | Tens of thousands worldwide | About 1,000 PM2.5 monitors in the US |
| Where they are | Wherever a person mounted one | Sites chosen to meet federal siting criteria |
| Real-time averaging | As short as 2 minutes; 10-minute averages are common | NowCast, a weighted blend of up to 12 hours |
| Cost each | A few hundred dollars | $30,000 to $100,000 |
| Official standing | Not regulatory; accepted by EPA for some non-regulatory uses | The legal record for air quality |
| Best at | Telling you about your street, right now | Telling you what the air genuinely is, defensibly |
They average over different amounts of time
This is the cause people are least likely to guess and the one most likely to explain a gap on an ordinary day.
AirNow's real-time number is not a raw reading. It is a NowCast: a weighted average of up to the last twelve hours of monitor data, weighted so recent hours count for more. When the air is stable it behaves like a long average. When the air is changing quickly, as during a wildfire, the weighting compresses and it behaves more like a three-hour average. EPA designed it that way so the public number does not flicker.
PurpleAir's feed, by contrast, offers averages as short as two minutes. Canairy reads the ten-minute average.
The consequence is predictable once you see it. When smoke arrives, a ten-minute average climbs almost immediately and the NowCast lags behind, still weighed down by the cleaner hours before. When smoke clears, the same thing happens in reverse: the sensor drops first, and the official number stays elevated for hours. Neither is wrong. One is answering "what is in the air right now" and the other is answering "what has the air been like".
If you are deciding whether to walk the dog in the next ten minutes, the short average is the more useful one. If you are asking whether today was a bad air day, the NowCast is.
They use different instruments
A PurpleAir contains a Plantower laser particle counter. Air passes through a small chamber, a laser scatters off whatever is in it, and a photodetector counts the flashes. Mass is then inferred from those counts.
A federal reference monitor either weighs particles collected on a filter or measures how much a beta ray is attenuated passing through them. Both are traceable to actual mass rather than inferred from it.
Inference is where the error lives. Optical counters are sensitive to how much water is clinging to each particle, so humidity inflates readings. They are also sensitive to what the particles are: wood smoke, road dust and urban aerosol scatter light differently, so a single conversion cannot be right for all of them. South Coast AQMD's sensor evaluation lab found raw PurpleAir over-reporting PM2.5 by roughly 40 percent at typical concentrations, drifting further in humid conditions.
That is a known, measured, correctable bias — not a reason to dismiss the data.
Corrections exist, and there is more than one
Because the bias is systematic, it can be modelled out. In 2021 Karoline Barkjohn and colleagues at EPA published a US-wide correction that uses both of a PurpleAir's internal channels plus its onboard humidity reading. EPA trusts it enough to put corrected PurpleAir data on the AirNow Fire and Smoke Map beside regulatory monitors during smoke events. A 2023 evaluation across 50 high-pollution events found corrected sensors tracking regulatory data with slopes near 1.0, the notable exception being extreme smoke above roughly 600 µg/m³, where the correction undershoots by about 20 percent.
This is the part worth understanding when you compare two apps: PurpleAir's own map, EPA's Fire and Smoke Map, and any given app may all be applying different corrections to the same physical sensor. A difference between two apps is often a difference in arithmetic, not in data.
There is more detail on this in Low-Cost Sensor Networks and Science.
They are in different places
The regulatory network was built to characterise regional air quality against a legal standard, not to describe your block. Sites must meet federal siting criteria, and there are only about a thousand PM2.5 monitors for the entire country. Most US counties have none.
So when an official number covers your city, it may be coming from a monitor twenty miles away, on the other side of a ridge, upwind of the thing bothering you.
PurpleAir sensors are wherever someone chose to hang one — which is both the strength and the weakness. The density is real: a mid-sized city may have dozens, and the spread between them on a smoky afternoon is genuine information about where the smoke actually is. But individual siting is unverified. A sensor under a porch roof, above a barbecue, or brought indoors for the winter will read differently from its neighbours for reasons that have nothing to do with the neighbourhood.
This is why Canairy shows every sensor behind a city's number with its distance and direction, rather than a single figure. On Yakima's page or Fresno's the spread between sensors is frequently wider than the gap between PurpleAir and AirNow.
One more source of confusion: the scale itself changed
Even given identical PM2.5, two apps can report different AQI values, because AQI is a conversion and the conversion table was revised.
Effective May 2024, EPA moved the top of the "Good" band from 12.0 µg/m³ down to 9.0, and the top of "Unhealthy" from 150.4 down to 125.4. The AQI 100 and 150 anchors stayed where they were, at 35.4 and 55.4.
Practically: air at 10 µg/m³ was AQI 42 and "Good" under the old table, and is AQI 53 and "Moderate" under the current one. Nothing about the air changed. If an app tells you the air is Good while another says Moderate at the same concentration, one of them may simply be running an older table. (Canairy was, until August 2026. It is on the current table now.)
Which should you trust?
Both, for different questions.
Trust the regulatory monitor when the answer needs to be defensible: whether your county is in attainment, whether today counts as an exceedance, whether a school district's policy was triggered, what the historical record says. It is the legal record and it is built to be one.
Trust the dense sensor network when the question is local and immediate: is the smoke here yet, is it worse at the school than at home, has it cleared enough to open the windows. No regulatory monitor can answer those, because there is not one on your street and its averaging window is longer than your decision.
The failure mode to avoid is treating a disagreement as evidence that one source is lying. A ten-minute sensor average reading higher than a twelve-hour NowCast during an arriving plume is not a contradiction. It is two instruments correctly reporting two different questions.
What Canairy does with both
Because this is the page where we ought to say plainly what we run:
- The number on a Canairy city page is the median of a handful of curated PurpleAir sensors near that city, with outliers set aside so one sensor brought indoors cannot move the citywide figure. We read PurpleAir's own corrected ten-minute average.
- In the app, a place you save resolves the same way. When no neighbourhood sensor is reporting, it falls back to the nearest EPA AirNow monitor. If neither is available, you get a modelled estimate, and it is labelled a regional estimate rather than presented as a sensor reading.
- PM2.5 becomes AQI using EPA's current breakpoint table.
- Canairy Watch, the version for schools and worksites, applies the EPA/Barkjohn correction rather than PurpleAir's, because a school acting on a number wants the one EPA's own map uses.
- Every sensor behind a reading is shown, with how far away it is. There is no composite "air score" and nothing is averaged in that we will not name.
We are not neutral about this — we build one of these things. But the recommendation genuinely is to use both, because that is what we do.
Sources
- AirNow Fire and Smoke Map — EPA's own map, showing corrected PurpleAir data beside regulatory monitors
- Using the Air Quality Index (AirNow) — EPA's description of the NowCast
- Development and application of a United States-wide correction for PM2.5 data collected with the PurpleAir sensor (Barkjohn et al., Atmospheric Measurement Techniques, 2021)
- An evaluation of the U.S. EPA's correction equation for PurpleAir sensor data in smoke, dust, and wintertime urban pollution events (Jaffe et al., Atmospheric Measurement Techniques, 2023)
- AQ-SPEC Sensor Evaluation Center, South Coast AQMD — side-by-side sensor evaluations against reference monitors
- EPA AQS AQI breakpoints code table — the current PM2.5 to AQI conversion
- Reconsideration of the National Ambient Air Quality Standards for Particulate Matter (Federal Register, March 6 2024) — the rule that revised the AQI breakpoints, effective May 6 2024
This article is for educational purposes only. Canairy does not provide medical advice, diagnosis, or treatment. Talk to a qualified health professional about your specific situation.