Data Sources
All data on this site comes from three public providers, mirrored via oaq.notf.in.
Providers
- CPCB
cpcb - Central Pollution Control Board, Government of India, and State Pollution Control Boards. The authoritative source for regulatory air quality monitoring in India. ~580 stations across 250+ cities. cpcb.nic.in
- Airnet
airnet - Center for Study of Science, Technology and Policy (CSTEP). Dense low-cost sensor network, primarily in Bengaluru. cstep.in
- Aurassure
aurassure - Aurassure University Clean Air Network. University-hosted low-cost sensors. aurassure.com
How this site gets the data
- A Cloudflare Worker performs the OAQ broker handshake once per day and caches the signature.
- Every hour, the Worker fetches
all_stations_latest.jsonfor each of the three providers in a single bulk request. - Stations are normalized, CPCB AQI is computed from raw pollutants, and a merged snapshot is written to Cloudflare R2.
- The static site is rebuilt from that snapshot — no client-side API calls, no API key in the browser.
Total upstream requests: ~80 per day. Well inside any reasonable rate limit.
Licensing
Upstream data is published as open air quality data, typically under CC BY 4.0. This site does not relicense the data; all original attribution and license terms apply to the upstream sources.
The site code is MIT-licensed.
Estimated health impact (AQLI)
Each station page shows an estimate of life expectancy lost due to air pollution, using the Air Quality Life Index (AQLI) formula from the University of Chicago EPIC group.
The formula is linear and easy to state:
years_of_life_lost = max(0, PM2.5 − baseline) × 0.098
where:
PM2.5is the long-term (annual average) concentration in µg/m³.baselineis the reference level — we show two: 5 µg/m³ (WHO 2021 guideline) and 40 µg/m³ (India NAAQS annual standard).0.098years per µg/m³ is derived from Ebenstein et al. 2017 PNAS, which found a 0.98-year reduction in life expectancy per +10 µg/m³ of sustained PM2.5 exposure.
Underlying studies
- Ebenstein A., Fan M., Greenstone M., He G., Zhou M. (2017). New evidence on the impact of sustained exposure to air pollution on life expectancy from China's Huai River Policy. PNAS 114(39): 10384–10389. doi.org/10.1073/pnas.1616784114
- Chen Y., Ebenstein A., Greenstone M., Li H. (2013). Evidence on the impact of sustained exposure to air pollution on life expectancy from China's Huai River policy. PNAS 110(32): 12936–12941. doi.org/10.1073/pnas.1300018110
- Greenstone M., Fan C.Q. (2018). Introducing the Air Quality Life Index. AQLI Annual Report, U Chicago EPIC. aqli.epic.uchicago.edu
- World Health Organization (2021). WHO Global Air Quality Guidelines: Particulate Matter (PM2.5 and PM10), Ozone, Nitrogen Dioxide, Sulfur Dioxide and Carbon Monoxide. Annual PM2.5 guideline: 5 µg/m³. who.int
Why AQI and Yrs lost can disagree
A common point of confusion: a station labeled "Very Poor" (AQI) can have a lower Yrs lost than one labeled "Poor". This is not an error — the two metrics measure different things:
- AQI is the maximum sub-index across seven pollutants (PM2.5, PM10, NO₂, SO₂, CO, O₃, NH₃). If ozone spikes, AQI goes "Very Poor" even when PM2.5 is mild. The AQI number represents "the worst pollutant here right now", not "the most life-shortening".
- Yrs lost (AQLI) is derived from PM2.5 only. The Huai River studies (Chen 2013, Ebenstein 2017) specifically quantified sustained PM2.5 exposure against mortality. They make no claim about other pollutants.
So a station can be "Poor" by AQI yet have a higher Yrs lost than a "Very Poor" one when PM2.5 dominates its emission profile (industrial / traffic / biomass-smoke cities vs. an ozone-heavy station). Both figures are meaningful; they answer different questions. If you care about "how unsafe is it to go for a walk right now?", look at AQI. If you care about "how much shorter are lives here on average?", look at Yrs lost.
Caveats we are honest about
- Long-term vs. live: AQLI assumes the concentration persists as the annual average. Our readings are hourly snapshots — treat the impact number as an order-of-magnitude indication, not a personal forecast.
- Linearity at very high concentrations: Ebenstein et al. acknowledge linearity is an approximation. Integrated exposure-response functions (IER) from the Global Burden of Disease (Burnett et al. 2018) are more sophisticated but harder to summarize in one number. AQLI prefers simplicity and is widely cited in policy contexts.
- Causality vs. correlation: the Huai River natural experiment gave unusually strong identification. It is still extrapolation from China to India.
- Population vs. individual: "life expectancy lost" is a population-level statistical construct, not a promise about any one person's lifespan.
Update cadence
- Snapshot refresh: every hour on the 5-minute mark.
- Station metadata (names, coordinates) refresh: daily at 02:00 IST.
- Upstream CPCB data itself updates ~hourly, so polling faster would return identical data.