Eduskuntapeili
Toinen näkökulma Eduskunnan avoimeen dataan.
sunnuntaina 26. heinäkuuta 2026


Laadunvalvonta — Eduskuntapeili

Laadunvalvonta

Datan eheystarkistukset

Tarkistukset ajetaan palvelimen käynnistyessä suoraan tietokantaa vasten. Poikkeamat kertovat lähdedatan tai tuontiputken ongelmista.

Tietoputken tila

VaiheTilaViimeksi ajettuEdistyminen
Tietojen hakuEi ajettu
JäsentäminenEi ajettu
Tietokannan migraatioEi ajettu
Asiakirjojen latausEi ajettu
PDF-tekstien poimintaEi ajettu

Tietojen haku

Vaihetta ei ole vielä ajettu — tilatietoja ei ole saatavilla.

Jäsentäminen

Vaihetta ei ole vielä ajettu — tilatietoja ei ole saatavilla.

Tietokannan migraatio

Vaihetta ei ole vielä ajettu — tilatietoja ei ole saatavilla.

Asiakirjojen lataus

Vaihetta ei ole vielä ajettu — tilatietoja ei ole saatavilla.

36/41 tarkistusta läpäisty5 tarkistuksessa poikkeamiaSuoritusaika 37,6 s

Business Logic

OK
Eduskunnan koko enintään 200

Aktiivisten kansanedustajien määrä ei saa ylittää 200 minkään istunnon päivänä.

kriittinen1,9 s
Poikkeamia (17)
Avoimet edustajanpaikat istuntopäivinä

Listaa istuntopäivät, joina aktiivisia kansanedustajia oli alle 200. Lyhyet vajaukset ovat normaaleja seuraajakatkoksia, eivät datavirheitä.

info1,9 s

Tunnettu syy: Paikka on avoinna edustajan poistumisen ja seuraajan aloituksen välillä — tämä on eduskunnan normaalia toimintaa, ei datavirhe. Jokainen rivi näyttää todisteet suoraan datasta: vacant_seats on avointen paikkojen määrä, recent_departures paikan jättänyt edustaja (toimikauden päättymispäivä) ja next_seatings seuraava aloittaja (toimikauden alkupäivä). Esimerkki: Ilkka Kanerva kuoli 14.4.2022 ja Ville Valkonen aloitti 29.4.2022, joten 19.–28.4.2022 istuntopäivinä edustajia oli 199.

Näytä esimerkkirivit · 17 poikkeavaa riviä
datemp_countvacant_seatsrecent_departuresnext_seatings
2019-04-241991Kyllönen Merja (2019-04-23); Halla-aho Jussi (2019-04-23)Kalliorinne Risto (2019-05-02)
2019-11-261991Rantakangas Antti (2019-11-22)Kettunen Tuomas (2019-11-28); Mäkynen Matias (2019-12-03)
2019-11-271991Rantakangas Antti (2019-11-22)Kettunen Tuomas (2019-11-28); Mäkynen Matias (2019-12-03)
2021-09-081982Vartiainen Juhana (2021-09-07); Ikonen Anna-Kaisa (2021-09-07)Said Ahmed Suldaan (2021-09-09); Kinnunen Jari (2021-09-09); Kaleva Atte (2021-09-09)
2022-04-191991Kanerva Ilkka (2022-04-14)Valkonen Ville (2022-04-29)
OK
Ei tulevia istuntoja

Istuntojen päivämäärät eivät saa olla tulevaisuudessa.

varoitus<1 ms
OK
Ei tulevia äänestyksiä

Äänestysten päivämäärät eivät saa olla tulevaisuudessa.

varoitus38 ms
OK
Istunnot vuodesta 1907 alkaen

Suomen eduskunta perustettiin vuonna 1907 — aiempia istuntoja ei pitäisi olla.

kriittinen1 ms

Data Quality

OK
Kelvollisia ääniarvoja

Äänen arvo täytyy olla Jaa, Ei, Tyhjää tai Poissa.

kriittinen4,2 s
OK
Ei kaksoissyöttöjä äänestyksissä

Jokainen henkilö voi äänestää vain kerran per äänestys.

kriittinen714 ms
OK
Äänimäärä enintään 200

Äänestyksen kokonaisäänimäärä ei saa ylittää 200.

kriittinen5 ms
OK
Äänien ryhmätunnukset ilman reunavälilyöntejä

Vote.group_abbreviation-arvon tulee olla valmiiksi trimmattu ilman alku- tai loppuvälilyöntejä.

varoitus414 ms
OK
Puoluekoodi puuttuu NULL-arvona

