Der (operative) Gewinn ist das eine; doch muss ein Unternehmen auch immer auf seine Liquididät achten. Ein Bankrott kann auch durch Illiquidität ausgelöst werden. Zeit zu schauen, was das SimFin-Paket hier hergibt.
Im folgenden der Blick auf Covestro: Wie hat sich die Krise auf den Cashflow ausgewirkt? Es fällt der große negative Cashflow aus Finanzierungstätigkeit in 2018 auf; gemäß Jahrsabschluss für den Rückkauf eigener Aktien. Ansonsten fällt auf, dass der operative Cashflow mit der Coronakrise zurückging:
Auch bei der Marge (also der Anteil des Cashflows als Teil des Umsatzes) zeigt sich ein Einbruch für den operativen Teil:
Das Benchmarking mit ausgewählten Firmen (in diesem Fall aus verschiedensten Sektoren) zeigt das folgende Bild. Wegen der unterschiedlichen Finanzierungen im folgenden nur der Blick auf die Marge des operativen Cashflows; hier ist die Vergleichbarkeit möglich. Covestro ist eher unter dem Durchschnitt der Gruppe:
Informationen zur Liquidität gibt auch aus das Working Capital. Die Kennzahl zeigt den Überschuss kurzfristiger Aktiva (Umlaufvermögen) zu kurzfristigen Verbindlichkeiten; bzw zeigt ein negatives Delta die mangelnde Finanzierung der aktuellen Geschäftstätigkeit. Das Delta im Working Capital zeigt also an, ob im Jahr Kapital gebunden (negatives Delta) oder freigesetzt wurde (positives Delta). Im Vergleich zur Benchmark hier zeigt Covestro fast schon keine Veränderungen auf.
Als Fazit kann ich festhalten, dass das SimFin-Paket auf jeden Fall dabei hilft, den Cashflow und die Liquidität von Firmen zu erörtern. Leider waren für Covestro keine Bilanzzahlen hinterlegt, um weitere Kennzahlen zu berechnen.
Hier noch der Code:
library(simfinR)
library(dplyr)
library(ggplot2)
library(forcats)
library(reshape2)
library(tidyr)
library(viridis)
library(directlabels)
# get data
CompList = simfinR_get_available_companies(api_key = my_api_key) #Auswahl der Firmen
finance_data <- simfinR_get_fin_statements(
id_companies = 854465, api_key = my_api_key,
periods = "FY", years = 2008:2020, cache_folder = "simfin_cache") #Covestro
# Plot 1 - Covestro
unique(finance_data2$acc_name) #Auswahl der Variablen
finance_data %>%
as.data.frame() %>%
select(company_name, ref_date, acc_name, acc_value) %>%
mutate(acc_value = acc_value / 10^6) %>%
filter(acc_name == "Cash from Financing Activities" | acc_name == "Cash from Investing Activities" |
acc_name == "Cash from Operating Activities" | acc_name == "Net Cash Before FX" |
acc_name == "Net Changes in Cash") %>%
ggplot(aes(x = ref_date, y = acc_value, fill=factor(acc_name, levels=c("Cash from Operating Activities",
"Cash from Investing Activities", "Cash from Financing Activities", "Net Cash Before FX", "Net Changes in Cash")))) +
geom_bar(stat="identity", position = "dodge") +
geom_hline(yintercept = 0, color="grey") +
theme_minimal() +
scale_fill_viridis(discrete=TRUE, option="viridis", direction=-1) +
theme(legend.position="bottom", panel.grid.major = element_blank(),
strip.background = element_blank(), legend.title = element_blank()) +
labs(x = NULL, y = NULL,
title = paste("Covestro Cashflow"),
subtitle = ("in mEUR"),
caption = "Plot1")
# Plot 2 - Cash Flow Margin
finance_data %>%
as.data.frame() %>%
select(company_name, ref_date, acc_name, acc_value) %>%
mutate(acc_value = acc_value / 10^6) %>%
filter(acc_name == "Revenue" | acc_name == "Cash from Operating Activities" | acc_name == "Net Cash Before FX") %>%
spread(acc_name, acc_value, fill = 0) %>%
mutate(CF_Margin = `Net Cash Before FX` / Revenue) %>%
mutate(operativeCF_Margin = `Cash from Operating Activities` / Revenue) %>%
melt(., id.vars=c("company_name", "ref_date")) %>%
filter(variable == "CF_Margin" | variable == "operativeCF_Margin") %>%
ggplot(aes(x = ref_date, y = value, color=variable)) +
geom_hline(yintercept = 0, color="grey") +
geom_line() +
geom_point(shape = 21, fill = "white", size = 1, stroke = 1) +
theme_minimal() +
scale_color_viridis(discrete=TRUE, option="viridis") +
theme(legend.position="bottom", panel.grid.major = element_blank(),
strip.background = element_blank()) +
scale_y_continuous(labels = scales::percent) +
labs(x = NULL, y = NULL,
title = paste("Covestro"),
subtitle = ("cash flow margin (% des Umsatzes)"),
caption = "Plot2")
# Plot 3 - Benchmarking
companies <- c(825113,406606,936426,14099,261356,63877,854465,62747,854467)
finance_data2 <- simfinR_get_fin_statements(
id_companies = companies, api_key = my_api_key,
periods = "FY", years = 2008:2020, cache_folder = "simfin_cache")
finance_data2 %>%
as.data.frame() %>%
select(company_name, ref_date, acc_name, acc_value) %>%
mutate(acc_value = acc_value / 10^6) %>%
filter(acc_name == "Revenue" | acc_name == "Cash from Operating Activities") %>%
group_by(company_name) %>%
spread(acc_name, acc_value, fill = 0) %>%
mutate(operativeCF_Margin = `Cash from Operating Activities` / Revenue) %>%
ungroup() %>%
melt(., id.vars=c("company_name", "ref_date")) %>%
filter(variable == "operativeCF_Margin") %>%
ggplot(aes(x = ref_date, y = value, color=company_name)) +
geom_hline(yintercept = 0, color="grey") +
geom_line() +
geom_point(shape = 21, fill = "white", size = 1, stroke = 1) +
theme_minimal() +
scale_color_viridis(discrete=TRUE, option="viridis") +
scale_x_date(expand = c(0,0,0.2, 0)) +
geom_dl(aes(label = company_name), method = list(dl.combine("last.points"), cex= 0.8)) +
theme(legend.position="none", panel.grid.major = element_blank(),
strip.background = element_blank()) +
scale_y_continuous(labels = scales::percent) +
labs(x = NULL, y = NULL,
title = paste("Benchmarking"),
subtitle = ("operative Cashflow Margin als % des Umsatzes"),
caption = "Plot3")
# Working Capital
finance_data2 %>%
as.data.frame() %>%
select(company_name, ref_date, acc_name, acc_value) %>%
mutate(acc_value = acc_value / 10^6) %>%
filter(acc_name == "Change in Working Capital") %>%
filter(company_name != "Siemens") %>%
ggplot(aes(x = ref_date, y = acc_value, color=company_name)) +
geom_hline(yintercept = 0, color="grey") +
geom_line() +
geom_point(shape = 21, fill = "white", size = 1, stroke = 1) +
theme_minimal() +
scale_color_viridis(discrete=TRUE, option="viridis") +
scale_x_date(expand = c(0,0,0.2, 0)) +
geom_dl(aes(label = company_name), method = list(dl.combine("last.points"), cex= 0.8)) +
theme(legend.position="none", panel.grid.major = element_blank(),
strip.background = element_blank()) +
labs(x = NULL, y = NULL,
title = paste("Benchmarking"),
subtitle = ("Change in Working Capital (Unterschiedl. Währungen!)"),
caption = "Plot4")
Photo by Anete Lusina from Pexels