Sydney Pub Meet Now A Regular Feature

Photo of the Woolpack Hotel

Before the night was even over at our last pub meet people were asking when the next one would be so we’re making it a regular thing!

From now on, the last Tuesday of every month will feature the OpenAustralia Sydney Pub Meet. We’ve now got a fancy Meetup group set up so please join and RSVP if you can make our next meet on the 29th of July.

Once again we’ll be cosy by the fire of the Library room at the Woolpack Hotel, a short walk from Central station, where you can enjoy good pub food and craft beer.

See you there!

Don’t forget to join our Meetup group and RSVP: http://www.meetup.com/OpenAustralia-Foundation/events/194788272/

Posted in Announcement, Event | Tagged , , , , , , , , | Leave a comment

Sydney Pub Meet – 24th June 2014

Photo of The Library room

We’re having a Sydney pub meet on Tuesday the 24th of June 2014 and you’re invited.

Come along, say hi, and have a chat about open government, transparency, FOI, and civic hacking with us and friends. You can even get a sneak peek at our upcoming project.

We’ll be sitting by the fire in the cosy Library room of the Woolpack Hotel, which is a short walk from Central Station. There’s good pub food and craft beers on tap – join us at 6:30 PM (for 7 PM).

Please RSVP so we can make sure they have room for us. You can find all the details on the Eventbrite page.

See you Tuesday :)

Posted in Announcement, Event | Tagged , , , | Leave a comment

Parliamentary vote tracker project: A Case Study – Asylum Seeker Policy

This post is part of a series on our parliamentary vote tracker project. Read our previous post to learn more about the concept of policies and policy selection. You can also read our previous posts: a technical update and an introduction to what we’re doing and why.

Co-authored by Natasha Burrows.

Linda Planing Wood by Lester Public Library on Flickr

Specific wordings of policies have been an issue throughout the process of policy development. The one that springs to mind is our policy relating to asylum seekers. The problem here is exacerbated given the heightened politics surrounding the issue. Narrowing this policy down to something that is objective and can be measured has been quite difficult.

In a draft, the policy was written like this: For “a stronger system for asylum seekers arriving by boat”. This wording was borrowed from the UK Public Whip site. However, this way of phrasing the policy was flawed because both of the two main parties, Labor and the Coalition, broadly agree on the need to implement a “stronger system” with regards to asylum seekers arriving by boat. However in the last session of Parliament, the Coalition often voted against Labor’s measures for a stricter system, specifically in regards to the so-called Malaysia Solution. As a result of the phrasing of our policy, our data suggested that the Coalition was voting against a stricter system for asylum seekers arriving by boat. However in reality the Coalition was really just voting against Labor’s policies for a stricter system for asylum seekers, while at the same time proposing their own strict system.

The language has also been an issue. What exactly does a “strict system” entail? Our reasoning for keeping the language broad (and, admittedly undefined) with a word like strict was because asylum seeker policy for boat arrivals in Australia is quite broad. It comprises of issues relating to visas, mandatory detention and offshore processing. To narrow this down to only one specific component of asylum seeker policy risked making the policy too specific for the legislation that was presented to parliament. However broad language risked presenting issues and policies with a pseudo-political-correctness. In reality, developing a succinct, understandable and objective policy is much harder than we first imagined.

Ultimately, we decided to split the broader policy into four parts: “For greater scrutiny of detention centres”; “For offshore/regional processing of asylum seekers“; “For temporary protection visas“; and “For the Refugees Convention and Refugees Protocol“. So far this phrasing seems to be working.

Screen shot of example policy

Because our whole modus operandi is to increase openness in Parliament, it only makes sense for us to open up the processes by which we are doing this. We really do want as much feedback as possible.

Posted in Development, Projects, They Vote For You | Tagged , , , , , , , , , | Leave a comment

Parliamentary vote tracker project: The concept of policies and policy selection

This post is part of a series on our parliamentary vote tracker project. You can also read our previous posts: a technical update and an introduction to what we’re doing and why.

Apples and Oranges by Automania on Flickr

Advice from Richard Taylor has been a great anchor throughout the process of developing policies. This is that:

