The BJP, which had won an absolute majority in the 2014 General Elections with 282 seats, a first by a political party after 30 years, has lost seven seats in by-elections held so far in the last four years.
With the loss of the prestigeous Gorakhpur and Phulpur in the by-elections in Uttar Pradesh, the party's tally in the Lok Sabha has come down to 274, only two more than the half-way mark of 272 in the 543-member House.
In the by-elections since Narendra Modi stormed to power, Bharatiya Janata party (BJP) lost to Congress on four seats, to Samajwadi Party on two seats and to Rashtriya Janata Dal (RJD) on one seat. With the win on two Lok Sabha seats in Uttar Pradesh, SP's tally has gone up to seven from five in 2014. Meanwhile, despite the win in Bihar's Araria, the RJD tally remained at four.
The first by-poll shock for BJP came in from Madhya Pradesh's Ratlam constituency in November 2015. The BJP had won 27 of the 29 seats in the state in 2014. The by-poll on the parliamentary seat was necessitated after the death of sitting BJP MP Dileep Singh Bhuria. The Congress's Kantilal Bhuria won the seat against Dileep Singh Bhuria's daughter Nirmala.
Another setback for the BJP came from Punjab's Gurdaspur in 2017. The by-poll was necessitated after the death of sitting BJP MP and actor-turned-politician Vinod Khanna. Congress's Sunil Singh Jakhar, son of former Lok Sabha Speaker Balram Jakhar defeated BJP's Swaran Solaria in the constituency by over 1.90 lakh votes.
The Congress, which had lost in all the 25 seats in Rajasthan in 2014 polls, managed to make a comeback in the state early this year as it won the Lok Sabha by-polls in Alwar and Ajmer. The by-elections were necessitated by the death of BJP MPs Sanwarlal Jat (Ajmer) and Mahant Chand Nath Yogi (Alwar).
In the latest by election to Uttar Pradesh's Phulpur and Gorakhpur, the Samajwadi Party (SP) niminees defeated the BJP candidates by handsome margins. The polls were necessitated by the resignation of Gorakhpur MP Yogi Adityanath and Phulpur MP Keshav Prasad Maurya after they became Chief Minister and Deputy Chief Minister, respectively, of the state.
The BJP also lost in the by-election to Bihar's Araria Lok Sabha seat to its rival RJD. The polls were necessitated after the death of RJD MP Mohammad Taslimuddin last year. In Araria, there was a direct contest between Taslimuddin's son Sarfraz Alam and BJP's Pradip Singh.
However, it was not all loss for the BJP in the by-elections. It won the by-polls in Assam, Maharashtra and Madhya Pradesh.
In Assam's Lakhimpur, a poll was necessitated as the sitting MP Sarbananda Sonowal took over as the CM of the state after the party's win. The party retained the seat in the by-poll.
The BJP also won in Madhya Pradesh's Shahdol. The election was necessitated as veteran party leader Dalpat Singh Paraste passed away. The by-poll was held just days after demonetisation, when the country was in turmoil, seeking to adjust to the lack of cash in the system.
The BJP also won Vadodara, which has been its traditional stronghold seat. As Prime Minster Narendra Modi retained his Varanasi seat and resigned from Vadodara, BJP won the seat again easily.
BJP stalwart Gopinath Munde died in a road accident in June 2014 which led to the by-poll in Maharashtra's Beed. His daughter Pritam Munde easily retained the seat for the BJP.
The bypoll in Uttar Pradesh's Kairana is yet to be announced after the death of BJP MP Hukum Singh.