India AQI Trends — Year-over-Year by City
Is India's air getting cleaner? The national median is improving (8.5 AQI/yr better). But the national average hides huge variation — some cities have genuinely turned a corner under NCAP, others have held steady or worsened. Search any of 152 CPCB-covered cities for its full year-by-year chart, linear regression, and written analysis.
Source: CPCB station-level daily readings, 2016–2024. Cities with fewer than three years of data are excluded from national aggregates.
National trend overview
National AQI trajectory
Unweighted mean across all 152 cities per year. Dashed red line is the linear regression fit.
Biggest movers
Top five cities by linear-regression slope in each direction. Bars show the full year-by-year AQI; colour follows the NAQI scale.
Improving fastest
Worsening fastest
Leaderboard churn · top 10 2016
Where the most polluted cities of 2016 rank in 2024. Green ↑ means the city climbed out of the top tier (lower rank-index now); red ↓ means it got worse relative to peers.
COVID-era lens · did the 2020 cleanup stick?
Median-city AQI across three reference years. Median resists outliers better than mean for this kind of comparison.
Verdict: Median city is still cleaner than before the pandemic.
NCAP context
India's National Clean Air Programme (launched 2019) originally targeted a 20–30% reduction in PM2.5 and PM10 by 2024 for 131 non-attainment cities, since updated to a 40% reduction by 2026against a 2017 baseline. The programme's official KPIs are measured in raw PM2.5 and PM10 µg/m³, not AQI.
The numbers on this page are CPCB AQI, which is a transform of the underlying pollutant concentrations and correlates with — but is not identical to — NCAP's PM-based scorecard. Treat our AQI trajectory as a proxy for NCAP progress, not a direct measurement of it. For the official NCAP dashboard, see moef.gov.in and cpcb.nic.in.
Featured cities
About this data
- Source: CPCB station-level daily AQI readings, 2016–2024 (605,654 records across 551 stations in 214 cities).
- Methodology: Daily AQI → annual means → ordinary-least-squares regression of AQI vs year. A city is classified as improvingif slope < −2 AQI/yr, worsening if slope > +2 AQI/yr, else stable.
- Coverage: Only cities with ≥3 years of CPCB observations are included. Cities without continuous monitoring are excluded from all aggregates on this page.
- National trajectory: unweighted mean across all contributing cities per year; heavily-monitored metros and smaller Tier-2 cities count equally.
Related analytics
All 213 cities with trend data(click to expand)
- Agartala
- Agra
- Ahmedabad
- Ahmednagar
- Aizawl
- Ajmer
- Akola
- Alwar
- Amarāvati
- Ambala
- Amravati
- Amritsar
- Anantapur
- Angul
- Araria
- Ariyalur
- Arrah
- Asansol
- Aurangabad
- Bāgalkot
- Bāghpat
- Balasore
- Bangalore
- Bareilly
- Baripāda
- Bathinda
- Begusarai
- Belgaum
- Bettiah
- Bhagalpur
- Bharatpur
- Bhilai
- Bhilwara
- Bhiwandi
- Bhiwāni
- Bhopal
- Bhubaneswar
- Bidar
- Bihar Sharif
- Bikaner
- Bilaspur
- Bulandshahr
- Būndi
- Buxar
- Chandigarh
- Chandrapur
- Chapra
- Charkhi Dādri
- Chennai
- Chittoor
- Coimbatore
- Cuddalore
- Cuttack
- Damoh
- Darbhanga
- Davanagere
- Dehradun
- Delhi
- Dewās
- Dhanbad
- Dhule
- Dindigul
- Dūngarpur
- Durgapur
- Faridabad
- Fatehābād
- Firozabad
- Gadag
- Gangtok
- Gaya
- Ghaziabad
- Gorakhpur
- Gummidipoondi
- Guwahati
- Gwalior
- Hajipur
- Haldia
- Hanumāngarh
- Hapur
- Hassan
- Hāveri
- Hisar
- Hosur
- Howrah
- Hubli-Dharwad
- Hyderabad
- Imphal
- Indore
- Jabalpur
- Jaipur
- Jaisalmer
- Jalandhar
- Jalgaon
- Jālna
- Jhansi
- Jīnd
- Jodhpur
- Kadapa
- Kaithal
- Kalaburagi
- Kalyān
- Kanchipuram
- Kannur
- Kanpur
- Karnal
- Karur
- Kārwār
- Kāshīpur
- Katihar
- Katni
- Khanna
- Kishanganj
- Kochi
- Kolār
- Kolhapur
- Kolkata
- Kollam
- Koppal
- Korba
- Kota
- Kozhikode
- Latur
- Lucknow
- Ludhiana
- Madikeri
- Madurai
- Mahād
- Maihar
- Malegaon
- Mangalore
- Meerut
- Mira-Bhayandar
- Moradabad
- Motihari
- Mumbai
- Munger
- Muzaffarnagar
- Muzaffarpur
- Mysuru
- Nagapattinam
- Nagpur
- Nalbāri
- Nanded
- Nārnaul
- Nashik
- Navi Mumbai
- Nayāgarh
- Noida
- Ooty
- Pāli
- Palwal
- Panchkula
- Panipat
- Parbhani
- Patiala
- Patna
- Perundurai
- Pimpri-Chinchwad
- Pithampur
- Pratapgarh
- Prayagraj
- Puducherry
- Pune
- Purnia
- Rāichūr
- Raipur
- Rajgir
- Rājsamand
- Ramanathapuram
- Ranipet
- Ratlam
- Rishīkesh
- Rohtak
- Rourkela
- Sagar
- Saharsa
- Salem
- Samastipur
- Sangli
- Sasaram
- Satna
- Sawāi Mādhopur
- Shillong
- Shivamogga
- Sikar
- Silchar
- Siliguri
- Sirohi
- Sirsa
- Siwan
- Solapur
- Sonipat
- Surat
- Tālcher
- Thane
- Thanjavur
- Thiruvananthapuram
- Thrissur
- Tiruchirappalli
- Tirumala
- Tirunelveli
- Tirupati
- Tonk
- Tumkur
- Udaipur
- Ujjain
- Ulhasnagar
- Varanasi
- Vellore
- Vijayawada
- Virudhunagar
- Visakhapatnam
- Vrindāvan