maanantai 9. joulukuuta 2013

Datajournalistin veropäivä

Tarkoitan veropäivällä tässä yhteydessä marraskuun ensimmäistä, jolloin suomalaisten veronmaksajien edellisen kalenterivuoden verotiedot tulevat julkisiksi. Marraskuussa julkistettiin siis kaikkien suomalaisten pääoma- ja ansiotulotiedot vuodelta 2012. Tiedot ovat julkisia ja meidän jokaisen tulotiedot ovat saatavilla verotoimistoista kysyttäessä.

Kerron aluksi hieman veropäivän taustoja ja sitten tarkemmin mitä tein itse veropäivänä.

Tiedotusvälineissä veropäivä näkyy merkittävällä tavalla. Etenkin iltapäivälehdet tekevät paljon juttuja, koskien erilaisia ryhmiä ja heidän parhaiten tienaavia yksilöitä. Esimerkiksi iltapäivälehdet tekevät veropäivänä paljon juttuja otsikkorakenteella: "Katso kuka tienasi eniten ryhmässä X". Helsingin Sanomissa verotietoihin on myös panostettu ja HS:llä onkin erityinen Verokone, josta verotietoja on mahdollista tarkastella useamman vuoden ajalta. Maakuntalehdet taas tekevät juttuja omista lähtökohdistaan keskittyen etenkin oman alueensa parhaiten tienaaviin.

Yle Uutisissa tendenssi tuntuu kulkevan aina vain vähemmän retostelevaan suuntaan. Tämä näkyy esimerkiksi niin, että yksittäisten ihmisten tuloja nostetaan aina vähenevässä määrin esille. Näiden sijaan pyritään nostamaan enemmän esille ilmiöitä, joita tulojen takaa on nähtävissä kuten tuloerojen muutokset ja alueelliset erot tuloissa.

Viime vuonna tämä näkyi siten, että julkaisimme veropäivänä jutun "Näin moni tienaa vähemmän kuin sinä – kokeile itse", josta tuloja oli mahdollista tarkastella, ei yksilötasolla, vaan alueellisesti ja demograafisesti oman kiinnostuksen mukaan. Tämä vuonna samaa teemaa jatkettiin veropäivää edeltävänä päivänä julkaisemalla vastaavanlainen juttu "Kuinka moni naapurisi tienaa vähemmän kuin sinä? Kokeile itse laskurilla". (Kuva 1)

Rakentamallamme työkalulla tuloeroja saattoi verrata postinumeroalueittain. Kuvassa Vantaalla sijaitsevan Mikkolan tulojakauma (Kuva 1)
Lisäksi olemme tietoisesti pienentäneet "katso kuka tienasi eniten" -listoille päätyvien ihmisten määrää.

Viime vuonna koko maan listalla oli 1000 nimeä ja alueiden listoilla 200. Tänä vuonna näillä listoilla esitettyjen nimien määrät putosivat koko maan osalta 100 nimeen ja alueiden osalta 30 nimeen. Määrät poikkeavat selkeästi useista muista mediataloista ja heidän julkaisemistaan määristä.

Toki Yle:lläkin tehdään edelleen myös henkilöihin kohdistuvia juttuja.

Datajournalistin veropäivä


Itse veropäivänänä 1.11.2013 minun vastuullani oli tuottaa Yle Uutisten sivuille edellä mainitut "katso kuka tienasi eniten" -listat koko maan ja alueiden (maakunnat) osalta. Vastasin siis siitä, että veropäivän aamuna verotiedot olivat luettavissa Yle Uutisten sivuilta mahdollisimman nopeasti (käytännössä muutaman minuutin varoitusajalla) niiden julkistamisesta. Tiedotusvälineet saivat ennakkoon tilaamansa aineistot verottajalta samanaikaisesti veropäivän aamuna kello 8.00.

Yle Uutisten näkökulmasta kyse on siitä, että uutistilanteessa halutaan olla ensimmäisiä tai ensimmäisten joukossa. Ja ensimmäisinä mahdollisimman hyvin lukijoita palvelevalla tavalla. Myös maakuntatasolla halusimme olla uutiskilpailussa rintarinnan maakuntalehtien kanssa. Esimerkiksi niin, että Yle Tampere saisi nettiin samaan aikaan jutun verotiedoista ja eniten tienanneista kuin Aamulehti.

