# OpenRCV — Aufbereitete Abstimmungsdaten

Stand: **2026-08-17 06:03 CEST** · Quelle: **Europäisches Parlament, Open Data Portal** (https://data.europarl.europa.eu/) · Lizenz: **CC BY 4.0**

Dieser Datensatz enthält die **primären namentlichen Schlussabstimmungen** (je Vorlage eine) der **10. Wahlperiode ab dem 1. Juli 2024** des Europäischen Parlaments — inklusive der **offiziellen Stimmkorrekturen**, die viele andere Datensätze weglassen.

## Lizenz & Namensnennung

Die EP-Daten stehen unter **CC BY 4.0** (© Europäisches Parlament). Bei Weiterverwendung ist die Quelle zu nennen, z. B.:

> Datenquelle: Europäisches Parlament (Open Data Portal), aufbereitet von OpenRCV (https://openrcv.eu), CC BY 4.0.

Keine Share-alike-Pflicht — die Daten sind frei weiterverwendbar.

## Tabellen

### `votes` — Abstimmungen (primäre Schlussabstimmung je Vorlage)  (690 Zeilen, CSV + JSON)

- `vote_id` — Eindeutige Kennung: Datum_VOT-ITM-Nummer (z. B. 2026-06-17_992855). Das Datumspräfix sorgt für globale Eindeutigkeit, da prozedurale Tagesordnungs-Abstimmungen nur tagesweise nummeriert sind.
- `date` — Abstimmungsdatum (ISO 8601)
- `title` — Titel der Vorlage
- `reference` — Aktenzeichen (z. B. A10-0048/2026)
- `committee` — Federführender Ausschuss (Kürzel)
- `committee_full` — Federführender Ausschuss (voller Name)
- `rapporteur` — Berichterstatter:in (nur bei A-Berichten)
- `roll_call_final_vote` — true = es gab eine namentliche Schlussabstimmung; false = nur namentliche Änderungsanträge/prozedurale Voten (Schlussvotum per Handzeichen) → kein result/count
- `result` — Ergebnis (ADOPTED / REJECTED / …)
- `count_for` — Amtliche Anzahl Ja-Stimmen
- `count_against` — Amtliche Anzahl Nein-Stimmen
- `count_abstention` — Amtliche Anzahl Enthaltungen
- `topics` — EuroVoc-Themen, mit „; “ getrennt
- `rollcall_count` — Anzahl namentlicher Abstimmungen zur Vorlage
- `session` — Plenarsitzung (Bezeichnung)
- `url` — Link zur Detailseite auf openrcv.eu

### `member_votes` — Einzelstimmen der Abgeordneten (inkl. Korrekturen)  (495.897 Zeilen, CSV)

- `vote_id` — Verweis auf votes.vote_id
- `member_id` — Verweis auf members.member_id (EP-MdEP-ID)
- `position` — Position: FOR / AGAINST / ABSTENTION / EXCUSED (offiziell entschuldigt) / DID_NOT_VOTE (im Mandat, aber nicht abgestimmt)
- `position_corrected` — Beabsichtigte Stimme laut offizieller Korrektur (leer = keine Korrektur). Das amtliche Ergebnis bleibt unberührt.

### `members` — Abgeordnete (aktuelles Roster)  (739 Zeilen, CSV + JSON)

- `member_id` — EP-MdEP-ID
- `first_name` — Vorname
- `last_name` — Nachname
- `country_code` — Mitgliedstaat (ISO-2)
- `country` — Mitgliedstaat (deutsch)
- `group_code` — Fraktions-Code
- `group_label` — Fraktion (Kurzlabel)
- `party` — Nationale Partei (Kürzel)
- `party_full` — Nationale Partei (voller Name)

### `groups` — Fraktionen  (9 Zeilen, CSV + JSON)

- `code` — Fraktions-Code
- `label` — Kurzlabel
- `label_full` — Voller Name

### `countries` — Mitgliedstaaten  (27 Zeilen, CSV + JSON)

- `code` — ISO-2-Code
- `name` — Deutscher Name

## Umfang & Hinweise

- **Eine Zeile je Vorlage** in `votes` = die *primäre* Schlussabstimmung (Hauptabstimmung). Änderungs-/Teilabstimmungen sind nicht einzeln enthalten (`rollcall_count` nennt deren Gesamtzahl).
- `member_votes` ist **vollständig**: neben den abgegebenen Stimmen (FOR/AGAINST/ABSTENTION) auch **EXCUSED** (offiziell entschuldigt) und **DID_NOT_VOTE** (im Mandat, aber nicht abgestimmt). DID_NOT_VOTE/EXCUSED sind **mandatsbezogen** für das aktuelle Roster gesetzt (Nachrücker:innen erhalten keine Zeilen vor ihrem Mandatsbeginn). Wegen der Größe (~470.000 Zeilen) zusätzlich als **`member_votes.csv.gz`** und **`member_votes.json.gz`**.
- `members` ist das **aktuelle Roster** (Stand 2026-06-18). Vereinzelte historische Stimmen in `member_votes` lassen sich daher evtl. nicht auf eine aktuelle Zeile joinen.
- Die **Fraktions-/Länderzuordnung** in `members` ist die *aktuelle*; sie kann von der Zugehörigkeit zum Abstimmungszeitpunkt abweichen.
- Amtliche Gesamtzahlen (`count_*`) stammen direkt aus dem EP-Ergebnis.

## Join-Beispiel

```
member_votes.vote_id   → votes.vote_id
member_votes.member_id → members.member_id
members.group_code     → groups.code
members.country_code   → countries.code
```
