By Sunil Garodia
First publised on 2026-08-04 14:06:55
Bankipur has fallen. For thirty years, since 1995, this Patna seat had never once slipped out of BJP's hands. It was not just any seat. It was the seat of Nitin Nabin, the party's own national president, a family bastion he inherited from his father and defended five times in a row, the last time by a margin of nearly 50,000 votes just nine months ago. It was the first electoral test of the new Bihar leadership under Chief Minister Samrat Choudhary and party national president Nabin. BJP failed that test. Jan Suraaj Party founder Prashant Kishor, contesting an election for the first time in his life, defeated BJP's Neeraj Kumar Sinha by over 19,000 votes. According to party insiders, BJP's own internal assessment had projected a win by at least 10,000 votes. It did not merely lose. It lost heavily. Its vote count fell by more than 54,000 compared to the November 2025 assembly result. Turnout also fell, to just over 34 percent from 41.45 percent in the assembly election, a decline of more than seven points typical of by-polls. But turnout alone does not explain a swing of this magnitude in a constituency BJP had dominated for three decades. This was not a stumble. It was a collapse in a seat BJP had stopped imagining it could lose.
The easy explanation, that this was merely a by-poll and by-polls are always unpredictable, will not hold. Bankipur was not a marginal seat with a weak incumbent. It was BJP's most secure urban fortress in Bihar, anchored in a constituency where Kayasthas, Nabin's own community, make up roughly a quarter of the electorate, with a sizeable Bhumihar upper-caste presence besides. If BJP cannot defend this seat with its own national president's political capital behind it, few seats in Bihar can now be considered entirely safe.
Three forces converged to produce this result, and each deserves to be named without euphemism.
The first is the RJD's conduct. Rekha Gupta, the party's candidate, finished a distant third, reduced to an also-ran in a seat that had given RJD its principal opposition role in the last assembly election. RJD did not put up a real fight. It did not deploy its organisational weight, its cadre, or its leadership in any visible way. The most plausible reading is not incompetence but calculation. The voting pattern suggests that many traditional RJD supporters, including sections of its core Yadav and Muslim base, may have shifted tactically towards Kishor rather than sit out or vote for their own party's nominee, though the absence of booth-level data makes the extent of this transfer difficult to quantify. This was opposition unity achieved not through negotiation or seat-sharing but through voter behaviour that outran the party leadership's caution. RJD's spokesperson later describing the result as a matter of "delight" adds weight to that interpretation, and suggests the party had read the writing on the wall early and chose not to spend its capital on a fight it could not win, while quietly allowing its base to consolidate against BJP by other means. For BJP strategists, this should be more worrying than a straight RJD win would have been. It shows that opposition consolidation in Bihar no longer needs a formal alliance to work.
The second is the residue of the Cockroach Janta Party protests. What began in June as a Gen Z-led agitation over the NEET paper leak, organised by digital creator Abhijeet Dipke and centred on Delhi's Jantar Mantar, spread to Bihar and other states before it was called off in July. The movement's organisers insisted it was not aimed at any one party, and technically it was not. But it forced the resignation of the Union Education Minister, exposed the government's slowness in reading youthful anger, and left behind a residue of anti-establishment sentiment among young, educated, urban voters exactly the demographic that decides a seat like Bankipur. Veteran socialist leader Shivanand Tiwary was blunt in linking the Bankipur verdict to this wider dissatisfaction with BJP that the protests had surfaced. No single election turns on one issue, but the protests revealed a reservoir of frustration among educated urban youth that BJP appeared to underestimate. Kishor, with his organisational energy and his appeal to younger and government-employee voters, was the natural beneficiary of a mood BJP had failed to defuse even after the protests formally ended.
The third is the social coalition that took shape behind Kishor during the campaign, and this is where the loss cuts deepest for BJP. Available voting patterns suggest BJP retained much of its traditional Kayastha support, Nabin's own community. But it lost ground among other upper castes, including Bhumihars, who did not feel bound to vote as a bloc simply because BJP asked them to. Kishor also drew support from Dalits, Extremely Backward Classes and Most Backward Classes, sections that have historically had little organic connection to Jan Suraaj. This is a caste coalition assembled almost overnight, and it worked. For a party whose entire Bihar strategy since Nitish Kumar's marginalisation has rested on holding upper castes tightly while making inroads among OBCs through Samrat Choudhary, the message from Bankipur is that upper-caste loyalty is conditional, not automatic. A seat as safe as this one was supposed to be immune to that conditionality. It was not.
What does this mean for BJP beyond Bankipur? It means the party cannot treat urban upper-caste Bihar as a fixed vote bank while it chases OBC consolidation elsewhere. It means Prashant Kishor, dismissed after his party's zero-seat performance in the 2025 assembly election, has re-entered Bihar's political calculus as a genuine disruptor, not a footnote. And it means the anti-incumbency and youth alienation that the CJP protests exposed nationally has not dissipated just because the marches stopped. BJP fought this by-poll with its Chief Minister, its national president's legacy, and its full state machinery behind it, and still lost by nearly 20,000 votes. Governments that lose safe seats while everything else appears to be going their way rarely get the warning twice.









