Methodologie

Welke gegevens zijn officieel, wat berekent Kamerkater en hoe moet u de uitkomsten lezen?

Officiële brongegevens

Herkomst van de gegevens

De bronrecords komen uit het Open Data Portaal van de Tweede Kamer, via de publieke OData v5-interface van het gegevensmagazijn. Kamerkater haalt die records geautomatiseerd op en verandert de officiële besluituitslag niet.

Kamerkater maakt vervolgens eigen selecties, koppelingen, classificaties, percentages en rangschikkingen. Die afgeleide informatie is dus geen officiële duiding van de Tweede Kamer. Op de analysepagina’s staat daarom expliciet wat brongegeven is en wat Kamerkater berekent.

Gebruikte gegevenssoorten

EntiteitWat de Kamer registreertWaarvoor Kamerkater die gebruikt
FractieFracties en zetelaantallenZetelverdeling en fractiedossiers
BesluitBesluiten en officiële uitslagenStemmingen, tijdlijnen en uitslaglabels
StemmingGeregistreerde fractie- of persoonsstemmenVoor/tegen-verdeling en overeenstemming
ZaakDe zaak achter een besluitTitel, dossier, indieners en indicatieve thema’s
PersoonOnder meer naam, geboortedatum, geregistreerd geslacht en woonplaatsPersoonsdossiers en samenstellingscijfers
FractieZetelPersoonKoppeling tussen persoon en actieve fractiezetelActuele fractie per Kamerlid
ZaakActorGeregistreerde indieners van een zaakMotie-aantallen per persoon en fractie
DocumentHet officiële KamerstukLink naar het volledige document
PersoonGeschenk, PersoonReis, PersoonNevenfunctieOpenbare registervermeldingenRegisteroverzichten in persoons- en fractiedossiers

De analyses beginnen op 12 november 2025, de installatiedatum van de huidige Tweede Kamer. Historische resultaten worden tijdelijk gecachet om de bron niet onnodig te belasten. Een cache kan daardoor maximaal ongeveer een uur achterlopen; pasfoto’s worden langer bewaard. Als de bron tijdelijk niet bereikbaar is, kan de site een volledige laatst bekende momentopname tonen en markeert de API die toestand als verouderd.

Berekend door Kamerkater

Definities en rekenregels

Fractiestemmen en gesplitste hoofdelijke stemmen

Bij een gewone fractiestemming staat één keuze per fractie geregistreerd. Bij een hoofdelijke stemming kan een fractie zowel voor- als tegenstemmende leden hebben. Kamerkater bewaart zo’n positie als gesplitst, inclusief het aantal zetels voor en tegen. De site dwingt die positie niet tot een kunstmatige meerderheidskeuze.

Gesplitste posities tellen daarom niet mee in binaire fractiepercentages, overeenstemmingsmatrices of vergelijkingen. Waar een zetelvisualisatie wordt getoond, blijven de afzonderlijke voor- en tegenzetels zichtbaar. API-antwoorden vermelden hoeveel gesplitste posities zijn uitgesloten.

Overeenstemming tussen fracties

Voor ieder paar fracties telt Kamerkater stemmingen waarop beide fracties een ondubbelzinnige voor- of tegenkeuze hebben. Het percentage is het aandeel daarvan met dezelfde keuze. Paren met minder dan tien gedeelde stemmingen krijgen geen matrixwaarde; samenvattende uitersten vereisen minstens 25 gedeelde stemmingen. Overeenstemming meet alleen dezelfde geregistreerde stemrichting, niet dezelfde motivatie of politieke positie.

Indicatieve thema-indeling — classifier 2.0.0

De Onderwerpen-pagina gebruikt een versieerbare, deterministische classificatie van zaakonderwerpen, titels, dossiers en besluittekst. Regels werken met genormaliseerde volledige woorden, frases en expliciete woordprefixen. Daardoor levert bijvoorbeeld een achternaam met ‘boer’ of het werkwoord ‘overwegen’ geen onbedoelde thematreffer op. Expliciete correcties kunnen als controleerbare handmatige override bij dezelfde methodeversie worden vastgelegd.

Een stemming kan bij meerdere thema’s meetellen. Het API-record behoudt daarnaast één primair thema voor achterwaartse compatibiliteit. Thema-aantallen kunnen door die multi-label aanpak overlappen en tellen daarom niet noodzakelijk op tot het totaal aantal unieke stemmingen. Zonder treffer valt een stemming onder Overig. De indeling blijft indicatief en is geen officiële classificatie van de Kamer.

Verdeeldheid en krappe uitslagen

De verdeeldheid van een stemming is 1 − |voor − tegen| / (voor + tegen): 0 bij volledige unanimiteit en 1 bij een exact gelijke verhouding. Het gemiddelde per thema gebruikt alleen thema’s met minstens tien stemmingen. In de fractievergelijker betekent ‘verdeeld’ dat zowel voor als tegen minstens 25 zetels registreerden.

Moties en aandeel aangenomen

