On the 4th of October 2019, the Portuguese citizens went the polls to elect the 230 deputies that would represent them in the Parliament for the next 4 years term. 4.603 candidates were running for those seats, but very few citizens knew who they were.
Using public data, interviews and some crowdsourcing directly from the political parties, we were able to gather a complete picture of the 4.603 candidates, thus enabling the electorate to get to know who they were voting for, using filters such as constituency, gender, work experience or if they have children.
One month before the 4th of October election, all parties were already campaigning on the streets trying to convince everyone that they deserved their votes, but it was impossible to know who was running.
In an electoral system where people elect 230 deputies distributed among the country’, twenty-two constituencies, all the 21 parties running had to present 230 names. But right up to mid-September, everybody was dependent on the parties’ propaganda machine to know who were those names.
Aware that many people didn’t even knew the name or the face of the 21 parties number one candidate running for their constituency, we built a news app, with faceted search capabilities, that allowed citizens to filter for constituencies, parties, name, gender, if it had already been elected and more personal information such as age, marital status, education or work experience.
The tool also allowed readers to get to know details such as their social media profiles, among other particularities.
All the data, collected from many sources, including a questionnaire sent to the parties. Even though it wasn’t possible to get all the data for all the candidates, this was one of the most visited and shared pieces we did for the elections.
This was the type of project that required technical flexibility. Since we used Google Forms to ask for the parties to give us the details about the MP candidates, we used Google Sheets and a Node.js server, so everyone working on the project could collaborate in the editing of the database and serve an API with all the data we were able to fetch about that person.
We used R for some initial data cleaning. Because we wanted to get the most out of the people answering the questions, we created some open fields that required some cleaning. For example, we didn’t want the people to feel their profession didn’t fit on any of those categories, so we left it as an open field. We used R to unify those fields.
Using Vue.js we then created the news app that allowed our readers to easily filter the database. We also created a system that enabled direct links to any filtered state, using URL hash updates that preserve filter state and link to filtered views and to specific candidates – all client-side and static. This way, people were able to share with friends a specific filter (ex: all candidates that are businessman) or even a specific card about one person), that transformed one website to over tens of thousands of possible personalized social objects to be shared.
What was the hardest part of this project?
Getting information about 4.603 candidates was not an easy task. Because the government didn’t want to release the names of all candidates, the job was a race against time. We started a collaborative effort among everyone in the newsroom to get information from the candidates that reporters knew, but also to fact-check the information provided by the survey respondents.
But the fact that we had information on 4.603 people paid off. On the elections night, we were able to produce another article, easily characterizing statistically the Portuguese parliament — average age, gender balance, and even most common names.
What can others learn from this project?
The mission to collect personal and professional data for 4.603 candidates sounded like an impossible mission. But the fact that the data team ended up using Google sheets, a familiar and easy to use tool for everyone in the newsroom made it possible to effortless crowdsource the data.