The first priority when creating new policies is that they should attempt to provide the public with information on voting behaviour that is intelligible and interesting to a wide range of users. The second priority should be that a reasonable, neutral observer would conclude that the language and topic contained in a the policy description was a fair representation of an MP’s voting behaviour, whatever side of the policy they end up on. The title and description of the policy can always be improved later.

For now we are continuing along, aware that the flaws that we have can indeed be improved later. We acknowledge the current flaws in our project and are looking for advice on how to improve them.

For now we have put together a patchwork of factors that we believe are important when defining a policy. These factors have been a checklist for us when deciding on a policy focus. These have included:

  • Issues that rank highly as concerns to Australians in polling data. For example Ipsos consistently ranks crime, cost of living, healthcare, education and asylum seekers as the top five concerns to Australians, so policies we have chosen engage with these concerns.
  • The focus on the issue in the media. While this has not been a deciding factor in policy selection, we have decided policies with an understanding of the coverage it is getting in the media. Often, however, we have been inspired to focus on issues that are not necessarily getting a whole lot of media coverage, for example ‘For Stronger Unions’.
  • Any potential impacts on the Constitution. For example, legislation introduced in the last sitting of the 43rd Parliament (2010-2013) had the potential to impact the Constitution, specifically how the relationship between the federal, state and local governments interact.
  • The turnout in Parliament, meaning how many representatives are present in Parliament during a division.
  • The number of rebellions in Parliament. A rebellion occurs when a representative votes crosses the floor to vote against the rest of their party.
Posted in Development, Projects, They Vote For You | Tagged , , , , , , , , , | Leave a comment

Parliamentary vote tracker project: what we are doing and why

Chamber Red and Notice Paper

Hello! Welcome to a series of posts about the OpenAustralia Foundation’s new conception, a parliamentary vote tracker. This project is based on the Public Whip, a site developed in the UK by Julian Todd and Francis Irving. The point of this project is to make the processes and procedures of parliament more accessible to the general public. Our project takes voting data from Hansard to see exactly how our MPs are voting on legislation.

In Australia we are truly lucky to have an established democracy. However, this system is not as open and accessible as it could and should be. Information about our politicians and how they represent us is freely available but the data is convoluted and too difficult to understand.  The language used in Parliament and copied into Hansard is often complicated, and the processes are too far removed from what is easily understood. One of our main goals in this project to make what happens in parliament – the debates, the votes and the proposed and passed legislation – more easily available to the public eye.

This is why we have been working on this project. Our end goal is for any member of the public to access our site and be able to see how a Member of Parliament or Senator votes on any number of issues. We are dissecting the votes in Parliament to make each division (or vote on a piece of legislation) easily understood. Our conception focuses on the context surrounding a piece of legislation, what the legislation actually proposes, the impact it has and the debate surrounding it in Parliament. We aim to be able to distil these votes down so that anybody can come to our site and understand exactly what each vote in Parliament really means.

We are narrowing these issues down to specific policies. Under this notion, a policy is a statement that you can objectively measure votes against. Most basically, policies are just a group of divisions (votes) in parliament. As a Research Assistant, my role is to look at these votes and develop policies by which to measure a Member of Parliament’s or Senator’s stance on an issue. A key aspect of this is keeping the language plain, which is something that Hansard is not.

Firstly, let’s get up to date on the lingo. A division is simply an official vote in parliament. For example, representatives may vote on a motion to read a bill for a second time (or, put another way, vote on a motion to agree with the main idea of a bill). Divisions are only called when there is not a clear indication of how many representatives either vote aye (yes) or no in relation to motions. This in and of itself is a problem with parliament – we only have data on controversial votes. Most of the legislation passed in Parliament does so without a division. This is because when there is bipartisan support on an issue it is clear that it will be passed and a division is not called.

A screenshot of divisions

Along the way we have spitballed, debated and drafted the best way to select and articulate what exactly our policies should be. Defining these policies and our method of selection has been one of the largest hurdles in the project so far. We are still deciding how best to address these concerns, and are really open to any feedback and advice you have, dear users of the internet.

Posted in Development, Projects, They Vote For You | Tagged , , , , , , , , , , , , , , , | Leave a comment

