

Show HN: Elect.io, my side-project that provides objective candidate information - tmcneal
http://www.elect.io

======
tmcneal
Elect.io is a side-project I've been working on for the past few months, and
is my attempt at providing a tool for voters in the U.S. to learn more about
the candidates that are running for office in their area.

In addition to providing basic candidate bio information, when possible I also
provide details on what issues a candidate supports or opposes. I calculate
each position programatically using the following data:

\- Special Interest Group ratings for this particular candidate. i.e. the NRA
may give a candidate a score of 90 out of 100 in the year 2007 for the
candidate's position on gun rights issues.

\- The bias of the Special Interest Group i.e. the NRA strongly supports
issues related to the preserving of Second Amendment privledges.

These ratings are then weighted by year (more recent ratings have greater
weight) and run through an algorithm to determine a candidate's calculated
"position" for each issue.

~~~
nhebb
> Second Amendment privledges

The Bill of Rights are privileges? I thought they were, um, rights. As far as
I'm concerned, you could throw all the guns in the world in the ocean, but if
your site is to be unbiased your terminology should be too.

------
JunkDNA
I've wanted something like this for a while. It takes a lot of effort to find
info about candidates that are less well known.

A couple of comments:

\- I find the use of checkmarks and "X" to be a little too simple, since
you're calculating this stuff based on an algorithm. It might be better to
devise some sort of little visualization (a small pie chart, thermometer,
etc...) to show me the actual score in addition to the "X" or "check". This is
useful to identify situations where a politician is deliberately waffling on
an issue. For example, my own congressman has a twisted history with respect
to "Card Check". The algorithm shows this, but I have to click into the
checkmark to see his score is 75/100.

-It's hard not to introduce bias in the phrasing of issues (I don't have a good solution for this). For example, I'm sure some would take issue if you had labeled the abortion issue "pro-life" vs. the current "pro-choice" (conversely, I'm sure some take issue with the current use of "pro-choice" as a category). About the only (not great) solution I can offer for this is to show both labels and give a score (as mentioned above). Civil liberties is another. Just because the ACLU doesn't like a candidate, doesn't mean they're a knuckle-dragging, sexist, racist, homophobe.

-There's the potential for subtle incumbent bias by letting the candidates with the most information drive the display. If one candidate is better known, the vast majority of the categories are driven by that candidate and it has the effect of making the other candidates look like they don't have positions on those issues (when in fact, the info is probably just not as readily available). Again, I don't have a really good solution for this issue either, but detecting extreme cases and really calling it out to the user is probably the best way to mitigate this.

------
tptacek
Unreasonably hard to pull up "Chicago"; your search didn't accept a Chicago
zip code, the name "Chicago", or "Chicago, IL". Instead, I had to select
"Chicago" from a list of every city in the entire state of Illinois.

Any UI decision that involves selecting from a list of every city in a state
is a bad UI decision.

~~~
27182818284
I think the zip lookup is broken in general. I tried zips for places with a
population of 90K and 1M and neither of those worked either.

~~~
tmcneal
Yep you're right. I'm using Geonames' free postal code search, and
unfortunately I went over the quota around midday today, so searches stopped
working after that point.

I'm going to look into purchasing their paid service, but in the meantime I
modified the code to only accept zipcodes and bypass the geonames web service
call.

------
slashcom
That's quite clever. I'm impressed at how you can composite fairly objective
views from special interest groups.

