The candidate had polled third in the previous assembly election, roughly 21,000 votes behind the winner. Party workers were demoralised, the listed booth committee structure existed largely on paper, and the sitting MLA had a two-term incumbency and a visible development record. Our baseline survey at T-170 put the candidate's win probability at under 20%.
We found the seat was not one race but three
Booth classification showed the constituency splitting cleanly: 71 booths where the incumbent was unbeatable, 84 where our candidate was already ahead, and 96 swing booths — almost all in the two taluks where a water supply scheme had been announced twice and delivered never. Every rupee of discretionary budget went to those 96.
The booth list was a fiction, so we rebuilt it
Of 2,100 listed booth workers, verification found 780 who were active and contactable. We rebuilt to a panna pramukh model — 6,800 page-owners, each responsible for about 30 voters they personally knew — recruited over eleven weeks and tracked on a worker app with attendance and task completion. That single change is the one the candidate credits most.
Grievance capture became the campaign
Rather than a promise-led campaign against an incumbent with a record, we ran a service-led one. A WhatsApp chatbot and worker app took 14,600 civic grievances over five months. 9,100 were closed with photographic proof and a follow-up call. Voters who had a grievance closed swung heavily, and more importantly they told their neighbours.
The water issue, said in the local dialect, every day
Message discipline was ruthless. One issue, in the dialect of those two taluks, repeated across the campaign song, IVR blasts, booth group content and every pamphlet, for four months. Our mid-campaign tracker showed unprompted recall of the water message rising from 11% to 47% in the swing taluks.
The takeaway
A two-term incumbent is not beaten by out-promising them. They are beaten by out-serving them in the 20% of booths that actually move.