A long overdue tech update about Australia’s first ever parliamentary vote tracker

Photo of working on the project

Back in July last year Matthew told you that we’d started work on a new project and it’s high time for an update on the progress of that project. I want to share with you what we’ve been doing, where we’re at right now, and some exciting new development that we’re undertaking before we launch this pioneering project for all Australians.

The open source code for our vote tracking project is once again inherited from the UK. The great thing about this is that our parliamentary systems have a lot in common, at least on the surface. Dig a little deeper (and writing code to analyse parliamentary voting is certainly doing that!) and you find many subtle but crucially important differences.

These are the kinds of questions we’ve needed to answer and then represent in code:

  • Can MPs vote both aye and no as in the UK?
  • Can the speakers and their deputies vote? If so, under what circumstances? Are they representing their party when they vote?
  • Is there a way to actively abstain in the Federal Parliament?
  • Should tellers be included when tallying up votes?

A key part of this project is interpreting the data we’re analysing and making it easy to understand  – without a PhD in political science. To this end, we’ve been excited to have some political researchers on our project team. They too will be sharing some posts about the process they’ve gone through in the coming weeks.

Like our work on OpenAustralia.org, this work has uncovered a number of issues in the official record. Things like people voting when they aren’t MPs any more. As always we’ve sent these fixes to Parliament House to be corrected. By the way, this would be so much easier if they just had an open bug tracker :)

The code we inherited for this project was written by some brilliantly smart people but some of it is over a decade old and it wasn’t being actively developed. It’s a simple fact that over time complexity creeps in and technical debt builds up. This has lead to making some difficult decisions about how to move forward.

We’ve started work on a Rails port in an effort to strip back complexity in both the codebase and usability. We’re not rebuilders by nature so this was a decision that was not made lightly but we’re confident this will mean the project will have a brighter future.

We’re approaching this port carefully, in the same way Matthew did with PlanningAlerts. The PHP code still works and it’s built in such a way that the still active UK site could take advantage of our work and “upgrade” to this version.

To be able to present our best work possible there are still a small number of bugs to resolve. Once that’s done we’ll focus on getting the Rails port ready for launch. We don’t have a date right now but it should be within the next few months.

If you’d like to find our more you can see all the development live on GitHub (including those issues I imported recently, yay!). Please drop me an email if you’re interesting in getting early access and helping out. Also, don’t forget to keep an eye out for some really interesting posts from our political researchers in the coming weeks.

Posted in Development, Projects, They Vote For You | Tagged , , , , , , , , , , , , , , , | Leave a comment

Morph: Announcing A New Scraping Platform

Web scrapers could be called the unsung heroes of data liberation. They invisibly power so many websites including real estate search sites, product comparison sites and the ever familiar Google search engine.

Scraping is where you run a program to extract structured data from web pages.

Web scraping powers PlanningAlerts, which allows you to find out what’s being built and knocked down in your area. It works by running lots of scrapers to collect the development applications from nearly one hundred planning authority websites.

In fact our other projects OpenAustralia, ElectionLeaflets and RightToKnow depend in one way or another on scrapers too.

For some while we’ve been using a scraping platform, ScraperWiki Classic, to host most of our scrapers. The system took care of running them regularly and giving PlanningAlerts a nice API with which we can get the data.

Scrapers are a little different than other kinds of code. They are dependent on the page layout of a web page remaining consistent. If a website that is being scraped changes then the scraper needs adjusting. To make it easy to maintain scrapers we need an easy way to find out when things need adjusting and we need easy tools for multiple people to help fix things.

ScraperWiki would send us email alerts if any of our scrapers would break. It’s a tool that really served us well.

Unfortunately for the OpenAustralia Foundation, late last year ScraperWiki announced that they would be shutting down their ScraperWiki Classic service. For a while now most of their effort has gone into developing their new platform, which has gone hand in hand with a refocusing of the company’s efforts away from providing free services and towards its paid data science work. This is completely understandable but left me wondering what to do next.

This is what I wrote to Francis Irving, the CEO of ScraperWiki, about our dilemma.

