JanVayu Blog · Product

Ninety-seven cities, ward by ward, and the one we had to go somewhere else for

Published: 7 August 2026 | Updated: 7 August 2026 | Author: Team JanVayu | Reading time: 7 min

This post has been overtaken twice in one day. The atlas is now 142 cities and 9,015 wards, and every state capital in the Northeast and most others are on it. The follow-up, Every Capital, and the Directory We Never Read, explains how, and why the same mistake caught us three times.


If you live in an Indian city, the number you see on the news is a city average. One figure stands in for a few million people and hides what you want to know: whether your neighbourhood breathes worse than the one across the flyover.

Eight days ago our ward map covered 39 cities. Today it covers 97 cities and 6,936 wards. Open How Polluted Is Your Ward?, pick your city, and press Air, yearly.

What was holding us back

It was not the air data. Since Thursday every one of India's 584,615 villages carries an annual PM2.5 estimate from satellite, and the same grid covers every city block in the country.

The constraint was a list. Somewhere in our code sat a hand-written list of 39 city names, the ones a person had got round to adding. The source it read from, the Swachh Bharat Mission ward release mirrored by the volunteer project indianopenmaps.com, holds about 70,400 ward polygons. We had been drawing from a lake through a straw.

Mining it properly added 50 cities. It also turned up a bug worth confessing. Swachh Bharat files a single city under several spellings of its own state: "Andhra Pradhesh" alongside "Andhra Pradesh", "Telanagana" alongside "Telangana". Our matcher was quietly dropping everything filed under the misspelling. Vijayawada had imported 1 ward instead of 64. It looked fine on screen, and it had been wrong for a week.

What 6,936 wards show

4,597 of them (66.3%) are above India's own annual limit of 40 µg/m³. That is close to the village figure (63.6%), a small sign that the two datasets behave consistently. Not one ward in India meets the WHO annual guideline of 5.

The national percentage hides three things.

The gap between cities is enormous. Delhi's cleanest ward, Khera at 63.5 µg/m³, is dirtier than the dirtiest ward in 67 of the other 96 cities. The worst ward we found is Vaishali III in Ghaziabad, at 99.3. The cleanest is Chathinakulam in Kollam, at 21.6, still more than four times the WHO guideline.

Twenty-five cities have no ward over 40 at all. They are almost all southern and coastal: Thrissur, Kollam, Thiruvananthapuram, Kochi, Mysuru, Mangaluru, Coimbatore, Chennai, Bengaluru, Visakhapatnam, Vijayawada, plus Gangtok and Panaji. Delhi-in-November coverage never shows this part of the picture.

Inside a single city the spread can be a third of the total. Delhi runs 63.5 to 98.7 across its 290 ward polygons (an older delimitation; the unified Municipal Corporation of Delhi has had 250 wards since 2022). That is a 35-point gap between neighbourhoods in the same city, under the same policy. Ghaziabad spans 71.7 to 99.3. This spread is the whole case for mapping wards instead of cities.

Guwahati, and why it needed its own door

Swachh Bharat is a national release, but not a complete one. It carries wards for only seven West Bengal municipalities, 67 small Assam towns but not Guwahati, and none for Manipur, Mizoram or Tripura. (The release notes list West Bengal, Tripura, Mizoram and Manipur as missing; the counts are ours, from the file as it stood on 2 October 2026.)

Guwahati is Assam's largest city and it had no ward map. So we went looking, and found the 2022 Guwahati Municipal Corporation delimitation published by the OpenCity / Oorvani Foundation and republished by BharatLas under the Open Database Licence. Sixty wards are now on the map.

Guwahati's spread is narrow, 43.7 to 54.5 µg/m³, but all 60 of its wards sit above India's limit of 40. This layer has two limits. It is an annual average, so it says nothing about a bad week in November. And at roughly one kilometre it smooths very local sources: a single kiln or a busy junction will not appear in it.

For West Bengal we came up empty, or so this post said when it went up this morning. The boundaries turned out to exist, and are now in the atlas.

Update, later on 7 August. Bengal's wards are open, under a route we had not checked. We checked OpenStreetMap (only 38 ward-level administrative relations in the whole state, and they turn out to be villages, not municipal wards) and DataMeet (31 cities, Kolkata the only Bengal one), found nothing, and published the conclusion. We never looked at the other files in the GitHub release we download from on every run. A West Bengal AMRUT ward file sits in the same folder as the Swachh Bharat wards we had been reading for weeks: 1,633 ward polygons across 52 West Bengal urban local bodies, from the state's AMRUT GIS master-plan programme.

Seven Bengal cities are now on the map: Asansol (106 wards), Howrah (50), Durgapur (43), Bidhannagar (42), Kharagpur (35), Bardhaman (35) and Haldia (29). That is 340 wards, taking the atlas to 97 cities and 6,936 wards.

They change the Bengal story. Durgapur averages 63.0 µg/m³ a year and Asansol 60.9, both well above Kolkata's 49.1. The industrial belt, not the metro, has the state's worst air, and that was invisible while Kolkata was the only Bengal city we could draw. Siliguri is still missing for a real reason: its upload contains 4 wards out of 47.

We are leaving the wrong paragraph above in place instead of quietly deleting it, because the mistake is the useful part. "No open data exists" is a claim that needs the same sourcing as any number, and we did not give it that. We had looked at three outside sources and none of our own.

Four sources, four licences, one credit line

Adding Guwahati created a problem we should have fixed earlier. Our ward boundaries now come from four different upstreams under four different licences: Swachh Bharat via indianopenmaps (74 cities), DataMeet under CC BY (13), OpenCity/Oorvani under ODbL (Guwahati), and two city projects. Those counts add up to 90, the atlas as it stood before the Bengal files described above; the seven Bengal cities come from the AMRUT file. The licences carry different obligations, and one generic credit would have been easy and wrong.

So every ward file now records the source it came from, and the map prints that credit underneath for whichever city you are looking at. Doing this showed that 14 cities, including Delhi, Mumbai and Chennai, had been shipping with no source recorded at all. They have one now.

Where this still falls short

All five layers (live air, annual air, heat, green cover and built-up) now cover all 97 cities. The satellite processing that had only been run for 39 has been run for the rest. Three cities still have wards with no heat value at all (Bhopal 34%, Thiruvananthapuram 6%, Kolkata 4%), because the clearest available scene still had cloud over part of the city. Those wards are drawn uncoloured rather than filled with a guess.

Update, 2 October 2026: the national heat mosaic filled Bhopal and Kolkata; one Thiruvananthapuram ward remains.

The larger limit is that an annual mean is a blunt tool for a country whose pollution swings so sharply with the season. A monthly layer is the next thing worth building.

Update, 2 October 2026: four-season air is now on the map.

Find your ward on the map. If the boundaries look wrong for your city (stale delimitation, missing wards, a name nobody local would recognise), tell us at contribute@janvayu.in. A local correction is worth more than another pass over the data by us.

Share WhatsApp X LinkedIn Telegram Email