Speech.party_abbreviation-kentässä puuttuva arvo pitää tallentaa NULL-arvona, ei tyhjänä merkkijonona.

varoitus15 ms
OK
Ministeriö puuttuu NULL-arvona

Speech.ministry-kentässä puuttuva arvo pitää tallentaa NULL-arvona, ei tyhjänä merkkijonona.

varoitus15 ms
OK
Kohtahuomautus puuttuu NULL-arvona

Section.note-kentässä puuttuva arvo pitää tallentaa NULL-arvona, ei tyhjänä merkkijonona.

varoitus759 ms
OK
Käsittelyotsikko puuttuu NULL-arvona

Section.processing_title-kentässä puuttuva arvo pitää tallentaa NULL-arvona, ei tyhjänä merkkijonona.

varoitus9 ms
OK
Päätöslauselma puuttuu NULL-arvona

Section.resolution-kentässä puuttuva arvo pitää tallentaa NULL-arvona, ei tyhjänä merkkijonona.

varoitus6 ms
OK
Äänestyksen otsikko puuttuu NULL-arvona

Voting.title-kentässä puuttuva arvo pitää tallentaa NULL-arvona, ei tyhjänä merkkijonona.

varoitus4 ms
OK
Äänien ryhmätunnukset pienaakkosin

Vote.group_abbreviation-arvojen tulee olla normalisoitu pienaakkosiin.

varoitus404 ms
OK
Puheenvuorojen puoluekoodit pienaakkosin

Speech.party_abbreviation-arvojen tulee olla normalisoitu pienaakkosiin.

varoitus24 ms
OK
Nimenhuutopuolueet pienaakkosin

RollCallEntry.party-arvojen tulee olla normalisoitu pienaakkosiin.

varoitus80 ms
OK
Vaski-asiakirjatyypit normalisoitu

VaskiDocument.document_type-arvon tulee olla normalisoitu pienaakkosinen tunniste (ei tyhjä, ei välilyöntejä). Taulu sisältää kymmeniä laillisia tyyppejä, joten kiinteää sallittujen arvojen listaa ei käytetä.

varoitus1,1 s
OK
Nimenhuutoriveillä on nimet

RollCallEntry.first_name- ja last_name-kenttien tulee sisältää arvo, ei NULL- tai tyhjää merkkijonoa.

varoitus10 ms
OK
Nimenhuutorivien nimet trimmattuja

RollCallEntry.first_name- ja last_name-arvoissa ei saa olla alku- tai loppuvälilyöntejä.

varoitus9 ms
OK
Ääniarvot normalisoitu

Vote.vote-kentän arvon tulee olla Jaa, Ei, Tyhjää tai Poissa; lähdekielen arvoja ei saa jäädä tietokantaan.

varoitus433 ms
OK
Nimenhuutoraportin tila tunnetuissa arvoissa

RollCallReport.status-kentässä saa olla vain tunnettuja lähdearvoja silloin kun arvo on asetettu.

varoitus9 ms
OK
Vaski-asiakirjoilla on lähdepolku

VaskiDocument.source_path-kentän tulee sisältää ei-tyhjä lähdepolku.

varoitus19 ms
OK
Puhesisällöillä on lähdepolku

SpeechContent.source_path-kentän tulee sisältää ei-tyhjä lähdepolku.

varoitus1,8 s

Data Integrity

OK
Toimikausien päivämäärät oikein

Toimikauden alkupäivä ei saa olla loppupäivän jälkeen.

kriittinen<1 ms
OK
Puoluejäsenyyksien päivämäärät oikein

Puoluejäsenyyden alkupäivä ei saa olla loppupäivän jälkeen.

kriittinen5 ms
OK
Puoluejäsenyydet eivät päälle

Henkilöllä ei saa olla päällekkäisiä puoluejäsenyyksiä eri puolueisiin.

kriittinen7 ms
OK
Hallitusjäsenyyksien päivämäärät oikein

Hallitusjäsenyyden alkupäivä ei saa olla loppupäivän jälkeen.

kriittinen1 ms
OK
Hallituskaudet eivät päällekkäin (1987 alkaen)

Kaksi hallitusta ei saa olla samanaikaisesti aktiivisia. Saman päivän vaihdokset (eroava hallitus päättyy uuden alkaessa) ovat normaaleja, ja vuotta 1987 vanhempia hallituksia ei tarkisteta päivämäärien vuositarkkuuden vuoksi.

kriittinen1 ms
Poikkeamia (21)
Hallituskausien päivämäärätarkkuus

Listaa hallitukset, joiden alku- tai loppupäivä on tuotu vain vuoden tarkkuudella (paikkamerkit VVVV-01-01 / VVVV-12-31).