As I’m sure you’re well aware the demise of ScraperWiki Classic has been a thing of great sadness for us. For us at least it hit a real sweet spot. The collaboration was great. Not having to host things was fabulous. The scraping happening whenever and the result being stored in an API accessible db was magical. Also, not having to trust that someone’s code edit will not nuke your server another bonus.

Thank you for everything!

And then on the question of what to do next.

We had a bit of panic at the end of last year when we thought it was shutting down in September and we had to move a heap of scrapers somewhere.

We had an internal scraping thing for PlanningAlerts which still has a bunch of scrapers running on it. Initially we were just going to move everything back there and figure out what to do next. It was a scary prospect having to go back to that because in the days when that was the only thing we used we never had a single scraper code contribution and that’s not pleasant when you have over 80 scrapers to maintain.

Introducing Morph

So just before Christmas I made the difficult decision to take on writing a new scraping platform. I wanted to make something which would be a replacement for ScraperWiki Classic but with a twist that puts a much greater emphasis on collaboration. I started building Morph.

Morph logo

It’s really exciting to be able to share this with you now!

Morph is built around GitHub. GitHub has become the de-facto way that open source software developers collaborate. They truly have nailed the solution with pull requests, their issue system, commenting on code, and social discovery through starring repositories and more.

It’s important to me to leverage those tools with Morph and integrate them very tightly so that Morph becomes a way of using Github but that’s specialised towards scrapers. I’ve made a start on that now and already we can see that it’s working.

The idea with Morph is to borrow the best of ScraperWiki Classic, merge it with the best of GitHub, and then build on top of that to really streamline the process of writing and running scrapers.

Writing and running a scraper yourself is something that any capable developer can do without Morph. With Morph it’s fun and easy.

How Does Morph Work?

A scraper on Morph is a Python, Ruby or PHP script that collects information from web pages and writes it to an SQLite database in its working directory. That’s it. What information the scraper collects, how it does that and how it writes to the database, that’s up to you.

The scraper code is kept in a repository on GitHub which is linked to the scraper on Morph.

You develop the scraper on your local machine and when you’re ready to run it you can test it on Morph with a special command line tool. When you’re happy you commit your change to git. The next time the scraper runs on Morph it picks up the latest code.

The resulting data is stored in a database that you can query through an API. Or you can just download all the data as JSON or as a CSV (you can import into a spreadsheet) or just download a whole binary SQLite database.

Data

JSON output

 

 

 

 

 

Morph will run your scrapers for you automatically if you want. It will email you if there are problems with your scrapers or someone else’s if you choose.

You get great visibility on what a scraper is doing

Melbourne scraper

Morph supports organisations. You can group a whole set of scrapers together in an organisation which multiple people have access to.

Organisations

If you’re a user of ScraperWiki Classic it couldn’t be easier to bring your scraper over to Morph.

Forking from ScraperWiki

You just put in the name of your scraper on ScraperWiki Classic and if the defaults are fine you just click the fork button. The code is put on Github (automatically tweaked for a few naming changes), the data is imported into Morph and in most cases the scraper will run fine without any changes at all! When we transferred 69 PlanningAlerts scrapers from ScraperWiki to Morph only 3 or 4 scrapers needed any changes.

Morph supports scrapers written Ruby, PHP and Python with the plan to support Javascript (and anything else enough people want)

So, please go ahead start using Morph!

https://morph.io

 

Morph Landing Page

 

And here’s your part of the deal. Please let us know what you think. Did it work well for you? Something that could be clearer? Let us know.

Keeping Morph going

OpenAustralia Foundation will be letting anyone run arbitrary code on our servers. This will take computing power and generate traffic. Because we’re paying for those servers and this is likely to need a lot of computing power this is not sustainable.

It is our intention to keep Morph free for most people; the casual user who has a few scrapers that are pretty lightweight. Morph should be an incredibly useful tool that they can depend on.

For the heavy users we will be bringing in paid plans that pay for continued development and the serious server infrastructure that will be needed.

If there is need for it we also intend to support private scrapers which will be under a paid plan as well.

What next for Morph?

There are of course many possibilities.

