Methodology
How atmos.today measures, calculates, and displays air quality across 217 cities, refreshed every 30 minutes.
Reviewed by Hayden Williams. Last reviewed 2026-05-01.
Data sources
Primary source is OpenAQ, which aggregates real ground-station readings from environmental agencies worldwide (US EPA AirNow, European Environment Agency, India CPCB, China CNEMC, and many more). Whenever a station within ~25 km of the city centroid has fresh data within the last hour, we use it directly for PM2.5, PM10, O3, NO2, SO2, and CO.
Fallback source is Open-Meteo Air Quality API, which fuses satellite observations with the Copernicus Atmosphere Monitoring Service (CAMS) global model. Open-Meteo provides full coverage anywhere in the world but at coarser resolution and with model uncertainty larger than ground sensors.
Both upstream sources are licensed under CC-BY-4.0, which we inherit and pass through to anyone reusing atmos.today data.
AQI calculation
The headline number is calculated using the US EPA AQI formula on PM2.5 (24-hour average where reported, instantaneous reading otherwise). PM2.5 is the most consistently reported and the most health-relevant pollutant globally; using a single international standard keeps comparisons across cities valid.
Category bands: Good (0-50), Moderate (51-100), Unhealthy for Sensitive Groups (101-150), Unhealthy (151-200), Very Unhealthy (201-300), Hazardous (301+).
Where ground PM2.5 is unavailable, we fall back to Open-Meteo’s regional AQI estimate. We label all readings with their source on each city page.
Update frequency
Pages revalidate every 30 minutes via Next.js incremental static regeneration. OpenAQ stations typically post hourly; some post every 5-15 minutes. Open-Meteo refreshes hourly. The exact reading timestamp is shown on every city page.
City selection
We track 217 cities: every national capital, the top global population centers, and expanded coverage of Asia-Pacific because that is where pollution exposure is highest and where ground-sensor density is improving fastest. The list is curated, not algorithmic. If your city is missing, email and we will add it.
Limitations (what to know before citing)
- One station per city. We use the closest reporting sensor, not a city-wide average. PM2.5 can vary 2-5x within the same city.
- Sensor downtime is real. When ground data goes stale we fall back to model data and label the source.
- Satellite + model AQI is less precise than reference-grade ground sensors. Use it for trend, not for compliance.
- Outdoor only. Indoor AQI is usually different and often matters more for daily personal exposure.
- Hourly cadence is not real-time. Sub-hour pollution events (a passing truck, a kitchen fire) will not show up.
Corrections + change log
We document material changes to data sources, AQI logic, or city coverage in the blog. If you spot a bad reading or an obvious mismatch with another tracker, email and we will look. Corrections will be noted publicly.
Independence
atmos.today is independently operated. No advertiser, sponsor, or partner has any influence on which cities we cover, which sources we use, or what is shown. Hosting and email costs are funded by GetNifty.
License + attribution
Source data licenses inherit from upstream (OpenAQ: CC-BY-4.0; Open-Meteo: CC-BY-4.0). Cite as: “atmos.today live air quality data via OpenAQ and Open-Meteo, accessed [date].”
Operator: Hayden Williams via GetNifty. Contact via the contact form. About atmos.today →