info<1 ms

Tunnettu syy: 21 hallituksella 77:stä (kaikki aloittaneet viimeistään 1983) päivämäärät on tuotu lähdedatasta vain vuoden tarkkuudella ja tallennettu muodossa VVVV-01-01 / VVVV-12-31. Päivätason vertailut eivät ole näille riveille mielekkäitä — siksi hallituskausien päällekkäisyystarkistus kattaa vain hallitukset vuodesta 1987 alkaen.

Näytä esimerkkirivit · 21 poikkeavaa riviä
idnamestart_dateend_date
1Sorsa III1982-01-011983-05-06
2Sorsa IV1983-01-011987-12-31
16Paasio II1972-01-011972-09-03
17Sorsa1972-01-011975-06-12
18Miettunen II1975-01-011976-09-28
OK
Äänityyppien summa täsmää

n_yes + n_no + n_abstain + n_absent täytyy olla n_total.

kriittinen7 ms
OK
Yksittäisten äänien määrä täsmää

Äänestysrivien lukumäärän täytyy vastata n_total-arvoa, istuntopäivän avoimet edustajanpaikat huomioiden.

kriittinen309 ms
OK
Annettujen äänten jakauma täsmää

Äänestyksen kirjatut Jaa/Ei/Tyhjää-määrät täytyy vastata täsmälleen yksittäisten äänirivien jakaumaa.

kriittinen597 ms
OK
Poissaolojen määrä täsmää

Äänestyksen kirjatun poissaolomäärän täytyy vastata yksittäisiä Poissa-rivejä, istuntopäivän avoimet edustajanpaikat huomioiden.

kriittinen387 ms

Referential Integrity

OK
Äänet → Äänestykset

Kaikkien äänirivien täytyy viitata olemassa olevaan äänestykseen.

kriittinen853 ms
OK
Äänestykset → Edustajat

Kaikilla äänillä täytyy olla vastaava edustaja.

kriittinen691 ms
Poikkeamia (13)
Kohdat → Istunnot

Kaikkien kohtien täytyy viitata olemassa olevaan istuntoon.

kriittinen16 ms
Näytä esimerkkirivit · 13 poikkeavaa riviä
keysession_key
0FOneG40j5vLtPJ2026/72
vIt8EU3O8AnaKaC2026/72
vzZt4sSQR8141dD2026/72
8hXMAw4Sj12Og992026/72
nULBlCV9CrI3v4V2026/72
Poikkeamia (2)
Äänestykset → Istunnot (vaalikaudesta 2015 alkaen)

Vaalikaudesta 2015 (22.4.2015) alkaen jokaisen äänestyksen täytyy viitata olemassa olevaan istuntoon. Vanhempia äänestyksiä ei tarkisteta, koska niiden istuntoviittaukset käyttävät vanhan järjestelmän numerointia.

kriittinen5 ms

Tunnettu syy: Äänestyshistoria alkaa 12.6.1996, mutta istuntohistoria vasta 2.6.2014, ja huhtikuuta 2015 edeltävät äänestykset käyttävät vanhan järjestelmän istuntonumerointia (esim. äänestyksen avain 2014/66, istuntotaulun avaimet muotoa 2014/257). Vanhoja äänestyksiä ei siksi voi linkittää istuntoihin; vaalikauden 2015 ensimmäisestä täysistunnosta alkaen linkityksen täytyy olla aukoton.

Näytä esimerkkirivit · 2 poikkeavaa riviä
idsession_keystart_date
568382026/722026-07-21
568402026/722026-07-21
Poikkeamia (5)
Äänet annettu toimikauden aikana

Jokaisen äänestyspäivän äänillä täytyy olla äänestäjälle voimassa oleva toimikausi.

varoitus354 ms

Tunnettu syy: Toimikausidata ei kata 1990-luvun sijaisuusjaksoja täydellisesti. Tunnetut tapaukset: Nikula 13.3.1998, Kemppainen 23.4.–18.6.1999 (kolme äänestyspäivää) ja Erlund 25.4.2000 — näinä päivinä annetuille äänille ei löydy voimassa olevaa toimikautta.

Näytä esimerkkirivit · 5 poikkeavaa riviä
person_idvoting_date
4121998-03-13
3221999-04-23
3221999-06-04
3221999-06-18
5592000-04-25
OK
Edustajilla on toimikausia

Jokaisella edustajalla täytyy olla vähintään yksi toimikausi.

kriittinen2 ms

PDF-tekstien poiminta

Poimintaa ei ole vielä ajettu — tilatietoja ei ole saatavilla.