Eduskuntapeili
Toinen näkökulma Eduskunnan avoimeen dataan.
lauantaina 25. 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 17,2 s

Business Logic

OK
Eduskunnan koko enintään 200

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

kriittinen2,0 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ä.

info2,0 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.

varoitus2 ms
OK
Ei tulevia äänestyksiä

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

varoitus6 ms
OK
Istunnot vuodesta 1907 alkaen

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

kriittinen<1 ms

Data Quality

OK
Kelvollisia ääniarvoja

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

kriittinen1,6 s
OK
Ei kaksoissyöttöjä äänestyksissä

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

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

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

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

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

varoitus315 ms
OK
Puoluekoodi puuttuu NULL-arvona

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

varoitus17 ms
OK
Ministeriö puuttuu NULL-arvona

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

varoitus13 ms
OK
Kohtahuomautus puuttuu NULL-arvona

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

varoitus389 ms
OK
Käsittelyotsikko puuttuu NULL-arvona

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

varoitus8 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.

varoitus399 ms
OK
Puheenvuorojen puoluekoodit pienaakkosin

Speech.party_abbreviation-arvojen tulee olla normalisoitu pienaakkosiin.

varoitus29 ms
OK
Nimenhuutopuolueet pienaakkosin

RollCallEntry.party-arvojen tulee olla normalisoitu pienaakkosiin.

varoitus10 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ä.

varoitus758 ms
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ä.

varoitus8 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.

varoitus<1 ms
OK
Vaski-asiakirjoilla on lähdepolku

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

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

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

varoitus1,4 s

Data Integrity

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

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

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

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

kriittinen<1 ms
OK
Puoluejäsenyydet eivät päälle

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

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

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

kriittinen<1 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.

kriittinen<1 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.

kriittinen6 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.

kriittinen305 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.

kriittinen576 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.

kriittinen424 ms

Referential Integrity

OK
Äänet → Äänestykset

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

kriittinen828 ms
OK
Äänestykset → Edustajat

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

kriittinen666 ms
Poikkeamia (13)
Kohdat → Istunnot

Kaikkien kohtien täytyy viitata olemassa olevaan istuntoon.

kriittinen14 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.

varoitus69 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.

kriittinen<1 ms

PDF-tekstien poiminta

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