We’d like to make scraping more accessible so it doesn’t even require writing code. One approach to that would be to write a very high level scraping library that can cover 90% of situations but isn’t really like programming at all. It describes the fields, how multiple pages are navigated and it does the rest.

Then, we create a user-interface that allows you to pick fields from any website that you would like to extract. Behind the scenes it turns that into some code that uses our high level scraping library. If something more complicated needs to get done the existing generated code can be used as a starting point.

The vision there is that Morph maintains all its power and flexibility for the experienced programmer and allows a non-programmer to scrape just as well as the programmer for the common situations.

We’re particularly excited about the possibilities here for making data journalism more accessible to all journalists not just the ones that know how to program. In fact we’ve applied to the Walkley Grants for Innovation in Journalism for funding to pursue this idea.

We’d also like to continue to relentlessly pursue ease of use and design features to increase collaboration.

Enough of what we want it to do. The most important thing is what do you want for the future?

Let us know either by emailing us or even better if you put it up at  https://github.com/openaustralia/morph/issues

Posted in Announcement, Morph | Tagged , , , , , , | 1 Response

Easier collaboration for OpenAustralia Foundation projects

the Baracktocat

It should be simple for anyone to get involved in helping create an OpenAustralia Foundation project. After all, that’s what our projects seek to do to our democracy – make it really easy to get involved.

Today we’ve made a solid step in that direction. We’ve moved our entire issue tracking system to GitHub Issues. This may sound pretty boring or technical but every step that lowers a barrier to entry is important.

If you were put off by our complex issue tracker or found it too confusing before, maybe now is the time to try getting involved again. It’s such a rewarding way to get involved in Australia’s democracy and a seemingly small contribution can have a big impact.

I’ve posted some of the technical details of the move to the mailing list. Here’s where our projects live on GitHub:

I’m really looking forward to working together using GitHub. Why not dive in and open an issue, or better yet send us a pull request!

Cheers,

Henare
OpenAustralia Foundation volunteer and GitHub lover

Posted in Development, ElectionLeaflets.org.au, OpenAustralia Foundation, OpenAustralia.org, PlanningAlerts.org.au, Projects, RightToKnow.org.au | Tagged , , , , | Leave a comment

An experiment in visualising preferences

Employee with slide rule, Hercules Powder Co. Experiment Station, Wilmington, DE

A little over a week ago the Australian Electoral Commission (AEC) published the preference tickets for the Federal election. Every party has to lodge with the AEC how they would like their votes to be distributed for people that vote above the line in the Senate.

Of course, this is of fascination to political insiders, because preference flows can make the difference between winning and losing a seat. But to normal people, it’s virtually meaningless.

My guess is if you’re the kind of person that would look at how the parties are selecting their preferences you’re also the kind of person who might vote below the line. If all seems like it’s too geeky and too complicated, then voting above the line is the way to go and you’re leaving it to trust that something sensible happens with your voting preferences.

For the first time this year, on Sunday, I found myself looking through the preference tickets. I wanted to check for myself what people on Twitter were saying about how the Wikileaks party had preferenced.

You’re confronted by pages and pages of boxes with numbers. Here’s just one of 105 pages showing part of the Carers Alliance ticket and this just for New South Wales.

ticket

Something really struck me. This is an invaluable source of information, yet it’s almost completely indecipherable. There are so many candidates and parties. So many relationships between parties, both public and hidden but in these preferencing arrangements it’s all there. It’s just a matter of squeezing some meaning from these pages and pages of boxes with numbers.

I was reminded of the Eurovision Song contest.

Eurovision isn’t really about songs. Well maybe it is. No, it is about songs, but who wins and which countries vote for which other countries seems to have very little to do with the songs. It’s a fascinating insight into the shifting relationships between european neighbours, that mixture of politics and geography.

Something I’ve been wanting to do for years, but never quite managed to find the time to do is to analyse the voting behaviour and visualise the result in a very specific way. The idea is as follows. You look at how one country votes for another country. You use that vote to create some measure of “distance” between the countries. In this case, the higher the score they give each other, the lower the distance between the two countries. Then, with the distance data, would it be possible to create a new “geopolitical” map of Europe? It would show the countries arranged so that the distances between them map to the distances calculated from the Eurovision Song contest scores.

