First, I will talk about the constituency I live. Here most of the upper caste and middle class population seem to be supporting BJP.
This was before the declaration of candidates. Once the candidate gets declared, the first shocker comes.
They are all speaking the same thing but they won't vote as per their claims of support. The biggest population among Upper Castes* here is that of Brahmins and there is visible [very strong] discontent that neither BJP nor Congress now have any statewide Brahmin leader.
So when Congress fields a Brahmin, suddenly you get to know that the mood has changed. The Brahmins would vote for him, despite supporting BJP or the Chief Minister or the Prime Ministerial candidate. This is just one of the factors which Opinion Polls can't gauge.
Even many of the Muslims praise ruling BJP and its schemes apart from its success in keeping communal riots under check. But many of them would vote for other parties including Congress, Samajwadi Party (SP) and Bahujan Samaj Party (BSP).
When a BSP fielded a Kayastha candidate, all the Kayasthas en-bloc voted for him, though the community in the area was otherwise solidly behind BJP. People in India are smart in a different way. They don't speak up. They are not like Americans who are openly liberal or democrat.
People don't often disclose their preference
Here, people hide, conceal, even lie. Sometimes the change of heart comes after declaration of candidate and sometimes just 24 hrs before the voting. Take another example. In Lok Sabha, the main fight was between BJP and Congress.
Even a day ago, the wind was blowing that certain caste groups or sections would vote for one party and the remaining for other. But what happened on the day of voting. Suddenly, the workers handling the booth management appeared anxious.
From Congress camp, there were signs of worry. The BJP activists were now happy. Reason was that a third candidate, a Muslim who had been fielded on a BSP ticket, was cornering nearly 95,000 votes! In process, he wrecked the chances of Congress candidate.
Last-minute mobilization, local issues or anger against candidate
Who would have imagined it? He got Dalit votes and also Muslim votes. Neither Congress nor poll surveyors had sensed anything. It was not wave. It was last-minute decision. How it happened? It happens in Indian democracy.
Voter doesn't expect personal favour and has just one right. The ordinary man, poor know when to teach an 'arrogant' politician a lesson. They do it. The same happened in Uttar Pradesh polls. The pre-poll surveys said SP would get 140-150 seats but when results came, it had got 224 seats.
Now what's the margin of error? More than 50%. The BSP's voter in cities often says that he will vote for Congress or BJP. Similarly, SP's voter does it also though he may vote for SP. For two decades, the pro-urban bias is reason that these parties always get less seats in opinion polls.
Apart from this, local factors, the accessibility of politician and his really poor performance are reasons that committed party voter even goes against his heart, and votes against him. Further, polls are urban-centric. The surveys are mostly in cities.
Urban-rural divide, failure to take into account mood in far-flung areas
In rural areas, situation is vastly different. In city, there may be good roads, power and even basic amenities. But do the pollsters go to rural areas and ask the voter. Far from going to villages, these pollsters don't even go to towns [qasbahs].
Majority of people still live in rural India. In such places, often anti-incumbency may work or may not. If the party and CM has done good, but MLA is seen as a man who only benefited his family or kin, there can a mobilisation among electorate to defeat him.
Otherwise, even wave against ruling party may not work, if legislator or Member of Parliament (MP) has done good job. In certain places, there is no road or even a bridge despite demand for five years. In this case, the MLA or MP has to face the anger, come what may the party or CM's goodwill is.
Yet another fact. TV channel walas may claim again and again that there mathematical formula is correct despite the small sample size of 5,000 or 30,000 [to predict mood of 10 million or 100 million], the reality is that in multi-cornered [4-5 candidates' fight], their mathematics just can't work.
When feedbacks forms are filled from selected localities or fudged
There is also making a passing remark that it was conducted by an agency [so that complete onus is not on channel] and that there is a margin of error. By the time elections get over, people don't remember what exactly were the numbers predicted by particular channel.
The so-called team used to get feedback also go the easy way. Many feedback forms are filled by themselves. That's the normal way how things happen. They go to closes places. A few main markets, a few colleges and on the basis of the trend, fill the remaining forms also.
These things happen across India. So when any TV channel tells you that they have done great work and that their opinion poll was perfect and reflects the situation on the ground, just take it with a pinch of salt. After all, we know it. Don't we!!!
So enjoy the Opinion polls. Do hear what the professional 'psephologists' have to say as these programmes are interesting. But don't believe them completely. Do keep a record and let's check when the electorate gives the verdict.
[*If there are 15% Upper Castes--majority among them being Brahmins, who are nearly 10%. Imagine, what the unexpected shift can do in a contest if a 'Sharma Ji' is fielded. That'll make a 20% difference in calculation. These local factors don't reflect in polls. The exit polls or opinion polls work when there is a clear wave, not otherwise]