
The top level. Three structures come down from here together: administrative (rural), local body (urban) and electoral. When you create a project you simply pick a state; everything below it is already there.

Every state, every assembly seat, every gram panchayat and ward — LGD-coded and ready before day one.
Planning a nationwide field force survey shouldn't start with typing in village names. States, districts, blocks, gram panchayats, villages, urban local bodies, wards, Lok Sabha and Vidhan Sabha seats and polling stations are already in the system, with official LGD codes and Hindi and English names. Lok Sabha, assembly, municipal or panchayat: any election, any state. Hover over a state on the map.
Administrative (rural), local-body (urban) and electoral hierarchies, mapped to each other
India's geography isn't a single tree. One village sits in a gram panchayat, a block, an assembly seat and a Lok Sabha seat, and those boundaries cut across each other. So every area record carries all three references.
Keep scrolling: each card drops one level. The codes are samples that only show every level has its own permanent code; the real digits in place of ‘X’ come from LGD.
All 28 states and 8 union territories — districts, assembly seats, load status
District counts are approximate, drawn from public LGD and Census data, and they change as states reorganise; where we aren't sure, we write ‘—’. Assembly seat counts are official Election Commission figures. ‘LGD structure loaded’ means a coded list from state down to village and ward is in the system; ‘detailed load’ means polygons, centroids and GP-to-village mapping are verified.
| State / UT | Districts (approx.) | Assembly seats | Status |
|---|---|---|---|
| Uttar Pradesh | 75 | 403 | Detailed load |
| Maharashtra | 36 | 288 | LGD structure loaded |
| West Bengal | 23 | 294 | LGD structure loaded |
| Bihar | 38 | 243 | LGD structure loaded |
| Tamil Nadu | 38 | 234 | LGD structure loaded |
| Madhya Pradesh | 55 | 230 | LGD structure loaded |
| Karnataka | 31 | 224 | LGD structure loaded |
| Rajasthan | 41 | 200 | LGD structure loaded |
| Gujarat | 33 | 182 | LGD structure loaded |
| Andhra Pradesh | 26 | 175 | LGD structure loaded |
| Odisha | 30 | 147 | LGD structure loaded |
| Kerala | 14 | 140 | LGD structure loaded |
| Telangana | 33 | 119 | LGD structure loaded |
| Assam | 35 | 126 | LGD structure loaded |
| Punjab | 23 | 117 | LGD structure loaded |
| Chhattisgarh | 33 | 90 | LGD structure loaded |
| Haryana | 22 | 90 | LGD structure loaded |
| Jharkhand | 24 | 81 | LGD structure loaded |
| Uttarakhand | 13 | 70 | LGD structure loaded |
| Himachal Pradesh | 12 | 68 | LGD structure loaded |
| Delhi | 11 | 70 | LGD structure loaded |
| Jammu & Kashmir | 20 | 90 | LGD structure loaded |
| Manipur | 16 | 60 | LGD structure loaded |
| Mizoram | 11 | 40 | LGD structure loaded |
| Nagaland | — | 60 | LGD structure loaded |
| Tripura | 8 | 60 | LGD structure loaded |
| Meghalaya | 12 | 60 | LGD structure loaded |
| Arunachal Pradesh | — | 60 | LGD structure loaded |
| Goa | 2 | 40 | LGD structure loaded |
| Sikkim | 6 | 32 | LGD structure loaded |
| Puducherry | 4 | 30 | LGD structure loaded |
| Ladakh | — | — | LGD structure loaded |
| Chandigarh | 1 | — | LGD structure loaded |
| Andaman & Nicobar | 3 | — | LGD structure loaded |
| Dadra & Nagar Haveli and Daman & Diu | 3 | — | LGD structure loaded |
| Lakshadweep | 1 | — | LGD structure loaded |
Sources: LGD (lgdirectory.gov.in), Election Commission of India, State Election Commissions. District counts change over time as new districts are notified; when a project starts, we load and verify that state's latest LGD version. ‘—’ marks UTs without a legislative assembly. The bar only compares seat counts (403 = full bar).
Village-level coverage: LGD code, census centroid, approximate radius
The village is the unit of a rural survey, and its name alone won't do: one district can have ten villages called Rampur. So every village is stored with its LGD code, gram panchayat, block and district, and its Census-based centroid plus an approximate radius anchors location checks.

Urban local bodies: municipal corporation, council, nagar panchayat → ward → mohalla
Urban geography moves fast: delimitation, new wards, a nagar panchayat upgraded to a nagar palika. ULB and ward codes come from LGD; ward boundaries come from the State Election Commission notification and are verified per project. GPS accuracy slips to 50–200 m in dense neighbourhoods, so in ward surveys the “near boundary” group is larger and the review policy is agreed up front.