Where else do you get to see every country voting on every other country. That is such a rich data set.

You only have to look at Turkey’s chequered Eurovision history, including minor scuffles with Greece to see this happening.

How would this geopolitical map compare the physical, normal map of Europe?

How would this map change over time?

I think this would be fascinating to look at. I hope I’ll get there one day (unless someone’s done it already, of course!)

The Setup

Back to Australia. What if we applied the same idea to the voting preference data?

We can create a map that shows the relationship between parties. Parties that are close on the map have preferenced each other above those that are further away.

At this point I’ll get into some nitty gritty of how I went about getting the data and transforming into a form where it could be used to generate a map. We’ll start with a simplified example so you can follow through the reasoning. The punchline comes towards the end of the post when we apply the technique to the real data.

First off a big thank you to Benno Rice, from belowtheline.org.au, who has already done the job of gathering the vote preferencing data from the AEC and republishing it in a sane digital format.

If you haven’t yet looked at his site, please do. It’s really important. It makes it much easier to vote below the line by allowing you to reorder the candidates in your browser and then print out a personal PDF with your choices that you take with you to the ballot box.

Let’s first dive in with some made up data and a simplified situation. So, let’s for the time being ignore the fact that groups, which can consist of multiple parties, preference individual candidates. Let’s just say that parties preference other parties.

Say you have four parties A, B, C and D that have preferenced other parties as follows:

Position A B C D
0 A B C D
1 C C A C
2 B A B A
3 D D D B

(table 1)

In each case the party has preferenced their own party first. No surprises there.

Our goal is to assign “distances” between each party based on their preferences. Party A has a preference order of A, C, B, D. The first party A, we’ll assign a distance of 0. The second party C a distance of 1 away from A.

Following that through with each pair of parties and arranging that in a new table we get the following:

distances A B C D
A 0 2 1 2
B 2 0 2 3
C 1 1 0 1
D 3 3 3 0

(table 2)

There’s one last thing we need to do to make this table work. That matrix should be symmetric. In other words, the distance from B to C should be the same as the distance from C to B. That’s how real distances work so we need our measure of distance to do the same.

Ideally it would be great if we could tweak the distance numbers so that the matrix becomes symmetric and we keep the absolute ordering of the items in the list.I couldn’t figure out an easy way of doing this. So, instead I opted to do the dumb thing which is just average the two distances, which for the matrix means taking the matrix above and averaging with its transpose. That will give a symmetric matrix.

What that means intuitively is that the distance between two parties is equally affected by the relationship in each direction.

symmetric distances A B C D
A 0 2 1 2.5
B 2 0 1.5 3
C 1 1.5 0 2
D 2.5 3 2 0

(table 3)

Phew. Nearly there.

So, now how do we find points given the distances between them? I’ve known about a bunch of ways of solving this for a while but I found a new one in the course of looking at this and it’s already implemented in the R statistics package. The technique is called multidimensional scaling (MDS) and essence what it does is find points (in a given dimensional space) that overall best match the given distances between them.

There are a few variants of the method. The most important distinction is between metric and non-metric multidimensional scaling. Metric MDS tries to fit the distances as best it can, treating the distances as the exact distances it’s trying to fit. Non-metric MDS just tries to maintain the order of the distances. In our case, we’ve made the distances up based on an order in a preference ticket. So, non-metric MDS is the obvious choice.

There’s an infinite number of solutions that are just translated or rotated versions, but we’re just interested in finding one.

Example result

What’s fabulous about this is that it’s turned a bunch of abstract numbers on preference tickets into something tangible and comprehensible. You can now see the relationship between the parties.

Right away you can see the importance of party C. It’s being highly preferenced by the other parties. Of course, you can easily see that from the table. We’re just demonstrating a point here.

Look at the preferencing between parties C and D. From table 1 you can see that party C is preferencing D last while party D is preferencing C first. Remarkably this can be seen in the calculated layout of the parties. D is the furthest away from C while the situation is very different for D where C is the closest of the parties because it’s sitting there on its own out on the right.

To really have confidence that this makes sense, let’s go back and figure out the preference tickets from the coordinates of the parties that we’ve calculated. This is just a consistency check.

