Bank Capital, Asset Quality and Profitability¶
© 2025 Marek Ozana
This notebook pulls quarterly fundamentals for a panel of large European banks and visualizes three core health signals:
- Capital (CET1 ratio): how much loss-absorbing capital banks have (higher is better)
- Asset quality (NPL ratio): how much of the loan book is non-performing (lower is better)
- Profitability (ROE): how efficiently equity is turned into earnings (higher is better)
In the chart below, the line shows the cross-bank average over time and the shaded band shows the dispersion across banks. The big picture is simple: European banks are currently better capitalized, have cleaner loan books (lower NPLs), and are generating higher ROE than in most of the post-crisis period.
Out[1]:
In [2]:
Copied!
from polars_bloomberg import BQuery
query = """
let(
#cet1 = bs_tier1_com_equity_ratio();
#npl = npls_to_total_loans();
#roe = normalized_roe();
)
get(ticker, #cet1, #npl, #roe)
for( MEMBERS('SX7E Index'))
with(fpt='Q', fpo=RANGE(-44Q,0Q))
preferences(dropCols=['AS_OF_DATE', 'REVISION_DATE'])
"""
with BQuery() as bq:
res = bq.bql(query)
df = res.combine().drop_nulls()
print(df.head(3))
from polars_bloomberg import BQuery
query = """
let(
#cet1 = bs_tier1_com_equity_ratio();
#npl = npls_to_total_loans();
#roe = normalized_roe();
)
get(ticker, #cet1, #npl, #roe)
for( MEMBERS('SX7E Index'))
with(fpt='Q', fpo=RANGE(-44Q,0Q))
preferences(dropCols=['AS_OF_DATE', 'REVISION_DATE'])
"""
with BQuery() as bq:
res = bq.bql(query)
df = res.combine().drop_nulls()
print(df.head(3))
shape: (3, 6) ┌───────────────┬────────┬───────┬─────────────────┬──────────┬──────────┐ │ ID ┆ ticker ┆ #cet1 ┆ PERIOD_END_DATE ┆ #npl ┆ #roe │ │ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- │ │ str ┆ str ┆ f64 ┆ date ┆ f64 ┆ f64 │ ╞═══════════════╪════════╪═══════╪═════════════════╪══════════╪══════════╡ │ ABN NA Equity ┆ ABN ┆ 13.0 ┆ 2014-09-30 ┆ 2.189324 ┆ 5.439819 │ │ ABN NA Equity ┆ ABN ┆ 14.1 ┆ 2014-12-31 ┆ 2.350165 ┆ 7.913441 │ │ ABN NA Equity ┆ ABN ┆ 14.1 ┆ 2015-03-31 ┆ 2.172808 ┆ 9.199417 │ └───────────────┴────────┴───────┴─────────────────┴──────────┴──────────┘