Allianz Deutschland AG

Table

Anfangen
3 min readAug 3, 2023

--

  • Intro
  • Health condition check based on Revenues, Operating expenses and net income
  • Case Study: Allianz key competitors from the global perspective
  • Investor concerning indicators: Earnings per share & Price-earnings

Intro

In order to understand finacial statement anlysis, this notebook is focused on the income statement which is one of the three important finacial tables: income statement, balance sheet and cash flow.
In this post, I would like to show some indicators from the income statement. To dive deeper, taking an example definitly is a great way to explore more as an entry point. The comparison between insurance company can let us understand some stories behind the numbers. As follows, basic revenues and costs are visualized to address the trends yearly. Afterwards, Earnings-per-share and Price-earnings are defined to let readers and myself understand those terms in a clear manner.

First of all thanks for the illustration for those contributors. Please refer to their efforts as links below:

# !pip install yahoo_fin --upgrade
# !pip install plotly
import yahoo_fin.stock_info as si
# basic income statement on the yahoo finance
allianz_is = si.get_income_statement("ALV.DE")
allianz_is.dropna()

Health condition check based on Revenues, Operating expenses and net income

Normally, revenue should be higher than the operating expenses, and net income is the important result for the investors to compute Earnings per share. However, to be aware, net income cannot tell the whole truth because it can be manipulated simply. The full picture should be included cash flow statement to check the integrity of the business

allianz_is_T = allianz_is.T
allianz_is_T = allianz_is_T[['totalRevenue', 'totalOperatingExpenses', 'netIncomeApplicableToCommonShares']]
import pandas as pd
# pd.options.plotting.backend = "plotly"

allianz_is_T.plot()

Case Study: Allianz key competitors from the global perspective:

  • American International Group also known as AIG, is an American multinational finance and insurance corporation
  • Axa S.A. is a French multinational insurance firm. The head office is in the 8th arrondissement of Paris.
  • Munich Re Group or Munich Reinsurance Company is a German multinational insurance company
  • Old Republic International Corporation is an American property insurance and title and deed company
from collections import defaultdict
competitors = defaultdict()

tickers = ["CS.PA", "ORI", "MUV2.DE", "AIG"]
for t in tickers:
competitors[t] = si.get_income_statement(t)
# merge for comparison visualization

df = allianz_is.T[['netIncome']].rename(columns={"netIncome": "netIncome_allianz"}).copy()
for t in tickers:
df = pd.merge(df, competitors[t].T[['netIncome']].rename(columns={"netIncome": f"netIncome_{t}"}),
on='endDate')

line plot comparison of net income:

Some keys take away

  • AIG drops significantly
  • Allianz is comparable stable during the pandemic period
  • The fluctuation of old republic and Munich RE is aligned with the pattern of Allanz
df.plot(title='Net Income')

Investor concerning indicators

Indicators’ definition

Earnings per share: The result of net income less dividends on preferred stock: This measurement leads to compute P/E ratio
EPS is highly correlated to the net income proved by the EPS bar chart.

from collections import defaultdict
eps_competitors = defaultdict()

["ALV.DE", "CS.PA", "ORI", "MUV2.DE", "AIG"]
for t in tickers:
eps_competitors[t] = si.get_quote_table(t)['EPS (TTM)']
eps = pd.DataFrame.from_dict(eps_competitors, orient='index', columns=['eps'])
eps.plot(kind='bar', title='EPS in current year')

Price-earnings: market value per share divides by earnings per share. Straight forward meaning: this ratio tells an investor how much he needs to invest in a company in order to receive one dollar of that company’s earnings. Currently, the old republic is a promising target based on the P/E ratio. Munich RE has relatively high price at the moment. However, one criterion cannot tell the whole story. In the following article, we will explore more indicators to gradually understand the mystery of the market.

from collections import defaultdict
pe_competitors = defaultdict()

for t in tickers:
pe_competitors[t] = si.get_quote_table(t)['PE Ratio (TTM)']
pe = pd.DataFrame.from_dict(pe_competitors, orient='index', columns=['eps'])
# pe.plot(kind='bar', color=pe.index, title='P/E in current year')
pe.plot(kind='bar', title='P/E in current year')

--

--

No responses yet