Greek Banking Sector 2022–2024
PDF Extraction
Python ETL
SQLite
sql.js WASM
Live SQL query · running in your browser via sql.js WebAssembly
SELECT bank, nii, net_profit, roe, cost_to_income, loan_to_deposit, nim, total_assets, nii_yoy, profit_yoy
FROM kpis
WHERE year = 2024
ORDER BY nii DESC
-- greek_banking_final.db
Sector NII
—
All 4 banks · combined
Total Assets
—
Greek banking system
Net Profit
—
Sector combined
Avg ROE
—
Sector average
Eurobank
NII
—
Net Profit
—
ROE
—
Cost/Income
—
Alpha Bank
NII
—
Net Profit
—
ROE
—
Cost/Income
—
Piraeus Bank
NII
—
Net Profit
—
ROE
—
Cost/Income
—
NBG
NII
—
Net Profit
—
ROE
—
Cost/Income
—
Sector NII +55% in 2 Years
Combined NII grew from €5.5bn (2022) to €8.6bn (2024), driven by ECB rate hikes and loan growth.
Piraeus Most Efficient (2024)
Cost-to-Income 31.8% — the lowest among the four Greek systemic banks and well below the European average of ~54%.
Eurobank Largest by Assets
Total assets surpassed €101bn in 2024, up 26.7% YoY driven by acquisition and loan book expansion.
Impairments Down Sector-Wide
Piraeus cut impairments from €523m (2022) to €181m (2024) — a 65% drop signalling NPL cleanup completion.
Net Interest Income — 3-Year Trend
SELECT bank, year, nii FROM kpis ORDER BY year
Asset Market Share 2024
SELECT bank, total_assets FROM kpis WHERE year=2024
Return on Equity
SELECT bank, year, roe FROM kpis
Cost-to-Income Ratio
Lower = more efficient
Net Profit
SELECT bank, year, net_profit FROM kpis
Profitability Matrix — ROE vs Cost-to-Income
Bubble area ∝ Total Assets · SELECT bank, roe, cost_to_income, total_assets FROM kpis WHERE year=2024
Impairment Losses on Loans
FROM income_statement WHERE metric='Impairment losses on loans'
Cost of Risk — 3-Year Trend
|Impairment| / Loans × 100 — from kpis table
Net Fee & Commission Income
FROM income_statement WHERE metric='Net banking fee...'
Loans vs Deposits
FROM kpis — Loans and advances vs Customer deposits (€bn)
Net Interest Margin — Trend
SELECT bank, year, nim FROM kpis
CET1 Capital Ratio — 3-Year Trend
SELECT bank, year, cet1 FROM kpis · official Annual Report capital adequacy disclosures · Basel III minimum 4.5% · SREP buffer ~10.5%
NPE Ratio — 3-Year Cleanup
SELECT bank, year, npe_ratio FROM kpis · verified from official Annual Reports 2022–2024
Eurobank — TLTRO Repayment & ECB Borrowing
FROM balance_sheet WHERE bank='Eurobank' AND metric='Due to central banks'
Eurobank — Earning Asset Mix 2022→2024
Loans + Investment Securities + Due from banks (correct NIM denominator)
Asset Composition
% of Total Assets · FROM balance_sheet WHERE year=2024
Funding Structure
% of Total Assets · FROM balance_sheet WHERE year=2024
Loan-to-Deposit Ratio
SELECT bank, loan_to_deposit FROM kpis WHERE year=2024
KPI Rankings
SELECT * FROM kpis WHERE year=2024 ORDER BY nii DESC
| Bank | NII | ROE% | C/I% | NIM% | NPE% | Assets |
|---|
NIM comparison
European Context
Greek banks vs selected European peers & EBA sector average — approximate FY2024 published figures
| Bank | Country | Assets (€bn) | C/I (%) | ROE (%) | NIM (%) | CET1 (%) |
|---|---|---|---|---|---|---|
| NBG | 🇬🇷Greece | 75 | 36.5 | 13.7 | 3.14 | 19.1 |
| Eurobank | 🇬🇷Greece | 101 | 32.6 | 16.9 | 2.48 | 17.6 |
| Piraeus | 🇬🇷Greece | 80 | 31.8 | 12.9 | 2.61 | 13.7 |
| Alpha Bank | 🇬🇷Greece | 71 | 37.7 | 8.2 | 2.32 | 15.4 |
| Intesa Sanpaolo | 🇮🇹Italy | 940 | ~44 | ~14 | ~2.1 | ~13.5 |
| OTP Bank | 🇭🇺Hungary | ~70 | ~44 | ~17 | ~3.5 | ~18 |
| Bankinter | 🇪🇸Spain | ~115 | ~39 | ~18 | ~2.8 | ~12.5 |
| EBA EU Sector Average | EU-27 | — | ~54 | ~11 | ~1.7 | ~15.8 |
Sources: Official 2024 annual reports / investor presentations. European peers approximate. Greek bank figures from this project's verified dataset.
EBA figures: EBA Risk Dashboard Q4 2024. Greek banks' C/I ratio is 15–22pp below the EU sector average, a structural advantage entering the NIM compression cycle.
3-Year KPI Evolution Heatmap (2022–2024)
5 metrics · 4 banks · 3 years · Green = better, Red = weaker within peer group
Analyst Commentary
Synthesis · 12 official annual reports · 4 Greek systemic banks · 2022–2024
Rate Cycle Tailwind — and the Compression Ahead
The ECB's 450bp hiking cycle (Jul 2022 – Sep 2023) drove sector NII from €5.5bn to €8.6bn — a 55% surge in two years. Greek banks benefited disproportionately: a high share of variable-rate corporate loans meant repricing was near-immediate. As the ECB pivoted to cuts from June 2024, NIM compression becomes the dominant 2025 risk. Each 25bp ECB cut is estimated to reduce sector NII by approximately €170–220m (2–3% of the 2024 base of €8.6bn), with Eurobank and Piraeus bearing the largest share due to their higher proportion of floating-rate corporate loans. NBG, with a higher share of fixed-spread SME and retail lending, faces comparatively lower rate sensitivity.
Efficiency Leaders: Piraeus and Eurobank
Piraeus leads on cost efficiency at 31.8% C/I in 2024, improving from 34.5% in 2022 as VES-driven headcount reductions and digitalisation lowered the cost base. Eurobank follows closely at 32.6%. Both are well below the European banking average of ~54%. NBG (36.5%) and Alpha (37.7%) lag — NBG's ratio reflects a large domestic retail branch footprint, while Alpha faces structural cost pressure from its South East Europe network. As the rate-driven revenue tailwind fades into 2025, cost control separates the outperformers from the rest.
Capital Accumulation and Shareholder Returns
All four banks improved CET1 ratios by 1.5–3pp between 2022 and 2024, funded by retained earnings and NPL deleveraging. NBG leads at ~19%, providing headroom for buybacks and special dividends. Piraeus completed its NPL cleanup by 2024 (impairments −65% vs 2022 peak), rebuilding capital headroom after years of heavy provisioning. Eurobank's CET1 of ~18% supports continued M&A — the Hellenic Bank (Cyprus) integration contributed to the +26.7% asset growth recorded in 2024.
Alpha Bank: The Structural Laggard
Alpha's ROE of 8.2% is the weakest among Greek peers and below the ~11% European banking average. Flat NII in 2024 (−0.3% YoY) and the sector's highest Loan-to-Deposit ratio (76.5%) limit near-term upside. M&A speculation — including reported Unicredit interest — reflects investor pressure for a structural fix. Until the cost base is addressed and the rate headwind to NII is absorbed, Alpha is likely to trade at a sustained discount to its three Greek peers on a price-to-book basis.
Capital Return & Strategic Targets
From FY2024 Annual Reports · All 4 Greek systemic banks resumed dividends after years of suspension
| Bank | 2024 RoTE | Payout (2024 profits) | CET1 Buffer vs SREP | Key Management Target | Source |
|---|---|---|---|---|---|
| NBG | 17.5% (core) | 50% (proposed) | 860bp above 10.5% | Sustain RoTE >16%; CET1 "far above target"; 50% payout reflects high confidence in earnings | nbg_2024.pdf p10, p15 |
| Eurobank | ~16.9% ROE | 30% → 50% by 2027 | 710bp above 10.5% | Sustainable 15% RoTBV through rate cycle; full Hellenic Bank consolidation from 2025 adds NII | eurobank_2024.pdf p4 |
| Piraeus | ~12.9% ROE | 35% (up from 25% initial) | 320bp above 10.5% | Progressive capital return; terminal ECB rate ~2% base case; CET1 headroom at 320bp limits pace | piraeus_2024.pdf p40, p50 |
| Alpha | ~8.2% ROE | Gradual increase toward EU avg | 490bp above 10.5% | Payout growth contingent on ROE improvement; C/I reduction to 33–34% is key ROE catalyst | alpha_2024.pdf p12–13 |
Dividend restart is a structural milestone: Greek banks were barred from distributions 2010–2022 due to capital rebuilding requirements.
NBG and Eurobank lead on capital return capacity. Piraeus's 35% payout (above initial guidance) signals confidence in CoR normalisation.
Alpha's payout growth is the weakest — ROE of 8.2% below CoE limits the distributable capital base.
Valuation Framework
Price-to-Book vs Justified P/B (Gordon Growth) · CoE 11% · Market prices approximate end-2024
| Bank | Market P/B (est.) | ROE 2024 | CoE (est.) | Justified P/B | vs Market | Signal |
|---|---|---|---|---|---|---|
| NBG | ~1.3x | 13.7% | 11% | ~1.2x | ≈ fair | ▲ Total return via buybacks |
| Eurobank | ~1.3x | 16.9% | 11% | ~1.5x | ~15% discount | → Quality premium warranted |
| Piraeus | ~0.9x | 12.9% | 11% | ~1.2x | apparent ~25% discount | ▼ CoR risk closes gap |
| Alpha Bank | ~0.8x | 8.2% | 11% | ~0.7x | slight premium to justified | → Re-rate needs ROE > 11% |
Justified P/B = ROE / CoE (Gordon Growth, zero long-run growth assumption for conservatism).
CoE 11% = risk-free ~3.5% + beta-adjusted ERP ~5.5% + residual country risk ~2%.
NBG's near-fair P/B is supported by its €500m capital return programme (dividends + buyback) — total return thesis holds without multiple expansion.
Piraeus's apparent 25% P/B discount is largely offset by CoR normalisation risk (~€165m after-tax headwind): on a normalised earnings basis, the stock is closer to fair value.
Alpha requires ROE to exceed its CoE (~11%) before a sustained re-rating is justified; at current ROE of 8.2%, the stock's intrinsic P/B is ~0.7x.
Investment Implications
Based on FY2022–2024 fundamentals · What the data says for a buy-side or sell-side analyst
▲ Overweight
NBG
ROA 1.54% • CET1 19.1% • P/B ~1.3x
Sector leader on both profitability and capital strength — a rare combination. CET1 of 19.1% is 860bp above the 10.5% SREP floor, creating buyback/dividend optionality. NIM at 3.14% is the highest in the peer group: best positioned if ECB rate cuts are gradual.
→ Hold
Eurobank
C/I 32.6% • CET1 17.6% • P/B ~1.3x
Second-best cost efficiency in the peer group (32.6% C/I, behind Piraeus 31.8%) and proven M&A execution (Hellenic Bank: +27% assets, accretive day-one). Fee income share provides partial insulation against NIM compression. Deserves a quality premium on P/B; already partially priced in.
▼ Underweight
Piraeus Bank
CET1 13.7% • P/B ~0.9x vs justified ~1.2x
2024 profit surge (+35%, €788m → €1,066m) driven primarily by impairment release (€404m → €181m). The ~€165m after-tax impairment benefit accounts for ~60% of the profit increase; strip it out and underlying profit growth was approximately +14% — real but modest. Credit cost normalisation toward the 2023 level would reduce net profit by ~€165m (~15%). Lowest CET1 in the peer group (320bp above regulatory floor) limits near-term capital return capacity.
→ Monitor
Alpha Bank
ROE 8.2% • P/B ~0.8x (justified ~0.7x)
Structural laggard: ROE of 8.2% is the weakest in the peer group and below the ~11% European banking average. C/I improvement story is real (49% → 38%) but incomplete. If Alpha closes the gap to 33–34% C/I by 2026, earnings uplift would be ~€200m. Upside is recovery-dependent.
About This Project
An end-to-end financial data pipeline built from scratch — no pre-cleaned datasets. Raw data extracted directly
from official Annual Report PDFs of all 4 Greek systemic banks, processed through a full ETL pipeline,
stored in SQLite, and visualized here via sql.js WebAssembly running live in your browser.
PDF Source
Official Annual Reports 2022–2024
12 PDFs · 4 banks
Python Extract
pdfplumber · table detection
pdfplumber · regex
pandas ETL
Clean · transform · validate
pandas · numpy
SQLite Load
3 tables · kpis · income · balance
SQLite · 3 tables
SQL Analysis
Window functions · YoY · KPIs
LAG() · PARTITION BY
sql.js WASM
Live queries in the browser
sql.js · Plotly.js
📊 SQL — Window Function
SELECT bank, year, nii,
ROUND((nii - LAG(nii)
OVER (PARTITION BY bank
ORDER BY year)) * 100.0 /
LAG(nii) OVER (...), 1)
AS nii_yoy_pct
FROM kpis
ROUND((nii - LAG(nii)
OVER (PARTITION BY bank
ORDER BY year)) * 100.0 /
LAG(nii) OVER (...), 1)
AS nii_yoy_pct
FROM kpis
🐍 Python — PDF Extraction
import pdfplumber, pandas
# Extract tables from PDF
with pdfplumber.open(pdf) as p:
tables = p.pages[n]
.extract_table()
df = pd.DataFrame(tables)
# Clean → SQLite
# Extract tables from PDF
with pdfplumber.open(pdf) as p:
tables = p.pages[n]
.extract_table()
df = pd.DataFrame(tables)
# Clean → SQLite
💡 SQL — ROE Calculation
SELECT i.bank,
ROUND(i.net_profit * 100.0
/ b.equity, 1) AS roe_pct
FROM income_statement i
JOIN balance_sheet b
ON i.bank = b.bank
AND i.year = b.year
ROUND(i.net_profit * 100.0
/ b.equity, 1) AS roe_pct
FROM income_statement i
JOIN balance_sheet b
ON i.bank = b.bank
AND i.year = b.year