PROJECTS / SENSOR TRUST
Can you trust the US air‑sensor network's data?
Every public PM2.5 sensor in the country, scored each day on one question: is its feed still reporting like it should? Not whether the air is clean. Whether the data is trustworthy.
The national picture
69.7% of scored sensors failed at least one data-quality check.
Scored 5465 sensors ·5465 mapped ·0 unmappable (no coordinates, still scored) ·71 excluded (71 Kentucky/Louisville, 0 by license)
Provider leaderboard
Which networks report the most trustworthy data?
Median Trust Score per data provider across their PM2.5 sensors, most trustworthy first. The share failing at least one check is the honest counterweight to a good median.
| # | Provider | Median | Sensors | Failing |
|---|---|---|---|---|
| 1 | AirGradient | 91.2 | 1434 | 29.5% |
| 2 | Clarity | 74.9 | 1612 | 100.0% |
| 3 | Love My Air Denver | 72.7 | 48 | 100.0% |
| 4 | AirNow | 44.9 | 2176 | 70.3% |
| 5 | CMU | 20.0 | 172 | 100.0% |
| 6 | richmond beaco2n | 20.0 | 18 | 100.0% |
| 7 | N/A | 20.0 | 3 | 66.7% |
| 8 | Spartan | 20.0 | 1 | 100.0% |
| 9 | HabitatMap | 20.0 | 1 | 100.0% |
Every sensor
Look up any sensor
All 5465 scored sensors, worst score first. Search by location or provider.
| Location | Provider | Trust | Failed checks |
|---|---|---|---|
| PM2.5 Mammoth Lakes | AirNow | 19.5 | stalenesscompletenessplausibility |
| Houston Park Place C | AirNow | 20.0 | stalenesscompleteness |
| MMFRA1001 | AirNow | 20.0 | stalenesscompleteness |
| Tooele | AirNow | 20.0 | stalenesscompleteness |
| Felton Cal-Fire | AirNow | 20.0 | stalenesscompleteness |
| MMFRA1001 | AirNow | 20.0 | stalenesscompleteness |
| Fort Wayne-Beacon St | AirNow | 20.0 | stalenesscompleteness |
| San Ysidro | AirNow | 20.0 | stalenesscompleteness |
| ELDOSPGS | AirNow | 20.0 | stalenesscompleteness |
| Hillcrest HS | AirNow | 20.0 | stalenesscompleteness |
| ARNOLD | AirNow | 20.0 | stalenesscompleteness |
| Morro Bay | AirNow | 20.0 | stalenesscompleteness |
| Thirty Third | AirNow | 20.0 | stalenesscompleteness |
| RT | AirNow | 20.0 | stalenesscompleteness |
| Las Vegas Paiute | AirNow | 20.0 | stalenesscompleteness |
| Cortina Rancheria | AirNow | 20.0 | stalenesscompleteness |
| North Provo | AirNow | 20.0 | stalenesscompleteness |
| Homestead Fire Stati | AirNow | 20.0 | stalenesscompleteness |
| Tonawanda II | AirNow | 20.0 | stalenesscompleteness |
| Shuttlesworth | AirNow | 20.0 | stalenesscompleteness |
| Red Bluff - Walnut o | AirNow | 20.0 | stalenesscompleteness |
| Sidney Oil Field | AirNow | 20.0 | stalenesscompleteness |
| Near Road | AirNow | 20.0 | stalenesscompleteness |
| Boston - North End | AirNow | 20.0 | stalenesscompleteness |
| Corpus Christi - Nat | AirNow | 20.0 | stalenesscompleteness |
| Corvallis - Circle B | AirNow | 20.0 | stalenesscompleteness |
| Birney | AirNow | 20.0 | stalenesscompleteness |
| Diablo | AirNow | 20.0 | stalenesscompleteness |
| Haverhill | AirNow | 20.0 | stalenesscompleteness |
| Providence | AirNow | 20.0 | stalenesscompleteness |
| Broadus EBAM | AirNow | 20.0 | stalenesscompleteness |
| LYNN | AirNow | 20.0 | stalenesscompleteness |
| Billings St. Luke's | AirNow | 20.0 | stalenesscompleteness |
| Springfield | AirNow | 20.0 | stalenesscompleteness |
| PITTSFIELD | AirNow | 20.0 | stalenesscompleteness |
| Ware | AirNow | 20.0 | stalenesscompleteness |
| Grass Valley | AirNow | 20.0 | stalenesscompleteness |
| LEGGETT | AirNow | 20.0 | stalenesscompleteness |
| Liberty Lake-E Valey | AirNow | 20.0 | stalenesscompleteness |
| Youngstown - Laird A | AirNow | 20.0 | stalenesscompleteness |
| Douglas Red Cross | AirNow | 20.0 | stalenesscompleteness |
| LAWRENCE | AirNow | 20.0 | stalenesscompleteness |
| PS 19 | AirNow | 20.0 | stalenesscompleteness |
| Chester BAM | AirNow | 20.0 | stalenesscompleteness |
| Truckee BAM | AirNow | 20.0 | stalenesscompleteness |
| Quincy BAM | AirNow | 20.0 | stalenesscompleteness |
| Lincoln | AirNow | 20.0 | stalenesscompleteness |
| Eisenhower Park | AirNow | 20.0 | stalenesscompleteness |
| Division Street | AirNow | 20.0 | stalenesscompleteness |
| Rio Vista | AirNow | 20.0 | stalenesscompleteness |
No sensor matches that search.
90-day trend
Is the network getting more or less reliable?
National share of sensors failing at least one check, one point per day. Per-provider medians are tracked alongside it in the pipeline.
Methodology
How each sensor is scored
Every sensor runs three pass/fail data-quality checks each day, read from OpenAQ's summary endpoints. The Trust Score is 100 minus graded penalties for the checks it degrades or fails — a sensor counts toward the national failure-rate the moment it fails even one.
| Check | Fails when… | Threshold | Weight |
|---|---|---|---|
| Staleness | the sensor has gone silent | silent > 24 h | 40% |
| Completeness | the feed is full of gaps | < 90% of expected readings, trailing 30 d | 40% |
| Plausibility | a reading is physically impossible | min < 0 or max > 1000 µg/m³ | 20% |
Why the checks are built this way
OpenAQ can ingest readings out of chronological order, so a feed can look briefly stale or gappy when the lag is upstream, not at the sensor. Two choices absorb that: completeness is measured over afixed trailing 30-day window rather than raw last-seen, so it reads the sensor's reporting health, not OpenAQ's ingestion lag; and staleness keeps a deliberately conservative 24-hourbar so ordinary lag never trips it. Windowed completeness and plausibility both come from one bounded per-sensor daily-aggregate call — no dense measurement pulls — so the whole panel scores on free rails.
The honest denominator
Today's run scored 5465 sensors:5465 plotted on the map and 0scored but unmappable (no coordinates from the provider — counted in every aggregate, just not drawn). A further 71were held out of scope before scoring — 71 Kentucky/Louisville and 0 whose provider license disallows redistribution — so they never touch the numbers above.
Panel: US PM2.5 sensors. Kentucky/Louisville sensors are held out as a conflict-of-interest precaution — keeping the author at arm's length from any local network. Two richer checks (flatline detection and cross-sensor consistency) are deferred to a later version.
Source data: OpenAQ (CC BY 4.0) + each sensor's upstream provider · derived JSON & open pipeline: github.com/dustincole-data/sensor-data-quality →