Corpus
Each speech below the KPIs is one full Bundestag plenary speech, parsed from the DIP API, with rhetorical-pattern markup. Click "Browse speeches" to read full texts.
| Measure | Count | Share | Distribution (scaled per group) |
|---|---|---|---|
| All speeches | 3784 | 100% | |
| by electoral term | |||
| WP17 | 16 | 0.4% | |
| WP18 | 2 | 0.1% | |
| WP19 | 49 | 1.3% | |
| WP20 | 1066 | 28.2% | |
| WP21 | 2651 | 70.1% | |
| by parliamentary group | |||
| AfD | 763 | 20.2% | |
| CDU/CSU | 887 | 23.4% | |
| Grüne | 768 | 20.3% | |
| Linke | 643 | 17.0% | |
| SPD | 723 | 19.1% | |
| by topic multiple per speech | |||
| Innere Sicherheit | 728 | 19.2% | |
| Migration | 640 | 16.9% | |
| Umwelt | 418 | 11.0% | |
| by reading level labelled only | |||
| B2 | 2465 | 65.1% | |
| C1 | 1319 | 34.9% | |
Bars scaled to the largest value in each group so small differences show; the Share column is the true percentage of all 3784 speeches.
Migration
Topos density per 10k tokens. Higher = topos more present in that fraction's speeches on this subject.
| Rhetorical pattern | AfD 168 speeches in topic |
CDU/CSU 133 speeches in topic |
Linke 82 speeches in topic |
Grüne 139 speeches in topic |
SPD 118 speeches in topic |
|---|---|---|---|---|---|
|
Gefahrentopos
Migration framed as a security threat. Crime, terror, danger.
|
38.4 n=42 | 24.5 n=18 | n=1 | n=2 | 24.8 n=5 |
|
Belastungstopos
Migration as a burden on the welfare state, housing, schools.
|
34.0 n=24 | 29.2 n=13 | - | n=1 | n=2 |
|
Nutzentopos
Migration as a benefit: skilled labour, growth, demographics.
|
- | 31.5 n=7 | n=1 | 32.5 n=4 | 38.8 n=5 |
|
Schadentopos
Damage and decline caused by bad migration policy.
|
32.8 n=12 | 25.9 n=3 | n=2 | 26.9 n=5 | n=1 |
|
Humanitätstopos
Humanitarian duty: asylum, refugees, human dignity.
|
26.4 n=8 | 44.2 n=14 | 48.9 n=11 | 38.0 n=12 | 83.4 n=8 |
|
Kulturtopos
Cultural identity, integration, national values, language.
|
23.9 n=13 | 15.5 n=3 | - | n=1 | 44.5 n=3 |
|
Rechtsstaatstopos
Rule of law: laws, courts, enforcement, due process.
|
59.7 n=52 | 50.3 n=29 | 83.7 n=3 | 48.4 n=6 | 39.8 n=18 |
|
Mißbrauchstopos
Abuse of the asylum system: bogus claims, fraud.
|
24.0 n=13 | 34.9 n=7 | - | - | 37.3 n=5 |
|
FlutMetapher
Flood metaphors: wave, stream, mass. Dehumanising scale imagery.
|
17.9 n=8 | 16.1 n=5 | - | - | n=1 |
|
EigenVsFremdgruppe
Us vs them: our people against outsiders or foreigners.
|
23.0 n=23 | 19.4 n=8 | n=1 | n=2 | - |
Cell value: average count of that rhetorical pattern per 10,000 words, computed only over the speeches where the stance pass labelled this pattern as deploy (speaker uses the frame as their own argument). The number under each value (n=X) is how many speeches contributed. Cells with n < 3 are shown as "n=X" without a density value because the average isn't trustworthy at that sample size. The thin bar under each cell shows the stance split across all speeches that triggered this pattern: orange = deploy, blue = critique, grey = unrelated. Click any cell to read the speeches behind it.
Klima
Topos density per 10k tokens. Higher = topos more present in that fraction's speeches on this subject.
| Rhetorical pattern | AfD 84 speeches in topic |
CDU/CSU 92 speeches in topic |
Linke 79 speeches in topic |
Grüne 80 speeches in topic |
SPD 83 speeches in topic |
|---|---|---|---|---|---|
|
Apokalyptiktopos
Existential climate threat: catastrophe, tipping points, doom.
|
n=1 | - | 33.0 n=14 | 49.5 n=8 | n=1 |
|
Generationengerechtigkeit
Duty to future generations, intergenerational fairness.
|
n=1 | 19.6 n=3 | 27.5 n=6 | - | - |
|
Technikoptimismus
Faith in technology to solve the climate problem.
|
22.1 n=3 | 54.6 n=17 | 19.0 n=3 | 19.3 n=3 | 33.3 n=9 |
|
Kostentopos
Climate policy too expensive, burden on taxpayers and industry.
|
45.0 n=30 | 35.0 n=11 | 38.9 n=10 | 49.7 n=9 | 41.2 n=10 |
|
Verzichtstopos
Climate action requires sacrifice, giving up comforts.
|
32.3 n=5 | - | n=1 | n=1 | - |
|
Wettbewerbstopos
Climate as economic race: green industries, competitiveness.
|
38.1 n=15 | 51.6 n=17 | 47.4 n=4 | 61.3 n=9 | 36.6 n=10 |
|
Wissenschaftstopos
Science, IPCC, evidence, expert consensus.
|
- | 83.6 n=8 | 29.7 n=3 | n=1 | n=2 |
|
Klimaskepsistopos
Climate skepticism: denial, doubt, conspiracy claims.
|
26.6 n=5 | n=2 | n=1 | - | - |
Cell value: average count of that rhetorical pattern per 10,000 words, computed only over the speeches where the stance pass labelled this pattern as deploy (speaker uses the frame as their own argument). The number under each value (n=X) is how many speeches contributed. Cells with n < 3 are shown as "n=X" without a density value because the average isn't trustworthy at that sample size. The thin bar under each cell shows the stance split across all speeches that triggered this pattern: orange = deploy, blue = critique, grey = unrelated. Click any cell to read the speeches behind it.
Innere Sicherheit
Topos density per 10k tokens. Higher = topos more present in that fraction's speeches on this subject.
| Rhetorical pattern | AfD 176 speeches in topic |
CDU/CSU 183 speeches in topic |
Linke 97 speeches in topic |
Grüne 129 speeches in topic |
SPD 143 speeches in topic |
|---|---|---|---|---|---|
|
Härtetopos
Tougher penalties, harsher sentences, zero tolerance.
|
32.1 n=19 | 31.1 n=26 | 47.8 n=4 | 20.9 n=4 | 20.9 n=15 |
|
Rechtsdurchsetzungstopos
Enforce existing law: deport, prosecute, no leniency.
|
78.8 n=51 | 78.4 n=49 | 99.8 n=9 | 75.2 n=18 | 79.4 n=35 |
|
Polizeistärkungstopos
More police, better equipment, more powers.
|
102.3 n=40 | 96.9 n=30 | 69.6 n=5 | 75.9 n=23 | 133.5 n=26 |
|
Bürgerrechtstopos
Civil liberties, privacy, pushback on surveillance.
|
52.1 n=22 | 41.9 n=12 | 79.3 n=12 | 36.8 n=16 | 24.6 n=12 |
|
Extremismustopos
Extremism: right-wing, left-wing, Islamist threat framing.
|
61.7 n=51 | 68.2 n=36 | 80.8 n=27 | 101.3 n=37 | 46.5 n=27 |
|
Präventionstopos
Prevention: education, social work, deradicalisation.
|
32.6 n=7 | 26.9 n=10 | 40.3 n=14 | 32.2 n=20 | 25.6 n=11 |
|
Bedrohungslagetopos
Threat assessment: threat level, intelligence reporting.
|
29.7 n=19 | 20.8 n=16 | n=1 | 23.4 n=12 | 25.8 n=10 |
|
Vertrauenstopos
Trust in institutions, police, judiciary.
|
31.9 n=16 | 26.4 n=15 | 23.3 n=4 | 23.6 n=13 | 39.5 n=19 |
Cell value: average count of that rhetorical pattern per 10,000 words, computed only over the speeches where the stance pass labelled this pattern as deploy (speaker uses the frame as their own argument). The number under each value (n=X) is how many speeches contributed. Cells with n < 3 are shown as "n=X" without a density value because the average isn't trustworthy at that sample size. The thin bar under each cell shows the stance split across all speeches that triggered this pattern: orange = deploy, blue = critique, grey = unrelated. Click any cell to read the speeches behind it.
Top earners - declared sidejob income
MdBs in this corpus ranked by reported Nebentätigkeiten income (abgeordnetenwatch aggregation of Bundestag disclosures). Click a name for the full profile.
| MdB | Fraktion | Sidejobs | Declared total |
|---|---|---|---|
| Alexander Engelhard | CDU/CSU | 154 | 5,069,994 EUR |
| Thomas Heilmann | CDU/CSU | 16 | 3,511,649 EUR |
| Fritz Güntzler | CDU/CSU | 95 | 1,387,740 EUR |
| Enrico Komning | AfD | 558 | 1,280,279 EUR |
| Gregor Gysi | Linke | 494 | 744,703 EUR |
| Bernd Schattner | AfD | 16 | 416,046 EUR |
| Lars Klingbeil | SPD | 26 | 319,395 EUR |
| Saskia Esken | SPD | 11 | 315,000 EUR |
| Kevin Kühnert | SPD | 4 | 315,000 EUR |
| Simone Borchardt | CDU/CSU | 4 | 205,970 EUR |
Recent immunity proceedings
Latest cases where parliament voted to lift an MdB's immunity. Source: DIP Vorgangstyp Immunitätsangelegenheit.
| Date | WP | MdB | Party | Type | Outcome |
|---|---|---|---|---|---|
| 2026-04-23 | WP21 | Gökay Akbulut | DIE LINKE. | Strafverfahren | aufgehoben |
| 2026-04-23 | WP21 | Hannes Gnauck | AfD | Disziplinarverfahren | aufgehoben |
| 2026-02-26 | WP21 | Maximilian Krah | AfD | Durchsuchung/Beschlagnahme | aufgehoben |
| 2025-11-06 | WP21 | Arne Raue | AfD | Disziplinarverfahren | aufgehoben |
| 2025-11-06 | WP21 | Raimond Scheirich | AfD | Durchsuchung/Beschlagnahme | aufgehoben |
| 2025-11-06 | WP21 | Raimond Scheirich | AfD | Durchsuchung/Beschlagnahme | aufgehoben |
| 2025-10-09 | WP21 | Matthias Moosdorf | AfD | Strafverfahren | aufgehoben |
| 2025-10-09 | WP21 | Stephan Brandner | AfD | andere | aufgehoben |
| 2025-09-11 | WP21 | Stephan Brandner | AfD | Strafverfahren | aufgehoben |
| 2025-09-11 | WP21 | Maximilian Krah | AfD | Durchsuchung/Beschlagnahme | aufgehoben |
Recent jobs
| ID | Job | Status | Enqueued |
|---|---|---|---|
| 28 | classify_stance all gpt-4o-mini | done | 2026-05-25 18:18:17 |
| 27 | analyze_topoi sicherheit | done | 2026-05-25 18:18:17 |
| 26 | analyze_topoi klima | done | 2026-05-25 18:18:17 |
| 25 | analyze_topoi migration | done | 2026-05-25 18:18:17 |
| 24 | classify_stance all gpt-4o-mini | failed | 2026-05-25 16:12:13 |
| 23 | analyze_topoi sicherheit | done | 2026-05-25 16:12:13 |
| 22 | analyze_topoi klima | done | 2026-05-25 16:12:13 |
| 21 | analyze_topoi migration | done | 2026-05-25 16:12:13 |
| 20 | sync_fractions | running | 2026-05-25 16:12:13 |
| 19 | classify_stance all gpt-4o-mini | done | 2026-05-25 16:02:13 |