Code
source(here::here("R", "prep.R"))
library(stringr)
library(purrr)
library(ggrepel)source(here::here("R", "prep.R"))
library(stringr)
library(purrr)
library(ggrepel)Dieses Kapitel beantwortet die Frage, ob sich die digitalpolitischen Leitbegriffe der letzten Koalitionsverträge in den Haushaltstiteln widerspiegeln. Damit wird versucht zu verstehen, inwiefern die Sprache der Politik sich in tatsächliche Budgetplanung übersetzt.
Zunächst wurden das jeweilige digitalpolitische Kapitel des GroKo-KV 2018 (Kap. IV.5 „Digitalisierung“) (CDU et al., 2018) und des Ampel-KV 2021 (Kap. II „Moderner Staat, digitaler Aufbruch und Innovationen“) (SPD et al., 2021) gelesen und die zentralen Leitbegriffe extrahiert.
GroKo-Begriffe wurden gegen die Haushaltsjahre 2019 und 2021 getestet; Ampel-Begriffe gegen 2023 und 2024. Das Jahr 2025 wurde ausgeschlossen (Übergang neue GroKo/CDU).
Im Anschluss wurden Begriffe wie folgt kategorisiert:
Die Zuordnung der Begriffe als „verlässlich“ erfolgte wie folgt:
Es wurde eine Falsch-Positiv-Rate (FP %) berechnet. Das ist der Anteil der Haushaltszeilen, die ein Schlagwort enthalten, aber nach Expertenprüfung durch die Studie „Der Digitalhaushalt 2025“ (Bertschek et al., 2026) als nicht digital eingestuft wurden (digi_klasse = 0). Formel: abgelehnte Treffer ÷ (bestätigt + abgelehnt) × 100.
Die Verlässlichkeit der Begriffe wurde eingestuft (eigene Einstufung):
| Stufe | FP % | Bedeutung |
|---|---|---|
| Verlässlich · FP ≤ 10 % | ≤ 10 % | Begriff erscheint im Haushalt und ist ein sicheres Digitalsignal |
| Gemischt · FP 11–35 % | 11–35 % | Begriff erscheint, aber mit nennenswert vielen Fehltreffern |
| Unsicher · FP > 35 % | > 35 % | Mehr als jede dritte Zeile ist kein digitaler Haushalt |
| Nicht im Haushalt | — | Begriff kommt in keiner Haushaltszeile der relevanten Jahre vor |
# ---- Haushaltsjahre je Regierung --------------------------------------------
jahre_2018 <- c(2019L, 2021L) # GroKo KV 2018 (CDU/CSU + SPD)
jahre_2021 <- c(2023L, 2024L) # Ampel KV 2021 (SPD + Grüne + FDP)
# ---- GroKo KV 2018: Kapitel IV.5 „Digitalisierung" (S. 37–49) --------------
kv_terms_2018 <- tribble(
~term, ~pattern,
"Gigabit / Glasfaser", "[Gg]igabit|[Gg]lasfaser",
"5G", "\\b5G\\b",
"Digitalpakt", "[Dd]igital[Pp]akt",
"KI / Künstliche Intelligenz", "Künstliche Intelligenz|\\[KI\\]|\\{KI\\}",
"Blockchain", "[Bb]lockchain",
"Quantencomputing", "[Qq]uanten",
"Smart City / Smart Grid", "[Ss]mart.?[Cc]it|[Ss]mart.?[Gg]rid",
"OZG", "\\bOZG\\b",
"E-Government", "[Ee]-?[Gg]overnment",
"Registermodernisierung", "[Rr]egistermodern",
"Digitale Souveränität", "[Dd]igitale.{0,8}[Ss]ouver",
"eID / elektron. Personalausweis", "\\beID\\b|[Ee]lektronische.{0,15}[Ii]dentifiz",
"Data Science", "[Dd]ata.?[Ss]cience"
)
# ---- Ampel KV 2021: Kapitel II „Digitale Innovationen …" (S. 12–15) --------
kv_terms_2021 <- tribble(
~term, ~pattern,
"Glasfaser / FTTH", "[Gg]lasfaser|\\bFTTH\\b",
"5G", "\\b5G\\b",
"Gigabit", "[Gg]igabit",
"OZG / EfA-Prinzip", "\\bOZG\\b|\\bEfA\\b",
"Registermodernisierung", "[Rr]egistermodern",
"Open Source", "[Oo]pen.?[Ss]ource",
"Cloud der öff. Verwaltung", "[Cc]loud",
"KI / Künstliche Intelligenz", "Künstliche Intelligenz|\\[KI\\]|\\{KI\\}",
"Quantentechnologien", "[Qq]uanten",
"Digitale Souveränität", "[Dd]igitale.{0,8}[Ss]ouver",
"Cybersicherheit / BSI", "[Cc]yber|Bundesamt für Sicherheit",
"Datentreuhänder", "[Dd]atentreuhänd",
"Open Data", "[Oo]pen.?[Dd]ata",
"Digitale Zwillinge", "[Dd]igitale.{0,8}[Zz]willing",
"DLT / Distributed Ledger", "[Dd]istributed.?[Ll]edger|\\bDLT\\b"
)Die Begriffe, die den Verträgen entnommen wurden, sind folgende:
bind_rows(
kv_terms_2018 %>% mutate(Regierung = "GroKo 2018 (CDU/CSU+SPD)"),
kv_terms_2021 %>% mutate(Regierung = "Ampel 2021 (SPD+Grüne+FDP)")
) %>%
mutate(Regierung = factor(Regierung, levels = c(
"GroKo 2018 (CDU/CSU+SPD)",
"Ampel 2021 (SPD+Grüne+FDP)"
))) %>%
arrange(Regierung) %>%
select(Regierung, Begriff = term) %>%
hhc_table()| Regierung | Begriff |
|---|---|
| GroKo 2018 (CDU/CSU+SPD) | Gigabit / Glasfaser |
| GroKo 2018 (CDU/CSU+SPD) | 5G |
| GroKo 2018 (CDU/CSU+SPD) | Digitalpakt |
| GroKo 2018 (CDU/CSU+SPD) | KI / Künstliche Intelligenz |
| GroKo 2018 (CDU/CSU+SPD) | Blockchain |
| GroKo 2018 (CDU/CSU+SPD) | Quantencomputing |
| GroKo 2018 (CDU/CSU+SPD) | Smart City / Smart Grid |
| GroKo 2018 (CDU/CSU+SPD) | OZG |
| GroKo 2018 (CDU/CSU+SPD) | E-Government |
| GroKo 2018 (CDU/CSU+SPD) | Registermodernisierung |
| GroKo 2018 (CDU/CSU+SPD) | Digitale Souveränität |
| GroKo 2018 (CDU/CSU+SPD) | eID / elektron. Personalausweis |
| GroKo 2018 (CDU/CSU+SPD) | Data Science |
| Ampel 2021 (SPD+Grüne+FDP) | Glasfaser / FTTH |
| Ampel 2021 (SPD+Grüne+FDP) | 5G |
| Ampel 2021 (SPD+Grüne+FDP) | Gigabit |
| Ampel 2021 (SPD+Grüne+FDP) | OZG / EfA-Prinzip |
| Ampel 2021 (SPD+Grüne+FDP) | Registermodernisierung |
| Ampel 2021 (SPD+Grüne+FDP) | Open Source |
| Ampel 2021 (SPD+Grüne+FDP) | Cloud der öff. Verwaltung |
| Ampel 2021 (SPD+Grüne+FDP) | KI / Künstliche Intelligenz |
| Ampel 2021 (SPD+Grüne+FDP) | Quantentechnologien |
| Ampel 2021 (SPD+Grüne+FDP) | Digitale Souveränität |
| Ampel 2021 (SPD+Grüne+FDP) | Cybersicherheit / BSI |
| Ampel 2021 (SPD+Grüne+FDP) | Datentreuhänder |
| Ampel 2021 (SPD+Grüne+FDP) | Open Data |
| Ampel 2021 (SPD+Grüne+FDP) | Digitale Zwillinge |
| Ampel 2021 (SPD+Grüne+FDP) | DLT / Distributed Ledger |
# ---- Hilfsfunktion: KV-Begriffe gegen ausgewählte Haushaltsjahre testen ----
test_kv_terms <- function(terms_tbl, years) {
terms_tbl %>%
mutate(
data = map(pattern, function(pat) {
hits <- df %>% filter(jahr %in% years, str_detect(titel_text, pat))
tibble(
gesamt = nrow(hits),
bestaetigt = sum(!is.na(hits$digi_klasse) & hits$digi_klasse > 0),
abgelehnt = sum(!is.na(hits$digi_klasse) & hits$digi_klasse == 0),
fp_pct = if_else(bestaetigt + abgelehnt > 0,
round(abgelehnt / (bestaetigt + abgelehnt) * 100, 1),
NA_real_)
)
})
) %>%
tidyr::unnest(data) %>%
select(-pattern) %>%
mutate(
status = case_when(
gesamt == 0 ~ "Nicht im Haushalt",
fp_pct <= 10 ~ "Verlässlich · FP ≤ 10 %",
fp_pct <= 35 ~ "Gemischt · FP 11–35 %",
TRUE ~ "Unsicher · FP > 35 %"
),
status = factor(status, levels = c(
"Verlässlich · FP ≤ 10 %",
"Gemischt · FP 11–35 %",
"Unsicher · FP > 35 %",
"Nicht im Haushalt"
))
)
}
# Gemeinsame Farbpalette für beide KV-Lollipop-Grafiken
kv_colours <- c(
"Verlässlich · FP ≤ 10 %" = "#1A56C4",
"Gemischt · FP 11–35 %" = "#E6960C",
"Unsicher · FP > 35 %" = "#C0392B",
"Nicht im Haushalt" = "grey60"
)
# Fügt Phantom-Zeilen für fehlende Stufen ein, damit alle Legendeneinträge
# ein Symbol erhalten — na.rm = TRUE im geom verhindert das Plotten der NAs.
add_legend_phantoms <- function(df) {
missing_lvls <- setdiff(levels(df$status), as.character(df$status))
if (length(missing_lvls) == 0L) return(df)
bind_rows(df, tibble(
term = factor(levels(df$term)[1L], levels = levels(df$term)),
bestaetigt = NA_integer_,
status = factor(missing_lvls, levels = levels(df$status))
))
}kv_2018_results <- test_kv_terms(kv_terms_2018, jahre_2018)
kv_2021_results <- test_kv_terms(kv_terms_2021, jahre_2021)
kv_x_max <- max(kv_2018_results$bestaetigt, kv_2021_results$bestaetigt, na.rm = TRUE)Die durchgeführte Analyse wird in drei Visualisierungen dargestellt:
kv_2018_results %>%
mutate(term = reorder(term, bestaetigt)) %>%
add_legend_phantoms() %>%
ggplot(aes(x = bestaetigt, y = term, colour = status)) +
geom_point(size = 4, na.rm = TRUE) +
geom_segment(aes(x = 0, xend = bestaetigt, yend = term),
colour = "grey80", linewidth = 0.4, na.rm = TRUE) +
scale_colour_manual(values = kv_colours, name = NULL, drop = FALSE) +
scale_x_continuous(limits = c(0, kv_x_max), breaks = scales::breaks_pretty(n = 5)) +
guides(colour = guide_legend(nrow = 2, byrow = TRUE)) +
labs(
title = "GroKo KV 2018: Was im Haushalt landet",
subtitle = "Bestätigte Haushaltstitel je Leitbegriff (HH-Jahre 2019 + 2021)",
x = "Anzahl bestätigter digitaler Haushaltstitel",
y = NULL,
caption = "Quelle: Digitalhaushalt Open Data. Begriffe aus KV-Kapitel IV.5 Digitalisierung (S. 37-49)."
) +
theme_hhc() +
theme(panel.grid.major.y = element_blank(),
panel.grid.major.x = element_line(colour = "grey90"),
legend.position = "bottom")
kv_2021_results %>%
mutate(term = reorder(term, bestaetigt)) %>%
add_legend_phantoms() %>%
ggplot(aes(x = bestaetigt, y = term, colour = status)) +
geom_point(size = 4, na.rm = TRUE) +
geom_segment(aes(x = 0, xend = bestaetigt, yend = term),
colour = "grey80", linewidth = 0.4, na.rm = TRUE) +
scale_colour_manual(values = kv_colours, name = NULL, drop = FALSE) +
scale_x_continuous(limits = c(0, kv_x_max), breaks = scales::breaks_pretty(n = 5)) +
guides(colour = guide_legend(nrow = 2, byrow = TRUE)) +
labs(
title = "Ampel KV 2021: Was im Haushalt landet",
subtitle = "Bestätigte Haushaltstitel je Leitbegriff — HH-Jahre 2023 + 2024",
x = "Anzahl bestätigter digitaler Haushaltstitel",
y = NULL,
caption = "Quelle: Digitalhaushalt Open Data. Begriffe aus KV-Kapitel II Digitale Innovationen (S. 12-15)."
) +
theme_hhc() +
theme(panel.grid.major.y = element_blank(),
panel.grid.major.x = element_line(colour = "grey90"),
legend.position = "bottom")
bind_rows(
kv_2018_results %>% mutate(Regierung = "GroKo 2018 (HH 2019+2021)"),
kv_2021_results %>% mutate(Regierung = "Ampel 2021 (HH 2023+2024)")
) %>%
mutate(Regierung = factor(Regierung,
levels = c("GroKo 2018 (HH 2019+2021)",
"Ampel 2021 (HH 2023+2024)"))) %>%
arrange(Regierung, status, desc(bestaetigt)) %>%
transmute(
Regierung,
Begriff = term,
`Im Haushalt` = if_else(gesamt == 0, "–", as.character(gesamt)),
`Davon bestätigt` = if_else(gesamt == 0, "–", as.character(bestaetigt)),
`FP %` = if_else(is.na(fp_pct), "–", as.character(fp_pct)),
Status = as.character(status)
) %>%
hhc_table(caption = "KV-Begriffe beider Regierungen und ihr Budgetabdruck")| Regierung | Begriff | Im Haushalt | Davon bestätigt | FP % | Status |
|---|---|---|---|---|---|
| GroKo 2018 (HH 2019+2021) | KI / Künstliche Intelligenz | 19 | 19 | 0 | Verlässlich · FP ≤ 10 % |
| GroKo 2018 (HH 2019+2021) | Quantencomputing | 7 | 7 | 0 | Verlässlich · FP ≤ 10 % |
| GroKo 2018 (HH 2019+2021) | 5G | 6 | 6 | 0 | Verlässlich · FP ≤ 10 % |
| GroKo 2018 (HH 2019+2021) | Smart City / Smart Grid | 4 | 4 | 0 | Verlässlich · FP ≤ 10 % |
| GroKo 2018 (HH 2019+2021) | Blockchain | 3 | 3 | 0 | Verlässlich · FP ≤ 10 % |
| GroKo 2018 (HH 2019+2021) | OZG | 1 | 1 | 0 | Verlässlich · FP ≤ 10 % |
| GroKo 2018 (HH 2019+2021) | E-Government | 1 | 1 | 0 | Verlässlich · FP ≤ 10 % |
| GroKo 2018 (HH 2019+2021) | Registermodernisierung | 1 | 1 | 0 | Verlässlich · FP ≤ 10 % |
| GroKo 2018 (HH 2019+2021) | Gigabit / Glasfaser | – | – | – | Nicht im Haushalt |
| GroKo 2018 (HH 2019+2021) | Digitalpakt | – | – | – | Nicht im Haushalt |
| GroKo 2018 (HH 2019+2021) | Digitale Souveränität | – | – | – | Nicht im Haushalt |
| GroKo 2018 (HH 2019+2021) | eID / elektron. Personalausweis | – | – | – | Nicht im Haushalt |
| GroKo 2018 (HH 2019+2021) | Data Science | – | – | – | Nicht im Haushalt |
| Ampel 2021 (HH 2023+2024) | Cybersicherheit / BSI | 88 | 83 | 5.7 | Verlässlich · FP ≤ 10 % |
| Ampel 2021 (HH 2023+2024) | KI / Künstliche Intelligenz | 49 | 49 | 0 | Verlässlich · FP ≤ 10 % |
| Ampel 2021 (HH 2023+2024) | Quantentechnologien | 14 | 14 | 0 | Verlässlich · FP ≤ 10 % |
| Ampel 2021 (HH 2023+2024) | Registermodernisierung | 7 | 7 | 0 | Verlässlich · FP ≤ 10 % |
| Ampel 2021 (HH 2023+2024) | Open Source | 6 | 6 | 0 | Verlässlich · FP ≤ 10 % |
| Ampel 2021 (HH 2023+2024) | 5G | 5 | 5 | 0 | Verlässlich · FP ≤ 10 % |
| Ampel 2021 (HH 2023+2024) | Gigabit | 3 | 3 | 0 | Verlässlich · FP ≤ 10 % |
| Ampel 2021 (HH 2023+2024) | Open Data | 2 | 2 | 0 | Verlässlich · FP ≤ 10 % |
| Ampel 2021 (HH 2023+2024) | Cloud der öff. Verwaltung | 8 | 6 | 25 | Gemischt · FP 11–35 % |
| Ampel 2021 (HH 2023+2024) | OZG / EfA-Prinzip | 2 | 1 | 50 | Unsicher · FP > 35 % |
| Ampel 2021 (HH 2023+2024) | Glasfaser / FTTH | – | – | – | Nicht im Haushalt |
| Ampel 2021 (HH 2023+2024) | Digitale Souveränität | – | – | – | Nicht im Haushalt |
| Ampel 2021 (HH 2023+2024) | Datentreuhänder | – | – | – | Nicht im Haushalt |
| Ampel 2021 (HH 2023+2024) | Digitale Zwillinge | – | – | – | Nicht im Haushalt |
| Ampel 2021 (HH 2023+2024) | DLT / Distributed Ledger | – | – | – | Nicht im Haushalt |
„Digitale Souveränität“: null Treffer in beiden Regierungen. Der Begriff erscheint im GroKo-KV 2018 (S. 40, Forschungskapitel: „Innovation, digitale Souveränität und Interdisziplinarität“) und prominent im Ampel-KV 2021 (S. 12: „Ein digitaler Aufbruch, der unsere Werte, die digitale Souveränität … sichert“; S. 13 als eigener Gliederungspunkt). Im Bundeshaushalt: kein einziger Treffer über fünf Jahre und zwei Regierungen.
GroKo: Der Digitalpakt landet im Haushalt. „DigitalpaktD“ (5 Mrd. € für Schulen) steht im KV 2018 explizit und ist im Haushalt auffindbar.
Ampel: Open Source und Cloud erscheinen. Die Ampel-KV-Grundsätze „Entwicklungsaufträge werden in der Regel als Open Source beauftragt“ und der Aufbau einer „Cloud der öffentlichen Verwaltung“ (Multi-Cloud-Strategie) schlagen sich in Haushaltstiteln nieder.
Neue Konzeptbegriffe: budgetlos. „Datentreuhänder“, „Digitale Zwillinge“ und „DLT / Distributed Ledger“ (alle explizit im Ampel-KV 2021, S. 14–15) erscheinen im Haushalt nicht. Sie benennen Konzepte, die noch keine eigene Haushaltslinie haben.
Diese Befunde deuten darauf hin, dass politische Rahmungskonzepte sich nicht immer direkt in Haushaltstitel übersetzen lassen, weil bspw. kein Beschaffungsgegenstand, keine Förderleistung, kein Investitionsvorhaben direkt „Souveränität“ oder „Treuhänder“ heißt. Der Haushalt ist konkreter, die Politik und die darin enthaltenen Begriffe sind eher rhetorisch.
titel_text. Programmbegründungen in separaten Dokumenten könnten die Begriffe enthalten.