Assembly constituency polygons from open datasets; booth master from CEO lists
Assembly and Lok Sabha polygons come from openly licensed datasets, and the report states their boundary status. The booth list (part number, booth name, building, area, elector count) is imported assembly by assembly from the CEO's PDF or CSV. Booth locations are pinned by hand or uploaded, because official coordinates aren't publicly available in a uniform format.

Offline map tiles, GPS without network, sync whenever signal returns
Coverage isn't just a name on a list; it means the work can actually get done there. The app is offline-first: map tiles and forms download in the morning, GPS fixes work without a network (A-GPS optional), and data syncs whenever signal returns, even at night from home. The dashboard shows “last updated X minutes ago” honestly.

Lok Sabha, Vidhan Sabha, urban local body, panchayat — pick the unit before you pick the team
Hover over a panel (tap on mobile). The election type decides which unit you assign work to, where the boundary comes from and where the report rolls up. The detailed rules sit in the tabs below.




Approximate boundaries, open data, no Survey of India purchase — and the five location states that follow
No survey app has a verified boundary for every village in India. The difference is that we write it into the product instead of hiding it.

Every area record is built from these public sources, and each one notes which part came from where, and on what date.
The election type decides what the unit is, where the boundary comes from and at what level the report rolls up. Switch tabs to compare.
A Lok Sabha survey needs geography at three levels: PC → AC → polling station. Bharat Survey already holds the PC and AC lists with open polygons; the booth list is imported assembly by assembly from the CEO's PDF or CSV. Assign by AC or by booth cluster (mandal / shakti kendra), and read the report as an AC-by-AC comparison.
The bread-and-butter election project: one AC, 10–30 seats, assignments by panchayat or ward. The AC polygon comes from an open dataset, villages and wards from LGD (centroid + radius), booths from the CEO list. This is where booth management, A/B/C/D ratings and the war room do the most work. The first detailed data load covers all 403 assembly seats of Uttar Pradesh.
In a city, the ward is the unit. LGD carries a code for every ULB and ward; ward boundaries come from the State Election Commission notification and shift after every delimitation, so we re-verify them per project. Mohallas and colonies get a local ID. For a ward wise survey, assign by ward and report by ward and by zone.
Panchayat elections and rural development surveys run on the gram panchayat. LGD gives the block, GP and village lists plus the GP-to-village mapping; village centroids are Census-based. Zila and kshetra panchayat wards come from the State Election Commission list. Assign by GP, set targets by village, report by GP.
Worked examples: a rural address, an urban address, and the electoral view of both
Place names are samples of real kinds of places and codes are shown as ‘X’: the point is the structure, not the figures. The cards stack as you scroll.
In a rural survey, every record is saved with this whole chain. There may be several villages called Barauli; their codes keep them apart. The tola isn't in the official list, so it gets a local ID and rolls up into Barauli Khas in the report.
Cities have no blocks or gram panchayats; the urban local body and the ward take their place. Ward boundaries come from the State Election Commission notification and change after delimitation, so every project is verified against the latest notification.
Both addresses above also belong to this structure: Barauli Khas and Ward 14 each fall inside some assembly seat and some booth area. These lines cut across administrative boundaries, so the AC ↔ panchayat/ward mapping is verified on setup day.
The Local Government Directory (LGD) is the official register kept by the Government of India's Ministry of Panchayati Raj. It assigns a permanent numeric code to every state, district, sub-district/tehsil, block, gram panchayat, village, urban local body and ward, and records how they relate (which village sits in which GP, which GP in which block). A survey needs it for three reasons. (1) Duplicate names: one district can hold several Rampurs and Naglas, and the code keeps them apart. (2) Matching other data: government schemes, the Census and department portals use the same codes, so your survey report can join up with them. (3) Stability over time: spellings drift, codes don't. All of Bharat Survey's geography is built on these codes, and every area record shows its LGD code, source and load date.
An assembly election survey plan comes down to four questions. What is the unit? Gram panchayats in a rural AC, wards in an urban one, and booths (part numbers) for roll-up in both. How many seats? An AC has 200–400 booths and 1.5–3 lakh voters; a 10–30 seat plan is typical, with one volunteer covering 300 households in 8–12 days. What is the supervisor's patch? A block or zone, with 8–10 volunteers per supervisor. At what level do you report? Issues by panchayat or ward, ratings by booth, a summary at AC level. Import the booth master from the CEO list, pin booth locations, and settle the “near boundary” review policy on day one. No personal voter-roll data is imported in v1; the work runs on the booth-level master.
In municipal corporations, councils and nagar panchayats, the ward is the unit. Ward boundaries come from the State Election Commission notification and change after delimitation, so each project is verified against the latest notification. Mohallas and colonies get a local ID, so a volunteer's assignment can be as precise as “Ward 14, Gali No. 6”. Urban surveys bring two particular challenges: GPS accuracy of 50–200 m in dense lanes, which swells the “near boundary” and “weak signal” groups; and multi-storey buildings, where a household roster (one building, many homes) does the job. In retail audits and facility surveys, the shop or facility list is mapped to wards and reports are built with photo evidence.
Panchayat elections, rural development programmes and NGO or government household surveys all run on the gram panchayat. LGD provides the block, GP and village lists and the GP-to-village mapping; village centroids are Census-based. Zila panchayat and kshetra panchayat wards come from the State Election Commission list. Assign by GP, set targets by village, report GP → block → district. Village boundaries are approximate, so the badge says “approximately in area”, and only records that are clearly outside (kilometres away) get flagged “outside area”. Tolas, majras and purwas, which aren't official villages, get a local sub-area ID inside the village, and the report marks their source as “local” so the match with LGD holds.
An LGD list looks like a wall of columns the first time you open it, but only five things matter for survey work. (1) A code is an identity, not an address. A village code's digits don't encode its district or block; a separate mapping table tells you which village belongs to which gram panchayat. So don't try to read the district off the leading digits. (2) Each level has its own code list. State, district, sub-district/tehsil, block, gram panchayat (local body), village, urban local body and ward all run in separate series, so ‘1234’ could be a block in one list and something else in another; always read a code together with its level. (3) Names change; codes don't. ‘रामपुर’, ‘Rampur’, ‘Ram Pur’: three spellings, one code. Join your household list or old reports on the code, not the name. (4) A revenue village and a gram panchayat are different things. One GP can hold several villages, and they can share a name (GP Barauli, village Barauli Khas). (5) The list is alive. New districts, new urban bodies, reorganised panchayats: LGD keeps updating, so we date every load and pull the latest version when a project starts.
CSV and Excel exports carry both the area name and its code as columns on every record, along with boundary status (verified / approximate / not available) and location status. That lets you join your report to government scheme data or your own older survey files by code. Local units such as tolas and majras are marked with source “local” and come with their parent LGD village code.
Say your project is one assembly seat in Lucknow district (names are samples). In its rural part the path runs: district → Block Malihabad → Gram Panchayat Barauli → village Barauli Khas → Purab Tola. The urban part has no block or panchayat; its path is district → Nagar Palika → Ward 14 → Gali No. 6. Above both sits the electoral structure: assembly seat → booth (part number). In practice that means three decisions. Assignment: by GP in villages, by ward in town. Location policy: villages have bigger radii and open sky, so more records land “in area”; city wards are small, buildings are tall and accuracy runs 50–200 m, so expect more “near boundary” and “weak signal” and agree the review policy first. Household identity: in a village, a house label and the head of household's name are enough; in a multi-storey building you need a household roster (one building, many homes).
Where an open polygon exists (district, assembly seat, Lok Sabha seat), we use it and record its source and date alongside the boundary status. For villages and most wards, no such polygon is publicly available in a uniform form. There the boundary is built from two things: the centroid, the village's Census-based centre point, and a radius estimated from the village's size. That is a circle, not the real boundary; in a long or scattered village, outlying tolas will fall outside it. That is exactly why “near boundary” is its own group and such records are not rejected outright.
Improvements come three ways. First, on setup day: the missing-mapping report shows how many areas have a boundary, how many are approximate and how many have none, and anything unclear stays “verification pending”. Second, from the field: if a village's valid records keep landing “near boundary” or “outside” and the supervisor keeps logging exceptions with reasons (“the eastern tola sits outside the radius”), that area's centroid or radius needs fixing. Third, from you: if you hold a verified boundary, such as a municipal corporation's GIS, it can be imported into the project and that area's badge becomes “verified”. In all three cases older records are reclassified against the new boundary, but each record's original evidence (lat/long, accuracy, time) stays as it was, so anyone can later see what the status was before and why it changed.
Boundary status decides the badge, the review load and what you should plan for
On setup day, every area is tagged with one of these three statuses. That tag decides what the badge will say and how long the supervisor's review queue gets.
| Question | Verified (polygon) | Approximate (centroid + radius) | Not available |
|---|---|---|---|
| Usually found at | District, AC, PC; a GIS boundary you supply | Villages, most wards | New or unclear areas, local tolas |
| Badge in the app | ‘Verified’ | ‘Approximately in area’ | ‘Approximate proximity’ |
| ‘Near boundary’ group | Small | Large — edge-of-village homes | — |
| When ‘outside area’ | Clearly outside the polygon | Clear cases, kilometres away | — |
| Supervisor review | Light | Moderate; set the policy first | Heavy; drops once mapping is verified |
| Ever a false ‘Verified’ badge | |||
| In the report | Boundary-status column | Boundary-status column | In the ‘verification pending’ list |
When this geography is not what you need
The questions about LGD, boundaries, booth lists, wards and panchayats that come up in every demo.
The Local Government Directory (lgdirectory.gov.in), run by the Ministry of Panchayati Raj, is the Government of India's official register. It gives every state, district, sub-district, block, gram panchayat, village, urban local body and ward a permanent numeric code. That code keeps two villages with the same name apart and lets your data line up with other government systems, such as scheme portals. All of Bharat Survey's geography sits on these codes.
The all-India structure (state down to village and ward, with LGD codes) and the Lok Sabha and Vidhan Sabha lists are already in the system. The first detailed load is Uttar Pradesh (75 districts, 403 assembly seats); other states are verified and loaded within 1–2 days of a project starting. Polling station (booth) lists are imported assembly by assembly from the CEO's PDF or CSV.
Districts, assembly seats and Lok Sabha seats use openly licensed polygons; villages and wards use a centroid plus an approximate radius. So the badge says “approximately in area”, only clear-cut cases are flagged “outside area”, and edge cases go to review as “near boundary”. Where a verified boundary exists, the badge becomes “verified”. One GPS point in the middle of a village is not its boundary, and we say so.
Treat one assembly seat as one project. Pick the panchayats and wards inside the AC (the list is already loaded), import the booth master, give supervisors a block or zone, and give volunteers panchayat- or ward-level assignments. A 10–30 seat plan is typical. Reports roll up by panchayat and by booth, and the war-room board sits at AC level.
ULB and ward lists come from LGD; ward boundaries come from the State Election Commission notification and are re-verified per project after delimitation. Mohallas and colonies get a local ID. Assign by ward. GPS is weaker in dense areas, so agree a review policy for “near boundary” and “weak signal” records before fieldwork. Reports come ward-wise and zone-wise.
They get a local operational ID as a sub-area inside the village, without being declared an official village. The report marks their source as “local” and rolls them up into the LGD village, so the match with government data stays intact.
Booth lists are imported assembly by assembly from CEO/ECI PDFs or CSVs (part number, booth name, building, area, elector count). Booth locations are pinned by hand or uploaded, because official coordinates are not publicly available in a uniform format. No personal voter-roll data is imported in v1.
No. District, AC and PC polygons come from openly licensed datasets, village centroids are Census-based, and ULBs and wards come from LGD. That is why we call village and ward boundaries “approximate” and display them that way. If you hold a verified boundary, such as a municipal corporation's GIS, we can import it into your project.
Yes. The app is offline-first: map tiles and forms download in advance, GPS fixes work without a network, and data syncs whenever signal returns. The dashboard shows “last updated X minutes ago” honestly. The Offline Work Permit lasts 24 hours and can be extended per project.
The app is Hindi-first with a one-tap English toggle. Form labels come in Hindi and English, and XLSForm accepts columns for other Indian languages (label::mr, label::bn and so on). Area names are stored in Hindi, English and the local name people actually use. More Indian languages for the app interface are planned for a later version.
On lgdirectory.gov.in, drill down state → district → block or sub-district → gram panchayat → village to see each unit's code, its English and local-language names and its parent; full lists can be downloaded. The code is a plain number, with no district or block hidden in its digits, so relationships always come from the mapping table. In Bharat Survey the code appears as its own column in every area record and every export.
The village (revenue village) is the smallest official unit; a gram panchayat holds one or more villages; several GPs make up a block. In practice it works best to assign by gram panchayat, set targets by village and give each supervisor a block. Reports roll up in the same order: GP → block → district.
No, they are two separate code lists. LGD tracks the current administrative structure and is updated over time; Census codes reflect the structure of the census year. LGD does keep a Census code reference for villages, and we take village centroids from a Census-based source. Where the two don't match cleanly, the record stays “verification pending”.
Yes. Most assembly constituencies contain gram panchayats and one or two urban local bodies. A project can select both structures: assignments by GP in the rural part and by ward in the town, with the electoral layer (AC → booth) sitting above both for roll-up. Reports come panchayat-wise and ward-wise.
Every data load records its source and date, and when a project starts we load and verify that state's latest LGD version. That is why district counts in the table above say “approx.”. For urban wards, verification against the latest notification happens per project after delimitation; unclear mappings are never joined by guesswork.
For a district-level survey, make the district the project, the block the supervisor's patch and the gram panchayat or ward the volunteer's assignment. One supervisor for 8–10 volunteers is a workable ratio. The missing-mapping report shows on day one which block has an incomplete GP-to-village mapping, so you can verify it before assigning work there.

Tell us the area, and in the demo we'll show you its panchayat or ward list, boundary status and missing-mapping report.
Open reference pages built from ECI, Census 2011, LGD and MCA records, with the source credited on every page.