As mentioned by others, you seem to have a (lack of) data issue. Perhaps you
could also work with public voting records (<http://www.votesmart.org/>) to
help mitigate that.

------
genieyclo
Curious about what you're using for your data sources; Wikipedia?
OpenCongress? Check out Sunlight Labs API for Congress if you haven't already:
<[http://services.sunlightlabs.com/docs/Sunlight_Congress_API/...](http://services.sunlightlabs.com/docs/Sunlight_Congress_API/>).

~~~
tmcneal
I'm using data from Project Votesmart
(<http://www.votesmart.org/services_api.php>). At one point I planned on also
using data from OpenCongress and OpenSecrets.org, but that functionality
didn't make the cut for the initial launch.

Thanks for the link to Sunlight Labs, I'll check it out.

------
slater
It's dead, Jim?

Hitting enter after entering my ZIP code gives me:

Traceback (most recent call last): File
"/base/python_runtime/python_lib/versions/1/google/appengine/ext/webapp/__init__.py",
line 513, in __call__ handler.post(*groups) File
"/base/data/home/apps/codeablepolitics/1.344842764317514643/controllers.py",
line 66, in post geonames_results = geonames.zipcode_search(query, 1) File
"/base/data/home/apps/codeablepolitics/1.344842764317514643/utils/geonames.py",
line 26, in zipcode_search if len(web_service_response['postalCodes']) == 0:
KeyError: 'postalCodes'

Also: add this on the ZIP code input box: onfocus="this.value=''"

~~~
tmcneal
Thank you for the feedback.

The search functionality makes a call out to Geonames.org to get location
data, and unfortunately I hit the quota for more free account. I'm going to
purchase premium service with a higher quota, but in the meantime I modified
the search to only accept zipcodes, which will not require a call to geonames.

------
limmeau
Have you also considered a mode in which the website first asks the user about
his agreement with a series of political statements, and then offers the best-
matching candidates?

(In Germany, there's Wahl-o-Mat which operates like that)

------
wccrawford
[http://www.elect.io/elections/Orlando+FL-32899/chief-
financi...](http://www.elect.io/elections/Orlando+FL-32899/chief-financial-
officer) \- Error.

Most of the pages in my area only have positional data on 1 candidate. Some
have no info at all, or only 'gun rights'.

Until it's got more info, I can't see it being very useful.

Also, without references as to why the system thinks they have that position,
I can't easily double-check. That means I end up doing most of the same work
I'd have done anyhow before voting.

~~~
tmcneal
Thanks for the feedback.

You can view details on how I calculate each position by clicking on the
position's 'check' or 'x' image. Doing so will open a modal dialog provide
that displays detailed information in both a graph and table view.

Getting additional position data is one of my top priorities in the next week
or so. The first additional subset of data I plan on using is the Political
Courage Tests from Project Votesmart
(<http://www.votesmart.org/npat_about.php>). With this data, I should be able
to provide positional information on 40-50% of all Congressional candidates,
including Independents.

Finding this same data for regional candidates will be tougher. I am thinking
of providing some alternate information for these candidates, such as a
Twitter feed or RSS feed.

Also thanks for reporting the error. I will look into it today.

------
swah
First line says "Abortion issues: Pro-choice"

Now, putting it like that already causes a bias in the reader, the opposite
bias that "Pro-life: YES,NO" would cause, of course.

My point being: is very prepotent to say your site provides objective
information. And you're probably pro-choice, right?

~~~
i80and
I see "Abortion issues: Pro-life", so that has been accounted for somehow. I
would be interested in knowing how it decides which version to show. There
does seem to be a bias towards evaluating as true as much as possible in that
bullet point.

Not ideal, of course. But if you're bound to simple booleans, there's not much
more you can do.

------
duck
I like the sound of this app, but it doesn't seem to work with IE7 at all. I
tried searching for my state and it gave an error and if I try to pick the
state I see the select a city briefly appear and then it disappears.

~~~
tmcneal
Thank you for reporting this. I tested in IE8, Chrome, Safari, Firefox, and
Opera, but it looks like I should have also tested in IE6 and IE7.

I will address this issue tonight.

------
swah
How does one guarantee that a site provides objective candidate information?

------
27182818284
I'm not sure about your color choices. It is just hard for my eyes to focus. I
mean I can read it, but I can feel an extra one or two mississippi before my
eyes really lock in.

------
michael_h
Not looking so good on a netbook when you have 5 candidates:
<http://imgur.com/iep9S.png>

~~~
tmcneal
Ooh, yuck. I'll look into that issue. Thanks for reporting it.

------
m0th87
The select a location does not render properly on iPhone. The cities list cuts
off.

