A — Strong
Favourable past margin, full committee, a pramukh on every page, regular reports.
Next step: Hold the ground; focus on turnout on polling day.
Sample reason: “+240 last time, committee 9/9, reported 7 of 7 days”

Booth committees, panna pramukh ranges, A/B/C/D ratings, daily booth reports and polling-day turnout, on one board.
Our booth management app is built for campaign teams running 250–450 booths per constituency. Which booth has an in-charge and which doesn’t, which booth reported today, which one is weak, and where turnout is lagging on polling day: paper registers and phone calls can’t keep up. Bharat Survey’s booth module handles exactly this, and the same team runs your field surveys too.
AC → Mandal / Shakti Kendra → Booth → Booth committee → Panna pramukh, now in software
We didn’t invent a new hierarchy. Data is divided the way responsibility is divided, from constituency to mandal, booth, committee and panna, and each person sees only their own slice.
Sample · AC 172 · numbers for illustration
Keep scrolling. Each layer opens, shows its job and makes room for the next one. Setup follows the same order: the master list first, then people, then assessment, then the daily report, and finally polling day.
Every layer is described in full under ‘Four modules’ below. All data is sample data.
Built from the polling station list on the state CEO website (PDF) or your own CSV: part number, booth name, building, area and elector count (male/female/other). Coordinates come from a manual pin on the map or an upload. Everything else hangs off this list.
Every booth gets an in-charge or president, a BLA and members, each with name, mobile and role. Panna pramukhs are mapped to page ranges of the electoral roll. These are field roles: light app access for daily reports and turnout, with no survey seat charged.
A strong, B steady, C weak, D very weak. You set the rating and a written reason is mandatory. Past election margins go in as manual entries. Every change keeps its history: who, when and why.
A short form for the booth in-charge: today's activity, households contacted, local issues and an optional photo. A booth that hasn't reported shows as a dashed outline on the board, with a count per mandal.
On polling day the app narrows to one screen and one job: the total votes cast, every hour. The war room board shows the constituency average, booths behind it, and booths that missed this hour's update.
Booth strength rating with reason and history. Tilt the cards.
A rating is your own read of a booth’s strength, not a survey statistic. That is why we keep it manual, make the reason mandatory and preserve the history of every change. Move your cursor over the cards.
Favourable past margin, full committee, a pramukh on every page, regular reports.
Next step: Hold the ground; focus on turnout on polling day.
Sample reason: “+240 last time, committee 9/9, reported 7 of 7 days”
Thin margin or an incomplete committee. Work is happening but could slip.
Next step: Fill the panna pramukh gaps, take up civic issues.
Sample reason: “+35 last time, pramukhs on 9 of 14 pages”
Unfavourable past margin, a committee in name only, irregular reports.
Next step: Survey priority, a new in-charge, weekly visits by the mandal in-charge.
Sample reason: “−180 last time, 2 people on the committee”
No structure or no trust; no accountable name on the ground.
Next step: Set realistic targets. Putting resources elsewhere is also a decision.
Sample reason: “No in-charge, no report for 3 weeks”
The bars at the bottom show a sample split across 268 booths. On the live board the same split appears mandal by mandal, and every change (who, when, for what reason) stays in the history.
Jump from the list on the left or keep scrolling. Each module shows the same detail you’ll see in the demo.
Polling day, hour by hour: booth open → hourly turnout → supporters yet to vote → close → report
Scroll: the steps are on the left, and on the right is what the war room board looks like at that moment. All data is sample data.
In the morning the app moves into polling-day mode on its own: one screen, one job. The booth in-charge taps ‘booth open’ once the mock poll is done and the first voter arrives. Booths that haven’t checked in by 7 am head the war room’s first list, and the mandal in-charge calls them. Only them, not everyone.
Every hour the booth in-charge enters the total votes cast, timestamped to that hour. With no network the entry stays on the phone and syncs when a tower is in reach. The board shows hourly bars, the constituency average, and booths that missed the hour as ‘no update’.
In the afternoon the booth in-charge enters their own count of supporters who haven’t voted yet. It is an estimate, so the board shows it with ‘≈’ in a separate colour. No voter name, number or personal status enters the system. C/D-rated booths where turnout trails the average become the war room’s priority list.
After the last voter in the queue, the in-charge taps ‘booth closed’ and enters the final count. The board shows the full hourly curve, final booth-wise turnout, and booths whose final entry is missing. Their entries still arrive after closing, with the correct time, from the offline queue.
The day’s report covers final booth-wise turnout, the hourly curve, a comparison by rating (average for A booths versus D booths), compliance (who filled how many hours), and the supporters-left estimate against final turnout. Export to PDF, Excel or CSV, with a Google Sheets copy if you want one. Every number carries its time and source, so the report says exactly what the board showed.