Tämä mahdollisimman hyvä ja nopea tapa oli käytännössä nettiuutiseen upotettava taulukko, jota olisi mahdollista järjestää sarakkeiden perusteella ja josta tietoja olisi mahdollista etsiä.

Kantava ajatus tämän saavuttamiseksi oli, että rakennamme putken verotoimistosta nettiin siten, että tiedot kulkisivat minun kauttani. Minun tehtäväkseni siis tuli muokata alkuperäistiedostot sellaiseen muotoon, että ne on mahdollista julkaista netissä ja sitten julkaista ne.

Sain haltuuni edellisen vuoden vastaavat aineistot, jotka Yle Uutiset oli saanut ja lähdin rakentamaan ratkaisumallia niiden pohjalta. Verohallinto toimittaa tiedot .csv-tiedostoina. Tiedostot on nimetty kryptisesti numerokoodeilla, mutta tiedostot avaamalla selviää, että tiedostonimiin on koodattu maakuntanumero (.xls) sekä tieto siitä minkä tyyppistä tietoa tiedosto sisältää. (Kuva 2)

Verohallinto toimittaa verotiedot toimitusvälineille .csv-muodossa. (Kuva 2)

Olimme tilanneet tänä vuonna samat aineistot kuin aikaisempinakin vuosina eli 1000 eniten tienannutta koko maan osalta sekä 200 eniten tienannutta maakuntien osalta (julkaisimme siis vain osan). Nämä tiedot oli pyydetty sekä ansio-, pääomatulojen sekä kokonaisansioiden mukaan järjestettyinä. Yhteensä tiedostoja oli siis 60 kpl ((19 maakuntaa + koko maa) * 3 tiedostoa / alue).

Ajatukseni siis oli, että tuottaisin tästä .csv-materiaalikasasta mahdollisimman automaattisesti html-muotoiset järjestettävät listat, jotka voitaisiin julkaista Yle Uutisten sivuilla artikkeleihin upotettuina.

Lähdin toteuttamaan tätä automatisointia Python-scriptillä. Apuna käytin MondoDB-tietokantaa, joka toimi tietojen väliaikaisena tallennuspaikkana. Scriptin toimintalogiikka on seuraavanlainen:

  1. Lue kansion kaikki tiedostot (60 kpl).
  2. Avaa kansiosta yksi tiedosto kerrallaan käsiteltäväksi.
  3. Selvitä tiedostonimen perusteella mitä maakuntaa tämä tiedosto edustaa sekä sisältääkö tiedosto ihmiset järjestettynä ansiotulojen (1), pääomatuloje (2) vai kokonaistulojen (3) mukaan.
  4. Tallenna tiedot MongoDB-tietokantaan sarakkeiden mukaisesti.
  5. Kirjoita uusi .csv-tiedosto mihin on otettu alkuperäistiedoihin verrattuna mukaan vain kiinnostavat sarakkeet ja johon on lisäksi lisätty uusia kiinnostavia sarakkeita kuten henkilöiden veroprosentti. Lisäksi tässä kohtaa poistettiin tiedoista kaikkien mahdollisesti alle 18-vuotiaiden nimet.
  6. Toista prosessi aineiston seuraavalla tiedostolle.

Ennen tätä prosessia muunsin alkuperäistiedostojen merkistön UTF-8-muotoon (alunperin ISO-8859-1). Tein tämän, että pystyisin olemaan varma, että skandinaaviset kirjaimet eivät korruptoituisi prosessin aikana. UTF-8 on merkistönä tässä suhteessa parempi. Rakensin tähän erillisen Python-scriptin, joka teki muunnoksen puolestani.

Harjoittelin prosessin läpi edellisen vuoden aineistoilla läpi noin kymmenen kertaa ja sain ajettua prosessin läpi sähköpostista julkaistuksi jutuksi rauhallisessa tahdissa edeten alle kahdessa minuutissa. Eli käytännössä lukijoille hyvin merkityksettömässä ajassa.

Veropäivän aamuna tulin töihin hieman ennen seitsemää aamulla. Verotiedot julkaistiin siis kahdeksalta. Toimittajamme Mikko Naalisvaara oli Haapaniemenkadulla verotoimistossa hakemassa tilaamamme aineistoa ja hänen oli määrä lähettää se minulle sähköpostilla heti aineisto saatuaan. Konkreettisesti Mikko sai verotoimistolta muistitikun, jossa tiedot olivat, jonka hän kiinnitti omaan mukana olleeseen koneeseensa. (Kuva 3)

