1. Foie gras, Turkish baths and machine guns: the strange world of local government procurement

    Local government has a need for all kinds of services, from taxis to stationery. And to ensure that they get the best deals, they acquire them through a procurement process—one that, as suppliers of software to councils, we’ve become very familiar with ourselves.

    It’s quite simple: every category of goods or services has its own ID number. You identify the ones that are closest to what you provide—so in our case, it might be software development, software consultancy, and the provision of software packages.

    Then you sign up to receive notifications every time a council puts out a request for tenders that fall within one of those categories.

    Our newest team member, Camilla, has been spending a lot of time signing up for these notifications across all the various platforms in the UK (buy her a drink if you see her: procurement websites might just be amongst the most infuriating and clunky known to man), and as a result, she’s noticed that as well as all the categories you’d expect, there are also plenty more that you wouldn’t.

    For example, who knew that councils had such a regular need for

    15112310 Foie gras

    or indeed

    18318000 Nightwear
    98331000 Turkish bath services
    18511100 Diamonds
    14523400 Platinum
    16710000 Pedestrian-controlled agricultural tractors

    Then there’s

    35321100 Hand guns

    and as if that’s not enough…

    35321300 Machine guns

    There are plenty more categories that might make you go ‘hmm’ – take a look for yourself.

    Oh, and here’s a thought – if you’d like to ask your own local council what their expenditure is on nightwear, foie gras or machine guns, you can do so very easily at our own WhatDoTheyKnow.com.

    Image: Dynamosquito (CC)

  2. YourNextMP was huge – and it ain’t over yet

    As you’ll know if you’re a regular reader of this blog, YourNextMP crowd-sourced details of every candidate who stood in the UK general election.

    But, just because our own election is over, doesn’t mean we’ll be letting YourNextMP gather dust. On the contrary—we want to see it being re-used wherever there are elections being held, and citizens needing information! We’re already seeing the first re-use case, and we’d love to see more.

    Opening up data

    YourNextMP’s main purpose was to provide a free, open database of candidates, so that anyone who wanted to could build their own tools on top of it, and it was very successful with that aim.

    We heard of more than twenty projects which used the data, some small scale operations built by a single developer, some big names such as Google, and national newspapers like the Guardian.

    The traditional source of candidate data for such projects has been through expensive private providers, not least because the official candidate lists are published just a few days before the election.

    Thanks to YourNextMP’s wonderful crowd-sourcing and triple-checking volunteers, we reckon that we had the most complete, most accurate data, the earliest. And it was free.

    Directly informing over a million citizens

    YourNextMP also came into its own as a direct source of information for the UK’s electorate. This hadn’t been the priority when the project was launched, but it was helped greatly by the fact that constituency and candidate pages ranked very highly in search engines from early on, so anyone searching for their local candidates found the site easily.

    Once they did so, they found a list of everyone standing in their constituency, together with contact details, links to their online profiles such as web pages, social media and party websites, and feeds from spin-off projects (themselves built on YourNextMP data) such as electionleaflets.org and electionmentions.com.

    YourNextMP had more than a million unique users. In the weeks just prior to the UK general election, it was attracting approximately 20,000 visitors per day, and on the day before the election, May 6th, there was suddenly a massive surge: that day the site was visited by nearly 160,000 people.

    So, in a nutshell: YourNextMP has not only enabled a bunch of projects which helped people become more informed before our election—it also directly informed over a million citizens.

    A reusable codebase

    YourNextMP was built on Poplus Components as a Democracy Club project: PopIt (for storing the candidates’ names) and MapIt (for matching users’ postcodes with their constituencies).

    And, in the spirit of Poplus, the codebase is open for anyone to re-use in any country.

    It’s already being pressed into use for the upcoming elections in Argentina, and we hope that developers in many other countries will use it to inform citizens, and inspire great web tools for the electorate, when their own elections come around.

    If that’s something that interests you, please come and talk, ask questions and find out what’s involved, over on the Democracy Club mailing list.

    Image: KayVee (CC)

  3. Ten ways to promote Alaveteli sites

    No matter where you are in the world, if you run a Freedom of Information site, you’ll come up against one common issue: how to get people to use it.

    It’s not just the usual hurdle that any new website faces, of getting publicity. There’s often a lack of knowledge among the general population about the whole concept of Freedom of Information, and the rights that come with it. Not only do users have to know about the site, but they have to understand why it might be useful for them.

    The Freedom of Information conference, AlaveteliCon, was a great place to share ideas on how best to counter that. Here are ten strategies you can put into place right now.

    1. Make FOI concrete

    Freedom of Information can be rather an abstract concept to the average person, so your tweets, blog posts and press releases might not be getting through to them.

    Instead of asking people ‘what would you ask under the FOI act?’ or ‘Isn’t freedom of information a valuable right?’, try asking more concrete questions like ‘what would you like to know about government spending?’ or ‘if you could ask one question about nuclear defence, what would it be?’

    You might make a cheap, fun and informative video by going out onto the street and asking such pre-prepared questions to passers-by.

    2. Use SEO to your advantage

    Alaveteli is built so that it naturally performs well in search engines: the title of any request also becomes the title of the page, one of the main things that Google will consider when deciding how to rank a page for any given search term. And when useful or interesting material is released as a result of a request, that will attract inbound links and again, will be reflected in Google rankings.

    The net result of this is that many users will come to your Alaveteli site because they’re interested in a specific topic, rather than because they want to make an FOI request. They may never even have heard of FOI, but they surely want to know about hospital mortality rates or cycling accidents in their local area.

    A request on WhatDoTheyKnow, about the faulty brakes on a VW Passat, is one of the consistently most visited pages on the site. Even though the request itself remains unanswered, the page has become a place for Passat drivers to exchange knowledge and experiences.

    Pages such as these may even be more frequently visited than your site’s homepage. Look at request pages as a first-time viewer would, and ask yourself if it’s clear exactly what site they have landed on, and what it is for.

    Also: once you have created a community of people with a common interest (like the faults in the VW Passat), what could you do with them? Maybe post on the page yourself, offering to show how they could take a similar request to the next stage?

    3. Make passive users into active users

    The previous point leads to a further question: how can we turn users who land on our sites into active requesters (if indeed that’s a desirable aim)?

    One answer might be to explain the concept of FOI somewhere within the request page template, so it’s seen by every visitor.

    Another would be to build a user path that encourages readers to make their own request or—perhaps more likely to bear fruit, since making an FOI request tends not to be an impulsive action—include a newsletter sign-up button for people who want to know more.

    Alaveteli already includes some actions in the right-hand menu on every request page, but so far they have concentrated on asking the reader to tweet, or to browse similar requests.

    If you have ideas on how to encourage users to make requests, you could discuss them on the Alaveteli mailing list, or, if you’re a coder yourself, you could make the changes on your own branch and then submit it to be merged so that everyone can benefit.

    4. Contextualise FOI

    In the UK we are fortunate that when a news story is based on an FOI request, that’s usually mentioned within the story. It leads to a certain level of understanding of the concept of FOI within the general population.

    Whether or not that’s not the case in your country, you could keep an eye out for stories that were clearly researched via an FOI request. Where FOI is commonly mentioned, setting up a Google alert may help.

    You can then highlight these stories on a regular basis: for example, on a Facebook page, or on your blog. There was also talk of feeding a Facebook stream onto the homepage of one Alaveteli site.

    5. Create a community

    Sharing stories is one thing, but communities are a two-way endeavour. Facebook pages, blogs and Twitter accounts all need regular attention.

    Post often, reply to users’ comments and queries, and soon you may find that you have a responsive community, and can even ask your followers to do a bit of advocacy for you.

    A newsletter is also a useful way of getting your message directly into your supporters’ inboxes.

    6. Write about interesting requests

    Some requests just appeal more to human interest than others do, and they’re obvious candidates to be blogged/tweeted/Facebooked about. You might also consider putting out a press release.

    There was a bit of discussion at the conference about the unfortunate phenomenon of ‘comedy’ requests which are of great interest to the press, but could actually harm the case for FOI. Examples given were:

    In the UK we’ve generally taken the decision not to run these kinds of stories, though the press sometimes pick them up on their own anyway.

    Such publicity can lead to ‘FOI is a waste of public money’ campaigns, and it was suggested that it is useful to have a list of the good things that have come from FOI that you can provide in return: here’s one that @FOIMonkey produced in 2012.

    A middle ground between publicising ‘silly’ requests and trying to promote dry ones is to identify the stories that are in the middle ground: of great human interest, but with a serious point. Make the relevant requests yourself, if necessary.

    As an example, a request such as the menus for food served in prisons can have an underlying political point if framed correctly.

    7. Conduct outreach

    NGOs and campaigning groups can find FOI a useful tool, and the fact that Alaveteli publishes out the responses can also help them with getting their cause known. A mail-out to likely organisations, or even face-to-face visits, may help.

    Muckrock shared that they get users educated early, by conducting ‘FOIA for kids’ outreach (and FOI is also a subject in our own lesson plans).

    Here in the UK, we have visited colleges to talk to trainee journalists. While most are aware of the FOI act, many do not know about WhatDotheyKnow and how it can be used not only to make requests, but to subscribe to keywords or authorities of interest.

    However, such visits are fairly inefficient: they take time and only reach 50 or 60 students at a time. A better way may be to create and promote materials that colleges can use for themselves.

    8. Paid ads

    Although Alaveteli sites perform well in organic search, paid ads can give them an extra swathe of visitors.

    Both Facebook and Google are potential platforms for ads, and you may be eligible to receive a Google Grant if you are a not-for-profit: these give you Google Ads for free.

    mySociety are happy to share our experience in this area, and we will possibly put materials together if there’s enough interest.

    9. Friends in high places

    Some Alaveteli practitioners found it useful to partner up with a newspaper or online news source. The benefit runs two ways, since Alaveteli can be such a useful tool for journalists.

    Dostup Pravda in Ukraine is a part of the country’s most popular news site, and perhaps one of the most expert Alaveteli sites at getting publicity. Pre-launch they ran a sophisticated campaign with celebrities hinting, but not saying explicitly what the forthcoming project would be. Their t-shirt was even worn by an MP on national TV.

    For the solo activist, such promotional activity seems almost impossible, but news outlets have the contacts and resources in place to make it almost a routine task for them.

    10. Create your own buzz

    The press love lists and awards. One FOI site puts out an annual award for the best, the worst, and the most ridiculous  requests made in the previous year.

    This is a great idea for publicity, because as well as bringing the name of the site into the public consciousness, it also encapsulates a little lesson about how to use—and not abuse—FOI.

    Now go and do it

    So there you are: ten ideas to promote your site. Do feel free to add more in the comments below. And good luck!

    Image: Courtesy of the Boston Public Library, Leslie Jones Collection.

     

     

  4. Using Django’s StreamingHTTPResponse for JSON & HTML

    A few of mySociety’s developers are at DjangoCon Europe in Cardiff this week – do say hello :) As a contribution to the conference, what follows is a technical look (with bunny GIFs) into an issue we had recently with serving large amounts of data in one of our Django-based projects, MapIt, how it was dealt with, and some ideas and suggestions for using streaming HTTP responses in your own projects.

    MapIt is a Django application and project for mapping geographical points or postcodes to administrative areas, that can be used standalone or within a Django project. Our UK installation powers many of our own and others’ projects; Global MapIt is an installation of the software that uses all the administrative and political boundaries from OpenStreetMap.

    A few months ago, one of our servers fell over, due to running entirely out of memory.

    “Digging, digging, oh what was I doing, can’t remember any more!”

    Looking into what had caused this, it was a request for /areas/O08, information on every “level 8″ boundary in Global MapIt. This turned out to be just under 200,000 rows from one table of the database, along with associated data in other tables. Most uses of Global MapIt are for point lookups, returning only the few areas covering a particular latitude and longitude; it was rare for someone to ask for all the areas, but previously MapIt must have managed to respond within the server’s resources (indeed, the HTML version of that page had been requested okay earlier that day, though had taken a long time to generate).

    Using python’s resource module, I manually ran through the steps of this particular view, running print resource.getrusage(resource.RUSAGE_SELF).ru_maxrss / 1024 after each step to see how much memory was being used. Starting off with only 50Mb, it ended up using 1875Mb (500Mb fetching and creating a lookup of associated identifiers for each area, 675Mb attaching those identifiers to their areas (this runs the query that fetches all the areas), 400Mb creating a dictionary of the areas for output, and 250Mb dumping the dictionary as JSON).

    “It’s using *how* much memory?!”

    The associated identifiers were added in Python code because doing the join in the database (with e.g. select_related) was far too slow, but I clearly needed a way to make this request using less memory. There’s no reason why this request should not be able to work, but it shouldn’t be loading everything into memory, only to then output it all to the client asking for it. We want to stream the data from the database to the client as JSON as it arrives; we want in some way to use Django’s StreamingHTTPResponse.

    The first straightforward step was to sort the areas list in the database, not in code, as doing it in code meant all the results needed to be loaded into memory first. I then tweaked our JSONP middleware so that it could cope when given a StreamingHTTPResponse as well as an HTTPResponse. The next step was to use the json module’s iterencode function to have it output a generator of the JSON data, rather than one giant dump of the encoded data. We’re still supporting Django 1.4 until it end-of-lifes, so I included workarounds in this for the possibility of StreamingHTTPResponse not being available (though then if you’re running an installation with lots of areas, you may be in trouble!).

    “I know how to fix this!”

    But having a StreamingHTTPResponse is not enough if something in the process consumes the generator, and as we’re outputting a dictionary, when I pass that dictionary to the json’s iterencode, it will suck everything into memory upon creation, only then iterating for the output – not much use! I need a way to have it be able to iterate over a dictionary…

    The solution was to invent the iterdict, which is a subclass of dict that isn’t actually a dict, but only puts an iterable (of key/value tuples) on items and iteritems. This tricks python’s JSON module into being able to iterate over such a “dictionary”, producing dictionary output but not requiring the dict to be created in memory; just what we want.

    “I’m fiendish, yay!”

    I then made sure that the whole request workflow was lazy and evaluated nothing until it would reach the end of the chain and be streamed to the client. I also stored the associated identifiers on the area directly in another iterator, not via an intermediary of (in the end) unneeded objects that just take up more memory.

    I could now look at the new memory usage. Starting at 50Mb again, it added 140Mb attaching the associated codes to the areas, and actually streaming the output took about 25Mb. That was it :-) Whilst it took a while to start returning data, it also let the data stream to the client when the database was ready, rather than wait for all the data to be returned to Django first.

    “Look how quickly I’m streaming!”

    But I was not done. Doing the above then revealed a couple of bugs in Django itself. We have GZip middleware switched on, and it turned out that if your StreamingHTTPResponse contained any Unicode data, it would not work with any middleware that set Content-Encoding, such as GZip. I submitted a bug report and patch to Django, and my fix was incorporated into Django 1.8. A workaround in earlier Django versions is to run your iterator through map(smart_bytes, content) before it is output (that’s six’s iterator version of map, for Python 2/3 compatibility).

    Now GZip responses were working, I saw that the size of these responses was actually larger than not having the GZip middleware switched on?! I tracked this down to the constant flushing the middleware was doing, again submitted a bug report and patch to Django, which also made it into 1.8. The earlier version workaround is to have a patched local copy of the middleware.

    Lastly, in all the above, I’ve ignored the HTML version of our JSON output. This contains just as many rows, is just as big an output, and could just as easily cripple our server. But sadly, Django templates do not act as generators, they read in all the data for output. So what MapIt does here is a bit of a hack – it has in its main template a “!!!DATA!!!” placeholder, and creates an iterator out of the template before/after that placeholder, and one compiled template for each row of the results.

    “If it won’t generate, I’ll just replace the middle with something that will!”

    Now Django 1.8 is out, the alternate Jinja2 templating system supports a generate() function to render a template iteratively, which would be a cleaner way of dealing with the issue (though the templates would need to be translated to Jinja2, of course, and it would be more awkward to support less than 1.8). Alternatively, creating a generator version of Django’s Template.render() is Django ticket #13910, and it might be interesting to work on that at the Django sprint later this week.

    Using a StreamingHTTPResponse is an easy way to output large amounts of data with Django, without taking up lots of memory, though I found it does involve a slightly different style of programming thinking. Make sure you have plenty of tests, as ever :) Streaming JSON was mostly straightforward, though needed some creative encouragement when wanting to output a dictionary; if you’re after HTML streaming and are using Django 1.8, you may want to investigate Jinja2 templates now that they’re directly supported.

    [ I apologise in the above for every mistaken use of generator instead of iterator, or vice-versa; at least the code runs okay :) ]

  5. Channel Shift Conference: We’ll be there, will you?

    The mySociety Services team will be attending this year’s Channel Shift Conference on 17th June in London. We’d love to see you there, and we’d be happy to talk about your needs.

    Local authorities using FixMyStreet for Councils have reported a shift of up to 300% from phone to online reporting. Why? Because when online reporting systems are this easy, phone contact plummets.

    So we know how important channel shift is for councils, and we can help you achieve it. With central government calling on local councils to lead the way in cost-cutting via digital technologies, we know there’s great pressure to deliver services on an ever-lower budget.

    The solution doesn’t have to be a lengthy and costly tie-in with a big provider, however. FixMyStreet For Councils shows how small independents can provide everything your clients need, with no long-running, over-priced framework agreements.

    Come and have a chat and we’ll show you how other councils have implemented our services. We can answer all your questions about back-end integration, mobile apps and how we can tailor FixMyStreet to your needs.

    We look forward to joining attendees from Central and Local Government, Housing, Police and the Private Sector, to discuss channel shift best practices. The conference will focus on overcoming key barriers, such as: culture change, integrating front-end to back-end systems, effective business process mapping, and demonstrating and promoting channel shift success.

    Many of our services are tried and tested catalysts for shifting citizen contact online. We’ll be demonstrating the channel shift success we’ve had with our council clients, and showing how you can replicate that success with your own implementation.

    Here is some more information about the conference:

    Speakers include:

    • Chair: James Rolfe, Director of Finance, Resources and Customer Services, Enfield Council
    • Keynote: Danny McLaughlin, Digital Service Manager, Department for Work and Pensions
    • Steve Halliday, Chief Information Officer, Solihull Metropolitan Borough Council and Past President, Socitm
    • Julie Robinson, Director of Resources, Watford Community Housing Trust
    • Boris Worrall, Executive Director Futures, Orbit Group – Futures
    • Ian Simons, Group Head of Social Media, RSA Insurance
    • Natalie Proffitt, Head of Digital Media Services, Leicestershire Police
    • Barry May, Head of Customer Services, London Borough of Camden

    Website: http://www.capitaconferences.co.uk/public-sector-conferences/detail/article/channel-shift-conference-1.html?code=MYSOC

    Brochure: http://www.capitaconferences.co.uk/pdfgen.html?filename=ChannelShiftJun15.pdf&code=MYSOC

    Email: naomi.wood@capita.co.uk / 020 7202 0571

  6. Informing ourselves: what we learned at AlaveteliCon 2015

    AlaveteliCon – the conference about online Freedom of Information technologies – took place in Madrid last week.

    It was an opportunity for people who run sites based on our FOI software Alaveteli (as well as other FOI platforms such as Frag Den Staat and MuckRock) to come together and share experiences, frustrations, solutions—and the kind of anecdotes that only FOI site implementers can truly understand.

    It was also a fascinating snapshot of FOI laws around the world, and how digital tech is enabling the shoots of FOI to germinate in a variety of places, many of them previously closeted. It was inspiring, helpful and a refreshing reboot for practitioners, many of whom are fighting against quite considerable difficulties in their attempts to provide access to information.

    We heard from delegates from countries as diverse as Rwanda, Australia, Uganda, the Czech Republic, Ukraine, Spain, and many more. As we heard of each country’s specific problems, we also learned, conversely, that many of our challenges are much the same everywhere.

    Resources

    Over the next few weeks we will be sharing videos, photos and further blog posts, but for now you can get a taste of AlaveteliCon 2015 for yourself in the following places:

    • The conference agenda shows which sessions ran and who was speaking
    • A Storify gathers together tweets and photos to trace the conference’s main themes
    • Some photos (we hope to have more soon) are on Flickr and Instagram
    • The Twitter hashtag, #Alaveteli15 lets you see how things unfolded in real time
    • We’ve put together a Twitter list of Alaveteli deployments around the world: should be a great follow if you’re one of them
    • There’s now also an Alaveteli Slack channel for those who would like to continue the conversations begun at AlaveteliCon: ping @HenareDegan if you’d like access
    • Join an Alaveteli Google Group: There’s one for sharing experiences of running online FOI platforms, and another for developers using Alaveteli.

    We co-hosted Alavetelicon with Access Info, and the event was made possible with support from Open Society Foundations. Many thanks to all our speakers and delegates, whose insights and generous sharing of experiences ensured that everyone went home with plenty to work on!

    We hope to summarise several of the themes that emerged in a series of upcoming blog posts.

    Finally

    There were so many discussions, offers of help, ideas, and plans for the future that it’s hard to pick out just one benefit that came from the conference.

    But to my mind, the overarching mood is expressed in the following two tweets:

    It’s the idea of Alaveteli as not just a piece of software, but a genuine community, with the ability to support its members. The idea that, working together, we can identify and overcome difficulties.

    Putting faces to names, listening to stories—and yes, sharing a cerveza or two over the two days of AlaveteliCon—really helped to consolidate that idea.

    A lot of enthusiasm was born in Madrid: long may it last.

  7. New homepage for TheyWorkForYou

    Visit TheyWorkForYou’s homepage today, and you’ll see big changes.

    For some time now, we’ve been working on rolling improvements to TheyWorkForYou’s design, starting with MPs’ and Lords’ profile pages and voting records.

    These pages being the most visited, it made sense – but it did leave us with a shop window that did no justice to the goods within.

    High time for a new front page

    TheyWorkForYou’s homepage had not changed all that much since the site began in 2004: as new content such as committees or the devolved parliaments were added in, they simply got squeezed in wherever they would fit.

    This is the first time in a good few years that we’ve taken a step back, started again with a blank canvas and prioritised what’s important.

    Simpler, leaner, better-looking

    It tells you what the site is for

    Consistently, a good 60% of our users are first-time visitors to the site, so we need to make it very clear exactly what we do, and why they should care.

    It helps you find your MP’s information

    78% of the UK population don’t know the name of their MP (presumably that’ll be even higher for a while, post-election!). That’s why a postcode box, which matches you to your MP—and not a search box—is the most prominent input on the page.

    It highlights current affairs

    We know from experience that a large proportion of our users’ searches are based around issues that have just hit the headlines, whether that’s the latest budget, a ding-dong at Prime Minister’s questions, or a big news story.

    It’s not always obvious to a casual observer where to find the relevant debates: for example, in Hansard (the official record of Parliament, which is where our content comes from) the budget is called the ‘Autumn Statement’, while Prime Minister’s Questions is labelled ‘Engagements’.

    So now we have space to signpost the content that most visitors are likely to be looking for.

    It encourages you to subscribe to activity

    In a secondary but still prominent position, we signal that you can sign up for email alerts whenever your chosen MP speaks or your chosen keyword is mentioned. We hope that this will encourage still more people to engage on the things that matter to them.

    It offers other paths in to content

    If you’re just browsing, there’s still plenty of chance to see what’s new. Recent activity from Parliament is showcased on the lower half of the page, or you can riffle through all the different parliaments and types of debate in the top menu.

    A fitting gateway

    TheyWorkForYou still has all the same content, but now it has a homepage to be proud of, too.

    That homepage is still a gateway into rich data: an archive of searchable, shareable, readable debates going back to the 1930s, profiles and voting records for MPs and Lords both current and historic, and the calendar of upcoming events.

    With this new design, though, it should all be much easier to find. We hope you like it.

  8. Are you one in 6,983,028? Looking at our UK visitor numbers

    How many people visit mySociety’s websites?

    That’s a question we don’t ask ourselves as much as many other organisations. Much of our current funding is dependent on transactions (that is, the number of people using the site to complete an action such as making an FOI request, writing to a politician, or signing up to receive emails when their MP speaks), and rightly so, since that is a better measure of the sites’ actual effectiveness.

    All the same, visitor numbers* do tell us about things like how much public awareness there is of what we do, and which of our sites is more visible than the others, so it’s good to take a proper look now and again.

    Which of our UK sites is most visited?

    By far our most popular site in terms of visitor numbers is our Freedom of Information site WhatDoTheyKnow. With over 4.5 million visitors 2014-15, it’s had three times more users than its closest competitor, TheyWorkForYou.

    As well as allowing users to submit FOI requests, WhatDoTheyKnow also puts the responses into the public domain, so that the information becomes openly available. Every request receives, on average, twenty readers, meaning that transactions do not show the whole picture for this site.

    WhatDoTheyKnow’s user numbers are also rising steadily. It’s up 8% on last year, and March 2015 was its highest month for unique users since its launch in 2008, at 470,509.

    Which is least visited?

    This dubious honour goes to WriteToThem, which nonetheless welcomed 457,209 visitors during the year, either helping them to write to their representatives, or simply showing them who those representatives were.

    This was still a decent 11% rise on the previous year, despite a real rollercoaster where some months dipped substantially from the previous year.

    Which made the most gains in the last year?

    FixMyStreet saw the biggest percentage change, with a 21% rise in visitor numbers compared to the previous year; we talked a bit more about that in a recent blog post. WhatDoTheyKnow had the highest rise in actual visitor numbers: over 360,000 up on 2013-14.

    Which fell by the most in the last year?

    TheyWorkForYou saw a 12% drop in visitor numbers year on year (and also the biggest drop in real terms)—disappointing, but something we hope to rectify with the new voting pages, an ongoing process of rolling redesign, and some grassroots outreach.

    How much effect do external events have on visitor numbers?

    Plenty!

    We already know that, as you’d expect, when Parliament is on holiday, MPs, debates and legislation aren’t in the news, and TheyWorkForYou visitor numbers fall. There’s also a weekly pattern for all our sites, where far fewer people use them at the weekends, presumably indicating that lots of our users access them from work.

    It’s too early to say exactly what effect the election has had on our sites: as I write, people are eagerly checking out the voting records of newly-appointed cabinet ministers on TheyWorkForYou.

    One thing we know for sure is that fewer people will have been using WriteToThem, because there have been no MPs to write to for the last few weeks. We’ve removed the “write to your MP” links from TheyWorkForYou, which always drove a good deal of WriteToThem’s traffic.

    FixMyStreet enjoyed a boost back in June, when it was featured on the Channel 4 programme ‘The Complainers’—and the nice thing is, user numbers never receded back to their previous levels after the programme was over. Maybe people just need to use FixMyStreet to see how useful it is.

    How many people visit mySociety’s UK websites in total?

    This is a difficult figure for us to produce with accuracy, because we don’t trace whether you’re the same person visiting a number of our different sites.

    However, the aggregate total of visitors to all our UK sites (WriteToThem, TheyWorkForYou, FixMyStreet and WhatDoTheyKnow) for 2014-15 is 6,983,028. Thanks very much if you were one of them :)

    How can I help?

    Glad you asked! If you find mySociety sites useful, you can help us spread the word by telling friends, sharing the URLs with any groups you are a member of, posting on Facebook or Twitter, or writing to your local paper.

    We have a number of materials for FixMyStreet which can be found here; we hope to create similar materials for our other sites too, and we’ll make sure we announce it on here when we do.

    * Note: all references to ‘users’ refer to unique users within the period discussed. So, users in a year means individual people who may have visited any number of times over that year, but are only counted once; same with monthly users.

    Image: Rodrigo Moraes (CC)

  9. Track your MP’s activity with TheyWorkForYou

    So, the results are in. Some of us have a brand new MP. Others will see the same familiar face returning to the benches of Westminster.

    Either way, the important questions remain the same:

    • What will your MP do in Parliament?
    • Will they speak about the things that matter to you?
    • How will they vote in your name?

    The easy way to keep up

    TheyWorkForYou.com makes it very easy to keep check: you can even sign up to receive an email whenever your MP speaks. These are in the form of a daily digest, and we only send them on days when your MP has actually contributed to a debate.

    It’s the low-effort way to see exactly what your MP is getting up to, with no spin, just the facts. Click here for our easy sign-up.

    All change

    If you already receive alerts, but your prior MP has lost their seat, be sure to set up an alert for the new one now. We’ll be sending reminders to all current subscribers.

    There’s no need to cancel the previous alert, however: if your old MP isn’t in Parliament, we simply won’t be sending any more emails about them.

    Image: Parliament Acts by Jeroen van Luin (CC)

  10. We’re up all night to get MPs

    Spare a thought for us over the night of May 7th – for, when the nation wakes up to the General Election results, we’ll have been up all night updating TheyWorkForYou.

    As you might imagine, elections are bitter-sweet times for us here at mySociety. On the one hand, swingometers, marginals and ballot boxes are about as exciting as life gets for a bunch of political geeks. On the other, we have only a short window of time in which to ensure our parliamentary websites reflect the new administration.

    In previous years, this has meant manually updating an XML file and running an import script 650 times – slightly arduous, even for the most dedicated civic coder. This year, we’re taking advantage of the fact that YourNextMP exists and several of us will be staying up anyway to see the results, and hoping to do things a little differently.

    As each result is announced (or potentially even earlier, if it’s clear that there’s only one possible winner), site administrators will be logged in to YourNextMP, where they’ll have access to a “this person won!” button. We’ll be on a rota throughout the night, sharing duties with the equally dedicated Democracy Club volunteer team.

    When that button is clicked, YourNextMP will update, and TheyWorkForYou will notice and automatically update its underlying JSON data.

    This is the data we match you with when you input your postcode on the homepage, meaning that TheyWorkForYou should be a great place to find out who your next MP is as soon as you wake up (assuming the results are in) on 8th May.

    UPDATE: If you are interested in the technical aspects of the YourNextMP and TheyWorkForYou updates, you may like to read more about it in this thread.

    A blank canvas

    Note that new MPs will not have a great deal on their pages yet: TheyWorkForYou’s MP pages are built up of voting and debating activity, past positions and expenses, etc, and of course, totally new MPs will have none of that. But there’s one important feature that you should take advantage of on Friday—the ‘subscribe’ button.

    Sign up, and we’ll send you an email every time your new MP speaks in Parliament, so you can keep track of exactly what he or she is saying in your name. If you were previously following an MP who has resigned or lost their seat, don’t forget to follow the new one! We’ll be sending out a message straight after the election to remind you.

    WriteToThem

    Another website which will require a lot of attention post-election is WriteToThem, which matches you with your local and national politicians so that you can contact them.

    Unfortunately, WriteToThem takes a little longer to update, as we rely on data, including email addresses, from external sources. We’ll be updating as soon as we can. Meanwhile, if you have an urgent message for your MP or councillors, you may find that you can locate direct email addresses on the official Parliament and council websites.

    Image: William Murphy (CC)