Washington state lawmakers have a big problem: The next two-year state budget faces a shortfall of up to $1.3 billion. And on top of that, the state Supreme Court has said Washington isn't meeting its obligation to fully fund basic education. Meeting that mandate could cost an additional $500 million to $1.7 billion over the next two years, depending on whom you ask.
To help readers understand this problem and explore real options on the table for finding funding, The Seattle Times news applications team launched an interactive this week that lets our readers try their hand at balancing the state budget and increasing education funding at the same time.
[gallery columns="4" ids="3323,3325,3322,3321"]
- Overview: Users land on a page that shows them an empty budget container representing the total amount of money that state legislators need to find and all the options for meeting those goals.
- The benchmarks: The container shows various benchmarks users need to hit: Reducing the deficit to find the $1.3b, finding the $1B that Republicans think is necessary to adequately fund education, or finding the $1.7B that Democrats think is necessary to adequately fund education.
- The budget options: The options on the left represent possible cuts and tax increases are compiled from former Gov. Chris Gregoire's 2013-15 budget proposal released in December, from a list of possible cuts offered by a state commission examining how to improve education, and from House Republicans and individual lawmakers. It's not a comprehensive list of every potential cut mentioned, but it gives an idea of the choices lawmakers may have to make.
The nitty gritty
- Django-powered: This is especially awesome because we plan to update this interactive regularly based on new proposals, projections and forecasts that arise. Django lets editors and the copy desk easily jump into the admin and publish updates as needed without having to go through me as a data inputter.
- Bake that shit: We use Django Bakery to bake a flat file to S3, which we then suck into our CMS. We pull the contents of the interactive into the CMS so our web producers can easily update the headline/chatter, or uprank/downrank the interactive and move it onto different section indexes on the main site. Every time the copy desk or an editor hits "save" in the Django admin, a new flat file is sent to S3 (and thus our CMS) with the changes. It also bakes a second version that we've distributed to our other newspapers in Walla Walla and Yakima.
- Responsively sexy: The other cool thing about integrating this with our main CMS is that we got an excuse to institutionalize responsive design by putting an official responsive template into our main system. Sneaky, eh? Hopefully this means we can start using it more often for non-news apps projects as well. Responsiveness powered by your standard media queries and grid system. And it looks hot on mobile.
- Modernizr: Not really worth noting, but we use Modernizr to detect whether the browser supports drag n' drop, then display different instructions based on that. In cool browsers you can drag options from the left into the container on the right. On suckier browsers you can just click. Though in retrospect (after using this interactive for a few weeks), the drag n' drop isn't as cool as we originally thought it'd be. I end up just using the standard click no matter the browser.
- Icon fonts: We used Iconmoo to generate fonts for all the icons.
- Dean Kramer: Lead developer, co-instigator.
- Andrew Garber and Brian Rosenthal:Reporters in Olympia who did the hard part.
- Richard Wagoner: Politics editor who did a bulk of the editing.
- Greg Rasa and Laura Gordon: Contributing editors.
- Cheryl Phillips and David Lucio: Data editor and engineer involved in early brainstorms.
- Whitney Stensrud: Graphics editor who helped conceptualize the interactive and gave us constant usability feedback.
So where's the code? It'll be public on Github this week. I'll update with a link.