02 · Income lab · 12 months to —
—
01 · Bridge
From net interest income to net income
One dot per filer on a value axis; the shaded column is the middle 50% and the dashed rule the cohort median. Click a dot — or tab to it and press Enter — to load that institution into the bridge. Cohort: all conglomerates.
02 · Margin against risk
What the margin earns and what credit takes back
Bubble area is twelve-month net income. Dashed lines are cohort medians. Click a bank to load it into the bridge above.
03 · DuPont
How the top line becomes the return on equity
04 · Cross-section
The same ladder, one line per institution
How the bridge and the identity are built — and what they are not
- Reported
- Net income, net interest margin, cost of risk, average assets and the credit book all come from IF.Data, twelve months to the selected quarter.
- Derived
- Net interest income = NIM × total assets. Provision charge = cost of risk × credit book. Both are reconstructions from reported ratios, not filed statements.
- Residual
- Other result is net income less the two lines above: fee and treasury income, insurance, operating costs and tax, netted. IF.Data does not publish that split, so we never break it apart.
- Why the bridge reconciles
- The residual is solved, so the four bars always sum to reported net income. If NIM or cost of risk were mis-reported upstream, the error lands in “other result” and stays visible there.
Margin definitions differ by institution. Where a bank's own release defines NIM on a different base — or where treasury and insurance results swing — the bridge moves while reported net income does not. The Income lab therefore never restates the reported line.
- DuPont identity
- ROE = leverage × (margin − cost of risk × credit share + other). Anchored on the two ratios each bank files, ROE and ROA, so the chain closes on the reported number rather than on a reconstruction of it.
- What is solved
- Other result is the only solved line: reported ROA less margin, plus the credit charge. It carries fees, treasury, insurance, operating costs and tax netted, because IF.Data does not publish that split.
- Why two residuals can differ
- Section 01 solves its residual on spot balances; the identity solves its own on the average-balance ratios the banks report. The gap is small but not zero, and it is printed rather than smoothed.
- Attribution
- Each contribution uses the midpoint convention — ΔA × average B + average A × ΔB — so the five bars sum to the reported change with no plug. A series the harness splits at a structural break is not attributed across the join.
- Cohort ghost
- The light shapes behind the bars are the median of each column across the active cohort — never a bank assembled out of medians. Each ghost bar is a median of that one line, so the ghost's steps and its closing column (the median bank's own return) need not agree; the dotted drop draws that difference instead of letting a plug absorb it. In the move reading the ghost is anchored where this bank started and takes the cohort's median step in each factor, so the comparison is of moves rather than levels.
Twelve-month flows, not annualised quarters. Missing quarters are gaps, never interpolated.