First thing, using the calculated coordinates we calculate the matrix of distances between the points.

fitted distance A B C D
A 0 1.7 0.7 2.6
B 1.7 0 1.2 3.0
C 0.7 1.2 0 2.2
D 2.6 3.0 2.2 0

(table 4)

This matches up reasonably well with table 3. Since we’re using non-metric multidimensional scaling we wouldn’t actually expect this to be the same. Now given those distances what would the preference tickets look like with each party voting for the other parties in order of how far away they are?

A B C D
A B C D
C C A C
B A B A
D D D B

(table 5)

And you know this is exactly the same as table 1. That means this has worked. Woohoo!

Applying this to the real data

The real world Senate preferencing data is of course more complicated than the simplified situation we just went through.

  1. Not every candidate is a member of a party
  2. A group might have several independents or parties in it
  3. Groups preference candidates not parties
  4. A group can lodge several tickets

The first one is pretty easy to deal with. We’ll just completely ignore independents. We’ll effectively remove them from the preference ticket before we do any of the other calculations.

2. only happens with the coalition. So, there we treat all the parties that are members of the coalition as being members of the “coalition” party.

3. is a little more complex. Say a party (A) preferences candidates as follows:

Position Candidate Party
0 Alice A
1 Bob A
2 Carol B
3 Dan C
4 Eve B
5 Frank D

(table 6)

Their parties are shown in brackets. I started off by taking the average position for each party. In this case that would be:

Distance (from Average Position) Party
0.5 A
3 B
3 C
5 D

(table 7)

But doing this has a couple of problem. First if a party has multiple candidates that it puts first then it will end up with a non-zero distance to itself. Not good. The second issue is that the number of candidates in a party will affect the overall distances. The more candidates the further away it will be.

A better approach is to only consider the highest preferenced candidate for each party. That gives the following positions. The number of candidates makes no difference to the distances

Distance (from first position) Party
0 A
1 B
2 C
3 D

(table 8)

Issue 4. is handled by simply averaging between the multiple tickets.

The Results (The Reveal)

Using the ideas from the last section, the data from the AEC via belowtheline.org.au and some Ruby scripts for munging the data and calculating the distances we can see the party relationship for each State and Territory.

nsw

You can see three distinct clusterings. The top which consists of the Coalition, Katter’s Australian Party, Palmer United Party; the right hand side which consist of the ALP, Greens, Socialist Alliance, Pirate Party and Wikileaks; The rest in an arc around the bottom are largely single-issue parties.

There’s a noticeable crescent shaped left hand arc. It’s almost as if the parties in this arc are defining themselves to a large extent by their opposition to the group in the centre of the arc.

There are definite clustering of socially conservative right, libertarian right, socially conservative left and libertarian left but it would be simple-minded to suggest that the layout is following that simple categorisation. You can see surprising relationships. I would be interested to hear from people with more knowledge than myself of the minor parties what this shows.

I also can’t help notice that the Voluntary Euthanasia party is very close to the Stable Population Party.

It’s important to remember not to place any meaning on the absolute distances between parties. All that matters and all that is meaningful is the relative distances, i.e. whether one party is further away than another party. If a party is twice the distance away as another party that does not mean that is half as closely connected. All you can say is that it is less connected.

Let’s do the same for the other States and Territories
Posted in Development | Tagged , , , | 4 Responses

This Is Not An Election Leaflet – 2013 Federal Election Edition

This year, like we did during the 2010 Federal Election, we have made an election leaflet which is not an election leaflet. We’ll be sending these out to let people know about ElectionLeaflets.org.au and encourage them to upload the election leaflets they receive in the mail to the site. Every election leaflet uploaded helps make this a fairer election!

This year, the wonderful, Walkley award winning cartoonist firstdogonthemoon has contributed a cartoon.

This is not an election leaflet

We’ll have more to say a little later today about the surprising turn of events with printing and distributing these leaflets. In the meantime, we’d love you to print out some leaflets and share with your neighbours, because you never know, they may be getting leaflets you’re not.

Posted in ElectionLeaflets.org.au | Tagged , , , , , | Leave a comment