Verotoimistosta tilatut verotiedot sai nimetyissä muistitukuissa. Tämä Yle:n kappale löysi tiensä työpöydälleni myöhemmin iltapäivällä. (Kuva 3)

Tulin töihin ajoissa ensinnäkin, että kyseisenä päivän HSL:n junat olivat lakossa ja halusin olla erityisen varma, että pääsisin paikalle, mutta toisaalta myös, että pystyin rauhassa käymään vielä ajatustasolla läpi sen mitä olimme tekemässä.

Aamukahdeksan aikaan aloitin sähköpostini "päivitä"-painikkeen aktiivisen naputtamisen. Lopulta kello 8.09 aineisto tippui sähköpostiini. Latasin tiedostot koneelleni ennalta luotuun kansioon ja ajoin tarvittavat Python-scriptit tiedostoille. Tiesin, että hätiköinti ei tulisi säästämään kuin puoli minuuttia kun taas epäonnistuminen johtaisi helposti moninkertaiseen viivästymiseen kun koko prosessi pitäisi aloittaa alusta.

Eniten jännitystä näin koodarin toimesta aiheutti epäilys siitä, että verohallinto olisi voinut mennä muuttamaan tiedostojensa formaattia tai merkistöä jollain tavalla. Tämä luonnollisesti johtaisi joko siihen, että scriptit eivät toimisi ollenkaan tai ne toimisivat loogisesti väärin. Tätä mahdollisuutta silmällä pitäen olin kehittänyt varasuunnitelmana manuaalisesti täytettävän, mutta etukäteen rakennetun html-listan, jonka alueet heti tiedot saatuaan saattoivat itse täyttää. Tämä varasuunnitelma varmasti siis sen, että meillä olisi heti aamulla aiheesta netissä kuitenkin jotain.

Tämä varasuunnitelma oli kuitenkin lopulta etenkin alueiden näkökulmasta enemmän tilannetta sekoittava, koska koko aineiston kattava toteutukseni valmistui alueiden käsin tuottamaa listaa nopeammin. Alueet siis edelleen täyttivät etukäteen rakennettua html-listaa kun he olisivat voineet ottaa käyttöön automaattisesti tuotetun taulukon. Tämän osalta täytyy kommukaatiota ensi vuodeksi parantaa.

Scriptit siis toimivat ja ennaltaharjoiteltu prosessi mahdollisti sen, että meillä oli verkossa kello 8.14 artikkeli johon oli upotettu järjestettävä taulukko, josta oli mahdollista tarkastella eniten tienanneiden tietoja koko maan sekä alueiden osalta. Työ oli siis valmis viidessä minuutissa (josta käytimme ehkä 1–2 minuuttia tietojen tarkistamiseen) tuotettua sähköpostiin tulleista .csv-tiedostoista interaktiivisen uutisapplikaation, joka oli käytettävissä koko maan ja jokaisen yksittäisen

Toteutin scriptin pääosin maanantaina (veropäivä oli perjantai) ja käytin välissä olleet päivät lähinnä hienosäätöön. Käytännössä käytin toteutukseen siis yhden työpäivän, jonka kautta veropäivänä lukijat saivat palvelua 15 minuutissa. Tämä oli merkittävä parannus verrattuna viime vuoteen jolloin listoja on tehtaillut useampi ihminen ja viimeiset listat valmistuivat alueille käsittääkseni vasta puolen päivän aikoihin. Jo sellaisenaan varasuunnitelmana käyttämämme etukäteen rakennettu html-lista oli kehitysaskel edelliseen vuoteen, jolloin alueilla ei ollut mitään yhtenäistä tapaa toimia.

Scriptit ovat ladattavissa Yle Uutisten Github:sta. Annoin projektille nimeksi tax-data-organizer. Scripti toimii niin, että sille annetaan kansio, jossa ovat verottajalta saadut tiedostot. Scripti tallentaa sitten uuteen erilliseen kansioon muokatut versiot sille annetuista tiedostoista. Järjestettävä html-taulukko näistä muokatuista .csv-tiedoista on mahdollista tehdä esimerkiksi mukaillen niin ikään Yle Uutisten Githubista löytyvää Sorttable-projektia.

Ei kommentteja:

Lähetä kommentti