Stimmverhalten: Empfehlung-vs-Vote-Konsistenz #167

Closed
opened 2026-04-29 22:41:02 +02:00 by tobias · 1 comment
Owner

Folge-Issue zum Stimmverhalten-Feature (siehe Umbrella).

Idee

Pro Fraktion: % der Fälle, in denen assessment.empfehlung = "Uneingeschränkt unterstützen" (oder "Unterstützen mit Änderungen") UND die Fraktion NEIN gestimmt hat.

Macht sichtbar, wer gegen die GWÖ-Empfehlung des Systems stimmt — orthogonal zum Heuchelei-Score (der gegen Wahlprogramm-Treue prüft, nicht gegen GWÖ-Empfehlung).

Erwartete Aussagen

  • „Fraktion X stimmt in Y% der vom System als unterstützenswert eingestuften Anträge dagegen"
  • Differenziert die Heuchelei-Aussage: nicht „gegen das eigene Wahlprogramm", sondern „gegen GWÖ-Empfehlung"

Implementierung

In app/auswertungen.py:

  • aggregate_empfehlungs_konsistenz(filter_bl, filter_wp, min_n) — JOIN wie heute, plus Filter auf empfehlung in ("Uneingeschränkt unterstützen", "Unterstützen mit Änderungen").
  • Output: pro Fraktion n_empfohlen, n_nein_trotz_empfehlung, quote, ausreichend.

In app/main.py:

  • GET /api/auswertungen/empfehlungs-konsistenz

In Template:

  • Sub-Sektion im Stimmverhalten-Tab oder direkt unter Heuchelei-Quote (semantisch verwandt).

Warum nicht in Phase 1?

User-Auswahl: nur 4 von 9 brainstormten Aussagen für MVP. Empfehlungs-Konsistenz ist nicht im MVP-Scope, aber sehr wertvoll. Niedrig hängende Frucht für Phase 2.

Folge-Issue zum Stimmverhalten-Feature (siehe Umbrella). ## Idee Pro Fraktion: **% der Fälle, in denen `assessment.empfehlung = "Uneingeschränkt unterstützen"` (oder `"Unterstützen mit Änderungen"`) UND die Fraktion NEIN gestimmt hat**. Macht sichtbar, wer gegen die GWÖ-Empfehlung des Systems stimmt — orthogonal zum Heuchelei-Score (der gegen Wahlprogramm-Treue prüft, nicht gegen GWÖ-Empfehlung). ## Erwartete Aussagen - „Fraktion X stimmt in Y% der vom System als unterstützenswert eingestuften Anträge dagegen" - Differenziert die Heuchelei-Aussage: nicht „gegen das eigene Wahlprogramm", sondern **„gegen GWÖ-Empfehlung"** ## Implementierung In `app/auswertungen.py`: - `aggregate_empfehlungs_konsistenz(filter_bl, filter_wp, min_n)` — JOIN wie heute, plus Filter auf `empfehlung in ("Uneingeschränkt unterstützen", "Unterstützen mit Änderungen")`. - Output: pro Fraktion `n_empfohlen, n_nein_trotz_empfehlung, quote, ausreichend`. In `app/main.py`: - `GET /api/auswertungen/empfehlungs-konsistenz` In Template: - Sub-Sektion im Stimmverhalten-Tab oder direkt unter Heuchelei-Quote (semantisch verwandt). ## Warum nicht in Phase 1? User-Auswahl: nur 4 von 9 brainstormten Aussagen für MVP. Empfehlungs-Konsistenz ist nicht im MVP-Scope, aber sehr wertvoll. Niedrig hängende Frucht für Phase 2.
Author
Owner

Implementiert in commit d81753c.

Live auf dev: /api/auswertungen/empfehlungs-konsistenz und 5. Sub-Section im Stimmverhalten-Tab.

Erste Ergebnisse (12 Anträge mit GWÖ-Empfehlung+ × Vote):

Fraktion Inkonsistenz-Quote Bedeutung
AfD 45.5% 5 von 11 empfohlenen Anträgen mit Nein gestimmt
CDU 27.3% 3 von 11
GRÜNE 27.3% 3 von 11
FDP 20% 2 von 10
SPD 9.1% 1 von 11
BSW 0% 0 von 1

Plus CSV-Export (war im Umbrella-Issue #165 als Querschnitts-TODO): /api/auswertungen/stimmverhalten.csv mit Long-Format-Spalten (drucksache, bundesland, wahlperiode, datum, gwoe_score, empfehlung, partei, vote, ist_antragsteller).

Closing.

Implementiert in commit d81753c. Live auf dev: `/api/auswertungen/empfehlungs-konsistenz` und 5. Sub-Section im Stimmverhalten-Tab. **Erste Ergebnisse** (12 Anträge mit GWÖ-Empfehlung+ × Vote): | Fraktion | Inkonsistenz-Quote | Bedeutung | |---|---|---| | AfD | 45.5% | 5 von 11 empfohlenen Anträgen mit Nein gestimmt | | CDU | 27.3% | 3 von 11 | | GRÜNE | 27.3% | 3 von 11 | | FDP | 20% | 2 von 10 | | SPD | 9.1% | 1 von 11 | | BSW | 0% | 0 von 1 | **Plus CSV-Export** (war im Umbrella-Issue #165 als Querschnitts-TODO): `/api/auswertungen/stimmverhalten.csv` mit Long-Format-Spalten (drucksache, bundesland, wahlperiode, datum, gwoe_score, empfehlung, partei, vote, ist_antragsteller). Closing.
Sign in to join this conversation.
No description provided.