How we work
How AQI Is Calculated — DailyAQI Methodology
DailyAQI computes each city's Air Quality Index from official CPCB station data using India's national method: every pollutant's concentration becomes a sub-index, and the overall AQI is the highest sub-index — the dominant pollutant. We never publish an estimated or stale reading.
Every number on DailyAQI is produced the same transparent way, and this page explains exactly how — from the raw measurement at a government monitoring station to the single colour-coded AQI you read on a city page. If you have ever wondered how air quality is measured, how the Air Quality Index is calculated, or why we make certain choices about which pollutants to include, this is the full account.
Where the data comes from
For India, pollutant measurements come from the Central Pollution Control Board (CPCB) continuous ambient air-quality monitoring network, published through the Government of India's open-data portal (data.gov.in) under the Government Open Data License – India, which permits commercial reuse with attribution. For cities outside India, readings come from public monitoring stations aggregated by OpenAQ. In both cases the source is real, reference-grade or government-published monitoring — not a crowd-sourced estimate or a weather-model guess. Each city may be served by several stations, and the feed carries a timestamp for every reading so we can tell how fresh it is.
What a monitoring station measures
An air-quality monitoring station does not measure "pollution" as one thing; it measures the concentration of individual pollutants, each in its own units. The pollutants that feed India's National Air Quality Index are fine particulate matter (PM2.5), coarse particulate matter (PM10), nitrogen dioxide (NO₂), ground-level ozone (O₃), carbon monoxide (CO), sulphur dioxide (SO₂), ammonia (NH₃) and lead (Pb). Particulate matter is usually reported in micrograms per cubic metre; the gases are reported in their own conventional units. Understanding that the index is built from these separate streams is the key to understanding what the AQI number really represents.
From concentration to sub-index
The AQI exists to make those different pollutants comparable on one scale. For each pollutant, its measured concentration is converted into a "sub-index" — a number on the same 0–500 scale — using the CPCB breakpoint method. The breakpoints are concentration bands, each mapped to a range on the index, so a given concentration of PM2.5 translates to a particular sub-index, and a given concentration of NO₂ translates to another. This conversion is what lets you compare, say, a particulate problem in one city with a nitrogen-dioxide problem in another using a single figure.
The overall AQI is the worst sub-index
Here is the step that surprises people: the overall city AQI is not an average of the pollutants. It is the maximum of the individual sub-indices. Whichever pollutant is worst at that moment sets the headline number, and that pollutant is labelled the "dominant" or "prominent" pollutant. This is the official Indian method, and it is deliberately protective: the index reflects the single greatest risk in the air rather than diluting it against cleaner pollutants. In practice, across most of India, the dominant pollutant is PM2.5 or PM10, which is why particulate matter drives the story of Indian air quality.
Averaging periods
Pollutant sub-indices are based on standard averaging periods rather than a single instantaneous reading — 24-hour averages for particulates and some gases, shorter windows for others — because health effects relate to sustained exposure, not one spike. We use the most representative recent readings available from a city's stations to reflect current conditions while staying aligned with the way the index is meant to be computed.
What the sub-index method protects against
Taking the maximum sub-index rather than the average is not an arbitrary rule; it exists to protect the number's meaning. Imagine a city with dangerously high particulate matter but low readings for every other pollutant. If the index averaged them, the clean pollutants would drag the headline down and the number would understate a real health risk. By taking the worst sub-index, the AQI always reflects the single greatest hazard in the air at that moment, which is exactly what a health-warning index should do. The cost of this choice is that the AQI cannot, by design, tell you how many pollutants are elevated — only how bad the worst one is — which is why the dominant-pollutant label and the full pollutant breakdown on each city page matter. The headline answers "how dangerous is the air?"; the breakdown answers "what is making it so?"
This is also why two cities can share an identical AQI while having very different air. One might be at 180 because of fine particulate matter and another at 180 because of ozone on a hot, sunny day. The number is the same, the health message is broadly the same, but the cause — and therefore the useful response — can differ. Reading the AQI as "the level of the worst thing" rather than "the overall amount of pollution" is the mental model that keeps the index honest in your own head.
India (CPCB) versus the world (US EPA)
India's CPCB index and the United States EPA index are both 0–500 scales, but they use different breakpoints and different category names, so the same pollution can produce a different number on each. That is why DailyAQI keeps Indian cities on the CPCB scale and other countries on the US EPA scale, and labels which is which, rather than forcing a single system onto data it was not designed for. When you compare an Indian city with a foreign one, compare the categories, not just the digits.
Why we exclude carbon monoxide
One deliberate choice deserves a clear explanation. We currently exclude carbon monoxide (CO) from the Indian AQI we compute. The open-data feed reports CO in units that we cannot reliably reconcile with the CPCB milligram-per-cubic-metre breakpoints, and using them directly would push the CO sub-index to implausible values and corrupt the headline number. Because CO effectively never determines the Indian AQI — particulates almost always dominate — omitting it keeps our published figure aligned with CPCB's own values rather than introducing an error we cannot verify. We would rather leave out one pollutant we cannot trust in these units than publish a number we know to be wrong.
Our integrity rule: never invent a reading
The most important rule we hold is simple: we never invent, estimate or back-fill a reading and present it as a measurement. If a city has no fresh station data, its page says "data updating" instead of showing a stale or guessed number. We also apply basic sanity checks, discarding impossible or negative values before they reach a page. Every city report shows the timestamp and the number of stations behind the reading, so you can judge for yourself how current and well-supported it is. Our wider commitments — sourcing, corrections and independence — are set out in our editorial standards.
How often the numbers update
Indian readings are refreshed hourly from the CPCB feed, and world readings are refreshed from OpenAQ on a similar cadence. Air quality can change substantially within a few hours, especially on days with shifting wind or a temperature inversion, so an hourly refresh keeps the site useful for real decisions. When a city drops out of the feed for an hour, its page persists but shows "data updating" until fresh data returns.
Aggregating multiple stations in one city
Large cities are covered by more than one monitoring station, and those stations can disagree — an industrial district reads differently from a leafy suburb. When we present a single "city AQI," it reflects the most representative recent readings across a city's stations rather than a single sensor, so it captures the city's overall condition without being thrown off by one unusual location. At the same time, because that aggregate can hide real local differences, we publish locality-level pages for larger cities, letting you drill down from the city headline to the station nearest you. The city number is the summary; the locality pages are the detail.
Handling gaps and offline stations
Monitoring networks are not perfect: stations go offline for maintenance, feeds lag, and occasionally a city drops out of the data entirely for a while. Our rule in every one of these cases is the same — we never fill the gap with a guess. A city with no fresh reading shows "data updating" and keeps its page, so it does not vanish and reappear, but it never displays a stale value dressed up as current. The live state of the network, including how many cities are reporting at any moment, is shown transparently on our data-health page, because a site that asks you to trust its numbers should be open about when it does not have them.
Sanity checks and exclusions
Before any reading reaches a page, it passes basic validation. Impossible or negative concentrations are discarded rather than published, because a single corrupt value can badly distort an AQI that is defined by its worst pollutant. Our exclusion of carbon monoxide is part of the same discipline: rather than convert CO with a factor we cannot verify against the official breakpoints, we leave it out, accepting a small, transparent gap over a confident-looking error. The guiding principle is that it is better to show less and be right than to show more and be wrong.
Why our numbers may differ slightly from other sites
You may occasionally see a different AQI for the same city on another service, and there are legitimate reasons for that. Different sites pull from different stations, use different averaging windows, refresh at different times, and sometimes apply different conversion or inclusion rules — some, for example, include CO or blend in non-government sensors. None of this means one is "fake"; it reflects genuine choices about data and method. What we can promise is that our choices are documented here, that we use official government data computed with the official CPCB method, and that we never publish a figure we cannot stand behind. Our full commitments on sourcing, corrections and independence are set out in our editorial standards.
Limitations you should know
No air-quality figure is perfect, and honesty about that is part of the method. Readings can lag their source, stations occasionally report anomalies, and air quality varies over short distances, so the value for a city represents its monitoring stations rather than every street. The AQI itself is an intentional simplification — one number standing in for a complex mixture — and our figures are indicative. For medical decisions or official action, always consult CPCB and local health advisories directly; nothing here is a substitute for professional advice.
Key takeaways
- Data comes from CPCB (India, via data.gov.in) and OpenAQ (world) — real government and public monitoring, not estimates.
- Each pollutant's concentration becomes a sub-index; the overall AQI is the highest sub-index (the dominant pollutant).
- India uses the CPCB scale and the world the US EPA scale, so compare categories, not raw numbers.
- We exclude CO because its feed units cannot be reconciled with the breakpoints, and it never drives India's AQI.
- We never fabricate readings — "data updating" appears instead — and all figures are indicative, not official.
Frequently asked questions
How is the AQI calculated?
Each pollutant's concentration is converted to a sub-index using CPCB breakpoints, and the overall AQI is the highest of those sub-indices — the dominant pollutant.
Which pollutants does DailyAQI use?
PM2.5, PM10, NO₂, O₃, SO₂ and NH₃ on the CPCB scale. CO is excluded because the open feed's units cannot be reconciled with the official breakpoints, and CO never drives India's AQI.
Where does the air quality data come from?
CPCB continuous monitoring stations via data.gov.in (GODL-India) for India, and OpenAQ for world cities.
How often is the AQI updated?
Hourly. A city with no fresh reading shows "data updating" rather than a stale value.
Do you estimate or back-fill missing readings?
No. We never estimate or back-fill a reading — if there is no fresh station data, the page says "data updating".