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.

US PM2.5 (live full panel)Updated Jul 20, 2026OpenAQ (CC BY 4.0)

The national picture

69.7% of scored sensors failed at least one data-quality check.

Trust Score90–10075–8950–7425–490–24

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.

#ProviderMedianSensorsFailing
1AirGradient91.2143429.5%
2Clarity74.91612100.0%
3Love My Air Denver72.748100.0%
4AirNow44.9217670.3%
5CMU20.0172100.0%
6richmond beaco2n20.018100.0%
7N/A20.0366.7%
8Spartan20.01100.0%
9HabitatMap20.01100.0%

Every sensor

Look up any sensor

All 5465 scored sensors, worst score first. Search by location or provider.

LocationProviderTrustFailed checks
PM2.5 Mammoth LakesAirNow19.5stalenesscompletenessplausibility
Houston Park Place CAirNow20.0stalenesscompleteness
MMFRA1001AirNow20.0stalenesscompleteness
TooeleAirNow20.0stalenesscompleteness
Felton Cal-FireAirNow20.0stalenesscompleteness
MMFRA1001AirNow20.0stalenesscompleteness
Fort Wayne-Beacon StAirNow20.0stalenesscompleteness
San YsidroAirNow20.0stalenesscompleteness
ELDOSPGSAirNow20.0stalenesscompleteness
Hillcrest HSAirNow20.0stalenesscompleteness
ARNOLDAirNow20.0stalenesscompleteness
Morro BayAirNow20.0stalenesscompleteness
Thirty ThirdAirNow20.0stalenesscompleteness
RTAirNow20.0stalenesscompleteness
Las Vegas PaiuteAirNow20.0stalenesscompleteness
Cortina RancheriaAirNow20.0stalenesscompleteness
North ProvoAirNow20.0stalenesscompleteness
Homestead Fire StatiAirNow20.0stalenesscompleteness
Tonawanda IIAirNow20.0stalenesscompleteness
ShuttlesworthAirNow20.0stalenesscompleteness
Red Bluff - Walnut oAirNow20.0stalenesscompleteness
Sidney Oil FieldAirNow20.0stalenesscompleteness
Near RoadAirNow20.0stalenesscompleteness
Boston - North EndAirNow20.0stalenesscompleteness
Corpus Christi - NatAirNow20.0stalenesscompleteness
Corvallis - Circle BAirNow20.0stalenesscompleteness
BirneyAirNow20.0stalenesscompleteness
DiabloAirNow20.0stalenesscompleteness
HaverhillAirNow20.0stalenesscompleteness
ProvidenceAirNow20.0stalenesscompleteness
Broadus EBAMAirNow20.0stalenesscompleteness
LYNNAirNow20.0stalenesscompleteness
Billings St. Luke'sAirNow20.0stalenesscompleteness
SpringfieldAirNow20.0stalenesscompleteness
PITTSFIELDAirNow20.0stalenesscompleteness
WareAirNow20.0stalenesscompleteness
Grass ValleyAirNow20.0stalenesscompleteness
LEGGETTAirNow20.0stalenesscompleteness
Liberty Lake-E ValeyAirNow20.0stalenesscompleteness
Youngstown - Laird AAirNow20.0stalenesscompleteness
Douglas Red CrossAirNow20.0stalenesscompleteness
LAWRENCEAirNow20.0stalenesscompleteness
PS 19AirNow20.0stalenesscompleteness
Chester BAMAirNow20.0stalenesscompleteness
Truckee BAMAirNow20.0stalenesscompleteness
Quincy BAMAirNow20.0stalenesscompleteness
LincolnAirNow20.0stalenesscompleteness
Eisenhower ParkAirNow20.0stalenesscompleteness
Division StreetAirNow20.0stalenesscompleteness
Rio VistaAirNow20.0stalenesscompleteness

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.

03570

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.

CheckFails when…ThresholdWeight
Stalenessthe sensor has gone silentsilent > 24 h40%
Completenessthe feed is full of gaps< 90% of expected readings, trailing 30 d40%
Plausibilitya reading is physically impossiblemin < 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 →