Banking and Financial Intermediation
Department of Applied Finance
2026-10-08
Newcastle, Friday morning
Customers queued around the block outside Northern Rock branches. The first run on a British bank since Overend, Gurney & Co. in 1866, a gap of 141 years.
The mortgage book was performing. What failed was the funding mix:
When the ABCP market seized in August 2007, the bank could not roll its debt. The Bank of England announced emergency liquidity on the evening of 13 September, the news leaked, and the queues formed the next morning.
A bank’s liability mix is a liquidity-risk decision. Week 8 asked what liquidity risk is; this week is the toolkit for managing it.
Throughout, every choice trades off cost against withdrawal risk. There is no free liquidity.
Week 8 did this on a balance sheet. Carrying it forward:
| Stored | Purchased | |
|---|---|---|
| Action | Sell or pledge liquid assets held | Borrow new funds wholesale |
| Cost | Yield foregone | Spread above the cash rate |
| Stress risk | Fire-sale prices | Lenders vanish, cannot roll |
| Balance sheet | Shrinks | Same size, new liability |
| Leaned on by | Smaller banks | Larger banks, and Northern Rock too far |
The mix is the strategy. Choosing it is the rest of this lecture.
How fast can this become cash, and at what discount?
| Asset | Sell A$500m by | Discount |
|---|---|---|
| Reserves at the RBA | instantly | none, it is cash |
| 10-year Commonwealth bond | this afternoon | near screen price |
| Investment-grade corporate bond | a few days | a point or two |
| One residential mortgage | never | there is no market |
Liquidity is not a property of the asset. It is a property of the market the asset trades in: a deep market is one where even large trades barely move the price. And it is worth least on the day you need it most.
Every dollar of liquid assets is a dollar not lent.
| Yield | |
|---|---|
| Mortgage | 6% |
| Commonwealth bond | 4% |
| Cost of holding the bond instead | ~2% p.a. |
On a A$20bn buffer that is roughly A$400m a year of forgone margin.
Banks do not hold “lots of liquidity to be safe”. They hold the least the regulator and their own risk appetite allow, which is exactly why the LCR is a minimum.
Level 1 HQLA opens with cash and central bank reserves.
So the RBA sets three things a treasurer cannot:
| How much liquidity exists | A$28bn, then A$468bn, now heading to A$70–100bn |
| What it costs | The corridor around the cash rate |
| What counts as liquid | The CLF: invented 2015, abolished 2023 |
Your liquidity position is not entirely yours to manage.
One account per bank at the RBA. Its balance is the bank’s ES balance; in aggregate, the system’s reserves.
A customer of Bank A pays a merchant banked at Bank B:
The deposit moves between banks; the reserves move with it. Bank A must find A$1,000 of ES balance to settle, which is the mechanical reason a deposit outflow is a liquidity event.
Reserves earn the cash rate target less 10 bp, the floor under every funding rate in this lecture.
Where banks lend and borrow ES balances, overnight.
The cash rate target is the RBA’s headline policy rate. Mortgage, business and deposit rates all anchor to it.
The Board sets the target. Supply and demand set the actual rate. Closing that gap is the rest of this section.
A repurchase agreement is a sale today plus an agreement to buy back tomorrow.
Bank A has borrowed $100 overnight against collateral. Cost \(0.012/100 = 0.012\%\) a day, or \(\approx 4.4\%\) annualised, near the 4.35% target.
This is the supply lever
The RBA cannot vote reserves into existence. It creates them by buying securities under repo, and drains them when those repos mature.
Every reserves figure in the next three slides moves through this one instrument.
Repos dominate short-term funding generally, because collateral makes them cheaper than unsecured lending.
Aggregate ES balances sat at about A$28 billion and barely moved for years.
A tiny surplus, actively rationed. That is what scarce reserves means, and it is why small daily operations could steer the price.
import io
import urllib.request
import pandas as pd
import matplotlib.pyplot as plt
URL = "https://www.rba.gov.au/statistics/tables/csv/a1-data.csv"
raw = urllib.request.urlopen(URL, timeout=60).read().decode("utf-8-sig")
df = pd.read_csv(io.StringIO(raw), skiprows=10) # row 10 holds the series IDs
df = df.rename(columns={df.columns[0]: "date"})
df["date"] = pd.to_datetime(df["date"], format="%d-%b-%Y", errors="coerce")
es = (df.dropna(subset=["date"])
.assign(bn=lambda d: pd.to_numeric(d["ARBALESBW"], errors="coerce") / 1000)
.dropna(subset=["bn"])
.set_index("date")["bn"]
.loc["2018":]
.resample("MS").mean())
peak_d, peak_v = es.idxmax(), es.max()
last_d, last_v = es.index[-1], es.iloc[-1]
fig, ax = plt.subplots(figsize=(10, 4.0))
ax.plot(es.index, es.values, color="#A6192E", linewidth=1.8)
ax.axvspan(pd.Timestamp("2020-03-01"), pd.Timestamp("2021-11-01"),
alpha=0.07, color="tab:blue")
ax.axvspan(pd.Timestamp("2023-03-01"), pd.Timestamp("2024-07-01"),
alpha=0.07, color="tab:orange")
ax.annotate("TFF + bond purchases", xy=(pd.Timestamp("2020-04-01"), peak_v * 0.30),
fontsize=9, color="tab:blue")
ax.annotate("TFF repayments", xy=(pd.Timestamp("2023-04-01"), peak_v * 0.20),
fontsize=9, color="tab:orange")
ax.annotate(f"peak A${peak_v:,.0f}bn\n{peak_d:%b %Y}", xy=(peak_d, peak_v),
xytext=(pd.Timestamp("2020-09-01"), peak_v * 0.95), fontsize=9,
arrowprops=dict(arrowstyle="->", color="#666", lw=0.9))
ax.annotate(f"A${last_v:,.0f}bn\n{last_d:%b %Y}", xy=(last_d, last_v),
xytext=(last_d - pd.Timedelta(days=700), last_v * 0.45), fontsize=9,
arrowprops=dict(arrowstyle="->", color="#666", lw=0.9))
ax.set_ylabel("A$ billion")
ax.set_ylim(0, peak_v * 1.12)
ax.grid(True, alpha=0.3)
plt.tight_layout()
plt.show()Pre-COVID it sat near A$28bn for years. Everything after March 2020 is the TFF and the bond purchase program arriving, then leaving.
Announced April 2024:
The RBA no longer sets the quantity. Banks do. The RBA sets the price.
Not there yet
Reserves are still falling as pandemic assets mature: A$170bn in September 2026. Banks now expect the system to settle at A$70–100bn, down from the A$100–200bn expected in 2024.
RBA, August 2026: “it could be some years away.”
Open repo retires in early 2027
Announced 25 August 2026. Use had fallen below A$5 billion: banks now take what they need from the full-allotment OMO.
Term Funding Facility (TFF), 2020 to 2024
COVID-19 crisis tool. Banks could borrow up to 3 years at the cash rate target.
Committed Liquidity Facility (CLF), 2015 to 2023
A uniquely Australian fix. Basel III’s LCR requires HQLA. The Australian Government simply doesn’t issue enough debt for ADIs to hold sufficient Level 1 securities. The CLF was a paid line of credit from the RBA that counted as HQLA.
The post-COVID surge in Commonwealth bond issuance solved the underlying problem. APRA reduced the aggregate CLF from $140bn (Sep 2021) to zero on 1 January 2023.
The goal of liability management:
Construct a portfolio of liabilities that is low cost and has low withdrawal risk.
The problem:
There is no free quadrant. Northern Rock learned this the hard way.
Cheap and sticky doesn’t exist. Banks pick a point on the frontier.
viewof wCheque = Inputs.range([0, 100], {value: 30, step: 1, label: "Cheque deposits (%)"})
viewof wSavings = Inputs.range([0, 100], {value: 25, step: 1, label: "Online savings (%)"})
viewof wTerm = Inputs.range([0, 100], {value: 25, step: 1, label: "Term deposits (%)"})
viewof wShort = Inputs.range([0, 100], {value: 10, step: 1, label: "Short wholesale (%)"})
viewof wBond = Inputs.range([0, 100], {value: 10, step: 1, label: "Senior bonds (%)"})Shares normalise to 100%: the mix matters, not the levels.
Northern Rock sat near 75% wholesale. Drag there and read both numbers.
FUND = [
{k: "Cheque deposits", risk: 95, cost: 0.5, w: wCheque},
{k: "Online savings", risk: 70, cost: 4.0, w: wSavings},
{k: "Term deposits", risk: 15, cost: 4.6, w: wTerm},
{k: "Short wholesale", risk: 45, cost: 4.3, w: wShort},
{k: "Senior bonds", risk: 5, cost: 5.4, w: wBond}
]
wsum = FUND.reduce((a, d) => a + d.w, 0)
share = FUND.map(d => ({...d, s: wsum > 0 ? d.w / wsum : 0}))
blendCost = share.reduce((a, d) => a + d.s * d.cost, 0)
blendRisk = share.reduce((a, d) => a + d.s * d.risk, 0)
wholesaleShare = 100 * share.filter(d => d.k === "Short wholesale" || d.k === "Senior bonds")
.reduce((a, d) => a + d.s, 0)
scatter = Plot.plot({
width: 330, height: 260, marginLeft: 48, marginBottom: 42,
x: {label: "Withdrawal risk (higher = flightier)", domain: [0, 100], grid: true},
y: {label: "Funding cost (% p.a.)", domain: [0, 7], grid: true},
marks: [
Plot.dot(FUND, {x: "risk", y: "cost", r: 4, fill: "#999"}),
Plot.text(FUND, {x: "risk", y: "cost", text: "k", dy: -11, fontSize: 10, fill: "#777"}),
Plot.dot([{risk: blendRisk, cost: blendCost}],
{x: "risk", y: "cost", r: 9, fill: "#A6192E"}),
Plot.text([{risk: blendRisk, cost: blendCost}],
{x: "risk", y: "cost", text: ["your mix"], dy: 20, fontSize: 12, fill: "#A6192E"})
]
})
bars = Plot.plot({
width: 270, height: 260, marginLeft: 105, marginBottom: 42,
x: {label: "Share of funding (%)", domain: [0, 100], grid: true},
y: {label: null, domain: FUND.map(d => d.k)},
marks: [
Plot.barX(share, {x: d => d.s * 100, y: "k", fill: "#A6192E"}),
Plot.ruleX([0])
]
})
html`
<div style="font-size:1.05em; margin-bottom:6px;">
Blended cost <b style="color:#A6192E">${blendCost.toFixed(2)}%</b> ·
blended withdrawal risk <b style="color:#A6192E">${blendRisk.toFixed(0)}</b> ·
wholesale share <b>${wholesaleShare.toFixed(0)}%</b>
</div>
<div style="display: grid; grid-template-columns: 1fr 1fr; gap: 6px;">
<div>${scatter}</div>
<div>${bars}</div>
</div>
`Two things to try
Neither corner is a business.
We walk the ladder in three groups: deposits, then wholesale, then everything else.
The cheque account, the everyday transaction account.
Why are these so cheap for the bank? And are they really as cheap as they look?
US demand deposits paid zero interest from 1933 to 2011.
Regulation Q (1933 Banking Act)
Regulators blamed deposit competition for pre-1933 risk-taking, and banned interest on demand deposits outright. It lasted 78 years, until Dodd-Frank s.627 repealed it on 21 July 2011.
Banks may now pay. Most still don’t.
Australia never had the ban. Hence an Australian online saver at 4–5% in 2026 against a US checking account at ~0.01%.
Even when explicit interest is zero, the deposit costs the bank real money:
Competition forces banks to partially absorb these costs and offer subsidised services. The depositor receives implicit interest: interest paid in services rather than cash.
Define the implicit interest rate (IIR) on a demand-deposit account as
\[\text{IIR} = \dfrac{C - F}{B}\]
where, per account per year, \(C\) is the bank’s management cost, \(F\) the fees it earns, and \(B\) the average balance.
If \(C > F\) the bank is subsidising the depositor and implicit interest is positive. If \(C < F\) it is taxing them, and implicit interest is negative.
Move \(C\), \(F\), and \(B\). The IIR updates live.
viewof C = Inputs.range([0, 400], {value: 150, step: 5, label: "C ($/yr)"})
viewof F = Inputs.range([0, 400], {value: 100, step: 5, label: "F ($/yr)"})
viewof B = Inputs.range([200, 10000], {value: 1200, step: 50, label: "B ($)"})
iir = (C - F) / B
md`
IIR = ${(iir*100).toFixed(2)}%
${iir > 0
? "Bank subsidises the depositor: costs exceed fees."
: iir < 0
? "Bank taxes the depositor: fees exceed costs."
: "Costs and fees exactly net out."}
`The textbook example: \(C=\$150\), \(F=\$100\), \(B=\$1{,}200\). IIR ≈ 4.17%. The depositor “earns” 4.17% per year in subsidised services, even though the cash interest rate on the account is zero.
If the account also pays explicit interest above a minimum balance, the depositor’s total return is
\[G = \underbrace{r \cdot B \cdot \mathbb{1}\{B \ge M\}}_{\text{explicit}} \;+\; \underbrace{(c - f) \cdot n \cdot 12}_{\text{implicit}}\]
with \(r\) the explicit rate, \(B\) the average balance, \(M\) the threshold to earn it, \(c\) the bank’s unit cost per transaction, \(f\) the fee per transaction and \(n\) transactions per month.
The indicator is 1 when the balance clears the threshold and 0 otherwise.
viewof B2 = Inputs.range([0, 5000], {value: 1000, step: 50, label: "B ($)"})
viewof r = Inputs.range([0, 8], {value: 5, step: 0.05, label: "r (%)"})
viewof M = Inputs.range([0, 5000], {value: 500, step: 50, label: "M ($)"})
viewof c = Inputs.range([0, 0.5], {value: 0.15, step: 0.01, label: "c ($)"})
viewof f = Inputs.range([0, 0.5], {value: 0.10, step: 0.01, label: "f ($)"})
viewof n = Inputs.range([0, 200], {value: 50, step: 5, label: "n"})
explicit = B2 >= M ? B2 * (r/100) : 0
implicit = (c - f) * n * 12
gross = explicit + implicit
md`
Explicit = $${explicit.toFixed(2)}
Implicit = $${implicit.toFixed(2)}
Gross G = $${gross.toFixed(2)}
`Two things to try:
Two close cousins of the demand deposit, both with lower withdrawal risk.
Savings account
Cash management account (CMA)
Term deposit (retail)
Fixed maturity, fixed rate, early withdrawal penalty.
Negotiable CD (wholesale)
Face value typically above ~A$100,000, days to years.
Negotiable is the whole point: the holder’s liquidity comes from the secondary market, not from the bank.
Short-term unsecured loans between banks, usually overnight.
This is the cheapest unsecured funding a bank can get. It’s also the first to disappear in a crisis.
We met repos earlier as an RBA tool. Banks also use them with each other.
Why secured beats unsecured
The repo lender holds your collateral. If you default, they sell it. So they don’t need to charge a credit risk premium.
In stress, secured markets often stay open while unsecured markets close. This is why every bank treasurer has a stack of repo-eligible collateral ready to go.
Two short-dated wholesale instruments.
Bank-accepted bill (BAB)
Commercial paper (CP)
A bond issued by the bank, backed by a ring-fenced pool of assets that stays on the bank’s balance sheet.
Why covered bonds are special
Bondholders have a dual claim:
Hence covered bonds are often rated AAA even when the issuer is rated AA−.
In Australia:
The bottom of the funding stack: long-dated, often callable, subordinated to depositors and senior creditors.
The most stable funding a bank can have, short of equity. Also the most expensive.
The same trade-off, different instruments:
| FI type | Main funding | Distinct liquidity issue |
|---|---|---|
| Life insurer | Premiums, policy reserves | Mass policy surrenders |
| P–C insurer | Premiums, claims reserves | Catastrophe spike forces asset sales |
| Securities firm / IB | Repos, bank loans, short positions | Inventory financing during stress |
| Finance company | Commercial paper, long-term debt | CP rollover stress |
The unifying theme: short-term liabilities funding less-liquid assets, with rollover risk in the middle.
| LCR ADI | MLH ADI | |
|---|---|---|
| Who | Big 4, larger banks | Smaller ADIs |
| Test | LCR and NSFR \(\ge\) 100% | Liquid assets \(\ge\) 9% of liabilities |
Depositors: the Financial Claims Scheme covers A$250,000 per account-holder per ADI, unchanged since February 2012.
Effective 1 July 2025, after the March 2023 turmoil:
An MLH cushion will now visibly shrink when yields rise, instead of hiding behind book value.
AFIN8003 Banking and Financial Intermediation