India Air Quality
Hourly pollution and weather for 15 Indian cities since August 2022, loaded daily into BigQuery and modelled with dbt. Every number below comes from the warehouse.
Which cities have the worst air?
Mean daily index, Aug 2022 to today
How often is the air bad?
Share of days in each CPCB category, PM index
Month by month
Monthly mean of the daily index
Compare years with care. The dashed lines mark two upgrades to the CAMS model (27 June 2023 and 12 November 2024), and both changed how dust is modelled. Coarse dust jumps after each one: Delhi's May PM10 averaged 90 µg/m³ in 2023, 173 in 2024 and 366 in 2025. Part of the rise in the pre-monsoon months in the north-west is the model changing, not the air.
Does Diwali show up?
Daily mean PM2.5 (µg/m³), 10 days either side of Diwali
Rain clears the air
Mean PM2.5 by the day's rainfall, all city-days
The daily cycle
Mean concentration by hour of day (IST), µg/m³
The seasons
Mean PM index by calendar month, all years; the stronger the colour, the worse the air
Latest complete day
All 15 cities that day, PM index
Every day since August 2022
Daily PM index by CPCB category, one row per month. The source model was upgraded in June 2023 and November 2024, so compare years with care.
The 10 worst days
Highest daily PM index, with that day's weather
Model and stations, month by month
Monthly mean over the days both have, µg/m³
Which cities does it get wrong?
Model mean vs stations mean over the same days; click a bar to see that city
Did the model upgrades change it?
What one run does
Steps of the daily GitHub Actions job, with numbers from the run that built this page
Recent runs
Time from start to finish of each completed run, oldest first; click a bar to open the run
dbt build
Slowest models
Warehouse tables
BigQuery metadata at export time. Sandbox tables expire after 60 days; every run pushes the date forward.