Except that poll was from June 2014, fifteen months before the actual election. They had another in October 2014 with the Liberals at 38, Conservatives at 34 and NDP at 18. Pretty close to the results. What does this mean? That in the end the campaign meant very little except that it confirmed the opinion that people had a year before. They wanted change and that meant a bigger rejection of Harper than in previous elections. So the question was which of the opposition parties would be the face of that change. And Canadians like Trudeau and voted for him and his Liberal Party. This result should not be a surprise as it was called a year before the election.
The Canadian system is unique as it is a very pure form of first past the post. This means with three strong parties the winner can have even less than 40% nationwide, as frequently happens. Looking at the fate of the NDP in Toronto where three very strong candidates, women all, were defeated by more than 20% reinforces the conflicting nature of the vote .. while the election is decided by 338 ridings, it is in fact a national election, modified by provincial conditions, that make the individual personalities of the candidates less important than they are in a race for Congress in the US.
I am sure there will continue to be some soul searching by the NDP as to why they could not build on their extraordinary performance in 2011. I have read quite a bit of criticism regarding the issue of taxes and spending, the face covering issue and revival of the Bloc in Quebec and the personality of the leader Tom Mulcair. In my opinion the biggest factor was the impression made a year ago that Canadians wanted the Liberals. An opinion not unusual from their past. In the US we were in awe of an election cycle that was so short ... 78 days. While the longest official run up to the poll in modern history ... the politicking and positioning of the parties operates on a permanent cycle in Canada just like the US. It is why Forum, and I am sure others, had the numbers right a year ago.