Een motie telt voor ieder Kamerlid dat als indiener staat geregistreerd, dus ook voor alle mede-indieners van een gezamenlijke motie. Het aandeel aangenomen moties gebruikt alleen moties met een geregistreerde uitslag. Voor de fractievergelijking wordt de fractie van de eerste indiener gebruikt; fracties met minder dan vijf besliste moties blijven buiten beeld. Dit aandeel is geen algemene effectiviteitsmaat.

Afwijkende persoonsstemmen

Alleen hoofdelijke stemmingen bevatten een geregistreerde keuze per Kamerlid. Kamerkater bepaalt per fractie de meerderheid onder de geregistreerde aanwezige leden. Een persoonsstem aan de andere kant telt als afwijking; bij een gelijk verdeelde fractie is er geen fractiemeerderheid en wordt geen afwijking toegekend. De term beschrijft een verschil in stemrichting en schrijft geen motivatie toe.

Leeftijd, rang en weekgemiddelde

Leeftijden worden uit de geboortedatum berekend op het moment waarop de pagina wordt geopend. De rang voor motie-activiteit vergelijkt actieve Kamerleden op hun aantal geregistreerde moties in de analyseperiode. Een weekgemiddelde gebruikt de periode waarin het lid binnen die analyseperiode actief is voor zover de bron dat toelaat.

Leeswijzer

Wat de cijfers wel en niet zeggen

  • Een voorstem is geen steun aan een thema. De betekenis hangt af van de inhoud en formulering van het voorstel.
  • Veel moties betekent veel geregistreerde indieningsactiviteit. Het zegt niet hoeveel ander Kamerwerk iemand verricht of hoe goed dat werk is.
  • Veel overeenstemming betekent vaak dezelfde stemrichting. Het bewijst geen bondgenootschap, gezamenlijke motivatie of ideologische nabijheid.
  • Een afwijkende persoonsstem is geen waardeoordeel. De berekening kan geen persoonlijke reden, fout of politiek belang vaststellen.
  • Een registervermelding bewijst geen belangenverstrengeling. De registers zijn bedoeld om belangen controleerbaar te maken; beoordeling vergt aanvullende context.
  • Een automatisch thema kan onjuist zijn. Open altijd het officiële besluit en document voordat u een inhoudelijke conclusie trekt.

Op persoonsniveau gebruikt Kamerkater daarom beschrijvende labels zoals ‘meeste geregistreerde moties’ en ‘hoogste gemiddelde overeenstemming’, niet speelse bijnamen of oordelen over karakter en intentie.

Datakwaliteit

Bekende beperkingen

  • Dubbele fractierecords. Een fractienaam kan meerdere historische records hebben. Kamerkater koppelt eerst op ID en valt waar nodig terug op een genormaliseerde naam.
  • Periode en lidmaatschap. De site analyseert de huidige zittingsperiode. Tussentijdse toetreding, vertrek of afsplitsing kan de relevante noemer per persoon of fractie veranderen.
  • Ontbrekende bronwaarden. Niet ieder record bevat een datum, document, uitslag, woonplaats of andere verwachte eigenschap. De interface toont dan een lege of onbekende waarde in plaats van iets af te leiden.
  • Indicatieve thema’s. De classifier vermindert bekende foutpositieven, maar kan context, ontkenning en politiek taalgebruik niet volledig begrijpen.
  • Afsplitsingen en eenlingen. Deze worden als afzonderlijke fracties behandeld. De volgorde in het halfrond is een handmatig onderhouden visualisatiekeuze, geen officiële links-rechtsschaal.
  • Bronwijzigingen en cache. De Kamer kan records achteraf aanpassen. Een wijziging verschijnt pas na de volgende succesvolle bronverversing.

De pagina Datakwaliteit toont controles op onder meer dubbele records, verouderde koppelingen, officieel vermelde stemvergissingen en uitslagen die niet aansluiten op de geregistreerde stemverhouding. Een bevinding signaleert een controlepunt; zij is niet automatisch bewijs dat de officiële uitslag onjuist is.

Techniek

Controleerbare uitvoering en hergebruik

Node.js en Express verzorgen de bronverzoeken, validatie en caches. De browserinterface gebruikt gewone HTML, CSS en JavaScript. API-antwoorden bevatten waar relevant bronmetadata, serveertijd, cachetoestand en de versie van de themaclassificatie.

Handige officiële en technische ingangen:

  • Documentatie van het Open Data Portaal
  • OData v5-metadata van het gegevensmagazijn
  • GET /api/voorpagina en GET /api/topics — samengestelde pagina-overzichten
  • GET /api/votes en GET /api/votes/:id — gepagineerde stemmingen en besluitdetails
  • GET /api/leden en GET /api/leden/:id/moties — leden en geregistreerde moties
  • GET /api/fracties, GET /api/fracties/:id en GET /api/headtohead — fracties en vergelijkingen
  • GET /api/search — zoeken in leden, moties en stemmingen
  • GET /api/inconsistenties — geautomatiseerde datakwaliteitscontroles