The primary data
Transcripts of the House of Representatives and the Senate are published online as Hansard. These record the votes that Members and Senators make in parliament.
This data is compiled and made available via the OpenAustralia Foundation’s They Vote For You API, which provides machine-readable data about how individual Members and Senators have voted on issues (a group of related bills). You can read more about how they collect and collate this primary data on the OpenAustralia Foundation’s They Vote For You FAQ page.
Our compiled data
We have taken the OpenAustralia Foundation data and applied some fancy JavaScript (Node.js) to work out how political parties have voted on issues, rather than just individual Members and Senators. The resulting data file shows how much each political party (or independent) is in agreement with a particular issue out of 5
(strongly disagree, disagree, equal merits, agree, strongly agree).
We have published our source code for this under the Open Database Licence, which you can download on Github.
Our polling questions
Before we prepare our questions, we select issues from the compiled data which meet several criteria, including:
- whether the issue has had recent activity in parliament
- whether the issue has sufficient data in terms of number of bills and party representation
- whether the subject matter is better covered by another issue in the data
Once we have filtered the issues down using this criteria, we write propositions which summarise the issue and which ultimately become the questions used in the assessment.
Calculating question scores
You’ll recall we already know how each party or indepdenent has voted on an issue in parliament. We also maintain a data set for parties and independents who have never had parliamentary representation (read more here). You’re now asked to indicate how strongly you agree or disagree with a proposition.
The answer you give attributes 0
points to parties on the node furthest to your answer. Parties are then given +1
point for each node up to the matching node, with points distributed evenly either side of the node. This kind of calculation is described in mathematics as the taxicab metric or Manhattan distance.
This means if you Strongly Disagree with a proposition, you’re allocating 4
points to parties matching that answer, but also 3
points to parties matching the Disagree answer, and so on down to 0
points for Strongly Agree.
If you indicate that an issue is ‘extremely important’, scores are counted at 10x
the value of a normal issue. If you choose to provide No Answer to a proposition, no score is counted for any parties for that issue.
At the end of the assessment, you have allocated points to every party, based on how they have voted, for every issue they have participated in.
Calculating final results
We now add all of the scores you’ve allocated together for each party, as well as the possible points that they could have earned. To calculate the final results, we apply the formula:
Party's total score / Total possible points = % Match
.
We finally run a function to combine the scores for parties which have merged or renamed, and then filter the results down to your state/electorate to generate a personalised how2vote card just for you.