On a big screen for the constituency in-charge, in a mobile browser for the mandal in-charge, and in the app's Leader view for the candidate. One board, cut to each role.
Booth heat-map, compliance, issues and alerts, updated within seconds
Compliance first, then ratings, then issues
Most ‘war room software’ is a turnout counter. Our board shows exceptions: the booth that went quiet, the booth falling behind, the survey submitted outside its area, the rating changed without a reason. When everything else is green, the board stays calm.

Role-scoped views, so nobody sees beyond their level
A party or agency panel holds many constituencies, each in its own tenant. Inside a constituency, the mandal in-charge sees only their 5–7 booths and the booth in-charge only their booth and report. Every change to a rating, in-charge or panna range is written to the audit log: who, when, and what it was before.

Polling day: one screen, hourly bars, lagging booths, missing updates
In polling-day mode the board shows just four things: the hourly curve of constituency-average turnout, booths behind the average (with their rating), booths that missed this hour’s update, and the estimate of supporters yet to vote. Instead of calling 30 people, the mandal in-charge calls the 3 booths on the list.


What shows on the war room wall also shows on the mandal in-charge's phone for their 5–7 booths, and on the booth in-charge's phone for their one booth. Hover over the ring to pause it. All data is sample data.





Roles of the booth in-charge and panna pramukh, what A/B/C/D means, a polling-day checklist, and why we don’t import the voter list
Method before software. This is the thinking the module is built on, and it works on paper too.
Booth management means every polling station in a constituency has an accountable person, that person knows the job, and the people above know whether the job is getting done without having to phone around. Three rules most campaigns break:
Responsible for the area of a booth’s ≈1,000–1,400 electors. Forms the committee (BLA, members), appoints panna pramukhs, reports daily activity and local issues, and enters hourly turnout on polling day. In the app they see only their own booth, so fewer screens and less confusion. No seat is charged; filling surveys needs a separate seat.
In the ECI process, the party’s authorised representative who works with the BLO on electoral roll revisions. In our module it is a committee role with name and mobile, so the board shows which booths have a BLA and which don’t. Electoral roll work itself happens outside the system, under ECI rules.
The person responsible for one page of the electoral roll (≈30–60 electors), usually someone from the same neighbourhood who knows every family. To build the list: count the pages in the booth’s roll, make ranges of 2–3 pages, and put one name on each range. Bharat Survey records exactly those ranges and names; pages without a pramukh stand out on the board and the list exports mandal-wise. Elector names never enter the system.
A rating is your own assessment of a booth’s strength, not a survey figure, which is why we keep it manual and require a reason:
The rating history is kept so that after the election you can see whose assessment held up, mandal by mandal. That is the most useful lesson for the next election. Survey sentiment sits beside the rating so you can catch gaps between the assessment and the ground.
The model code of conduct, the campaign silence period and the 100/200-metre rules around polling stations are the campaign’s responsibility. The app sends no campaign messages; it handles internal team reporting only.
Many election apps on the market import the electoral roll (name, EPIC, age, address) and layer caste or family tags on top. We deliberately don’t, for three reasons:
So the booth master holds total elector counts, panna pramukhs hold page ranges, and ‘supporters yet to vote’ is a manual number, never names. If a legally clear route emerges in future, that will be a separate decision, stated plainly.
If your office needs the voter list itself, in Excel with booth-wise analysis or as printed voter slips, we prepare it outside the app as a separate voter list data service. Only the booth totals come into the booth master.
Paper registers vs. typical voter-list apps vs. the Bharat Survey booth module, task by task
Each has its place. The middle column describes the setup commonly found in the market, not any single company. What we don’t do is in this table too.
| Task | Register + phone calls + WhatsApp | Typical voter-list / election app | Bharat Survey booth module |
|---|---|---|---|
| Booth master | Photocopied list | Imported along with the electoral roll | Parsed from CSV / CEO PDF; pinned on the map; ‘pin pending’ flagged |
| Booths without an in-charge | From memory, or by asking the mandal in-charge | In-charge list exists | ‘No in-charge’ list in the board’s first row, shrinking daily |
| Panna pramukh | Names on paper | With voter-by-voter tagging | Page range + accountable person; no elector names |
| Booth strength assessment | Word of mouth | Colours or tags, often without a reason | A/B/C/D, reason mandatory, full change history |
| Daily reporting | Phone calls and WhatsApp messages | Often absent | 2-minute form, offline too; compliance board |
| The booth that’s gone quiet | Nobody notices | — | Dashed outline, with ‘silent for how many days’ |
| Polling day | Calling 30 people every hour | Turnout entry / counter | Hourly entry + behind and silent booths separated; offline entries land on the right hour |
| Individual voter status (voted / not voted) | Ticks on slips | Yes, with DPDP and ECI risk on you | No (by design): only a manual total |
| Link to surveys | Separate paperwork | Limited surveys | Booth-wise summary of GPS-verified surveys beside the rating |
| Who can see what | Whoever holds the register | Depends on the vendor | Role + area checks; every change in the audit log |
What the booth module does in v1, and what it deliberately leaves out
When this is not the right booth tool, said before the demo
In these situations we’ll tell you to look elsewhere, or to take only the survey side.
Who does what, a sample 30-day booth calendar, six common mistakes, the daily booth report template and a glossary
The first guide covered what and why. This one covers who, when and in what order, ready to use in a mandal in-charges’ meeting.
Role and area are both checked on every request. The booth team are field roles; a seat applies only to people who fill survey forms.
| Role | Sees | Does | Where | Seat |
|---|---|---|---|---|
| Party / agency panel | All constituencies, each in its own tenant | Combined and constituency-wise reports | Web | No |
| Constituency in-charge / candidate | Full board: map, compliance, ratings, issues, polling day | Assign mandals and in-charges, review ratings, export | Web + app Leader view | No |
| Mandal / Shakti Kendra in-charge | Only their 5–7 booths | Rate with reasons, call silent booths, export their mandal | Mobile browser / web | No |
| Booth in-charge | Only their booth and report | Daily booth report, polling-day turnout entry | App (light access) | No (yes if filling surveys) |
| BLA / committee member / panna pramukh | Their booth | Name and role on the list; optionally reports/turnout | App (light access) | No (yes if filling surveys) |
| Viewer: senior leader, client | Board and reports, read-only | Cannot change anything | Web / big screen | No |
| Volunteer / surveyor | Today’s tasks, their area | GPS-verified surveys | Android app | Yes: 1 seat, 1 device |
This is a sample sequence. In the demo we adjust it to the days you have left and the number of mandals. The model code of conduct and campaign silence rules apply at every stage, and they are the campaign’s responsibility.
Straight answers on the booth in-charge app, panna pramukh lists, ratings, polling-day tracking, what a war room needs, and the voter list.
No app wins an election, and we make no promise about outcomes. What booth management does is make sure every polling station has a named person, that weak booths are known early, and that polling-day effort goes where turnout is lagging. On paper you get a committee list but not which booth reported today or which one is slipping. Bharat Survey puts the booth master, in-charges, reasoned ratings, daily reports and turnout on one board, and the same team can run the surveys that sit beside those ratings.
After the booth master is imported, split each booth’s electoral roll into page ranges (for example pages 1–3, roughly 60 electors). Assign one panna pramukh per range by name and mobile; one person can own several ranges. It is a field role, so no survey seat is charged unless they fill surveys. The list exports booth-wise or mandal-wise, and ranges without a pramukh stand out on the board. We store page ranges only, never individual elector names.
You decide it. Base it on past margins (entered manually), worker strength, committee health and local knowledge, and write the reason down. A is strong, B steady, C weak, D very weak. The history is kept: if a rating changes later, the old one stays visible with who changed it, when and why. Weak booths show up at once on the heat-map and the mandal-wise summary.
The app switches to polling-day mode. Every hour the booth in-charge enters the total votes cast, and optionally a manual count of supporters yet to vote. The war room board shows booth-wise and constituency-average turnout, booths behind the average and booths that missed this hour, live. If a booth has no network, the entry stays safe on the phone and reaches the board when the signal returns, stamped with the correct hour.
Not into the app in v1. Importing personal data from the electoral roll carries real risk under the DPDP Act 2023 and ECI rules, and WhatsApp Business policy restricts political messaging. The app works at booth level (part number, building, total electors) and on your team, not on profiling or tracking individual voters. Call centre or IVR, bulk SMS and media monitoring are outside our scope. If your office needs the voter list in Excel or printed voter slips, we prepare them as a separate voter list data service; only booth totals go into the app.
Yes. Each assembly constituency is a project, and a party or agency panel shows all of them. The mandal or Shakti Kendra layer is optional, and a mandal in-charge sees only their 5–7 booths. Reports come constituency-wise and combined, in CSV, Excel or PDF. Each constituency’s data sits in a separate tenant.
Yes. Use the polling station list (PDF) from your state CEO or ECI website, or your own CSV, with part number, booth name, building, area and elector count (male/female/other). Our PDF-parse tool turns it into a table, you check it, then it imports. Coordinates are added as manual pins on the map or by upload. A constituency’s booth master is usually ready within 1–2 days of setup.
No. Booth in-charges, BLAs, committee members and panna pramukhs are field roles with light app access for daily reports and turnout entries, and no seat is charged. A seat is needed only for someone who fills survey forms. So 300 in-charges across 300 booths do not need 300 seats.
The compliance board shows each booth’s status for today: reported, not reported, or silent for several days running. A silent booth shows as a dashed outline with a count per mandal (‘Mandal 4: 4 of 6 reported’). Mandal in-charges get their own list; the constituency in-charge gets the full one. You don’t hunt for it. It is the first row of the board.
The board runs on the web and works in a mobile browser; leaders also get a Leader view in the app. On a normal network a submission reaches the board in about 5 seconds (SSE realtime). If the network drops, the board says so plainly, for example ‘last update 18 minutes ago’, so an old number never passes as live. On polling day it is built to run on a TV or projector.
Very little, on purpose. On normal days: their own booth and their daily report. On polling day: booth open, the hourly total, an afternoon estimate of supporters yet to vote, and booth closed. A counter at the top shows how many entries are saved on the phone and how many have reached the server. They never see other booths, constituency-wide ratings or survey figures. The app is Hindi-first and runs on Android phones with 2–3 GB RAM.
No. We store no individual voter’s name, number or voted/not-voted status, because personal electoral roll data is not imported in v1 at all. Only two numbers are entered on polling day: total votes cast at the booth by that hour, and the in-charge’s manual estimate of supporters yet to vote. The second number appears on the board with ‘≈’ and in a different colour because it is an estimate.
That hour shows as ‘no update’ and the booth joins the silent list. The mandal in-charge sees the same list, so the call goes straight to them. Entries made without network stay safe on the phone and join the board with the correct hourly timestamp once a signal returns, even if that is after polls close. That is why a dry run the day before and power banks are on the checklist.
No, and we don’t claim to. There is no official open map of booth boundaries. In the booth master each booth is a pin at its building, which you place by hand on the map or upload as lat/long. The heat-map colours those pins by rating. District, assembly and Lok Sabha boundaries come from open sources and are labelled approximate.
On the software side: a laptop or TV/projector with a browser, internet, and a Viewer or Owner login. The board also works in a mobile browser. On the people side: one person who watches the ‘behind’ and ‘no update’ lists and calls mandal in-charges. No separate server, app or ‘war room licence’. The polling-day view is a mode of the same board, with the same login and booth master.
No. Each constituency or candidate project sits in its own tenant, and role and area are checked on every request, so a mandal in-charge cannot open another mandal’s board. A party or agency panel sees only its own projects. Sensitive access by our staff is logged with a reason in the audit log, and data is hosted on servers in India.

Send us your booth master (CSV or the CEO’s PDF) and we’ll build the board and walk you through it: ratings, in-charges, report compliance and polling-day mode. 20 minutes, sample data, no party colours.