Technical writing

Federal Reserve H.8: The Weekly Snapshot of Every US Commercial Bank's Balance Sheet

· AI Analytics
Federal DataFederal ReserveBankingFinance

Every Friday afternoon the Federal Reserve publishes the H.8 statistical release — “Assets and Liabilities of Commercial Banks in the United States” — a single-page summary that aggregates the balance sheet of every domestically chartered US commercial bank plus every US branch and agency of a foreign bank. It is the highest-frequency official view into the aggregate banking system: weekly, going back to 1973, covering more than $23 trillion in total assets. No other federal data release delivers a comparably complete weekly read on the condition of American bank balance sheets.

What the H.8 Is

The H.8 release is produced by the Federal Reserve Board's Division of Monetary Affairs and published each Friday for the week ending the prior Wednesday. It is not institution-level data — individual bank figures are never disclosed. Instead the Fed aggregates balance sheet items across all reporting institutions and presents the result as dollar totals for several bank groups. The data are seasonally adjusted where noted and are expressed in billions of dollars.

Coverage is comprehensive by design. Domestically chartered commercial banks report weekly through the FR 2644 survey, a mandatory confidential report filed with the Federal Reserve System. US branches and agencies of foreign banks report separately. Together these institutions account for nearly all commercial banking activity in the United States — distinct from credit unions, thrifts, and investment banks, which are covered by other regulators and other statistical releases.

The H.8 series begin in January 1973, making it one of the longest continuous high-frequency financial time series published by any US federal agency. That depth matters: the series spans the 1970s stagflation, the 1980s savings-and-loan crisis, the early-1990s credit crunch, the 2008–2009 financial crisis, the post-2020 reserve surge from quantitative easing, and the 2022–2023 rate-hike cycle and its bank stress. Each episode left a distinctive signature in the data.

Assets: What Banks Own

The asset side of the H.8 is organized into four broad categories. Understanding what each contains is essential for interpreting any movement in the headline total.

Loans and leases are the core of commercial banking and the largest asset category. The H.8 breaks loans into six segments:

Securities holdings are the second-largest asset category and the one that produced the most acute stress during the 2022–2023 rate-hike cycle. The H.8 breaks securities into Treasury and agency securities (further split between held-to-maturity (HTM) and available-for-sale (AFS)), mortgage-backed securities, and other securities. HTM securities are carried at amortized cost on the balance sheet regardless of market value; AFS securities are marked to market with unrealized gains and losses flowing through equity. As the Fed raised rates from near zero to over 5% between 2022 and 2023, banks sitting on large HTM portfolios accumulated enormous unrealized losses — estimates put the system-wide figure above $650 billion at the peak — that did not appear in reported income but did represent real economic loss visible only when securities were sold or a bank failed.

Cash assets include four components: vault cash (physical currency in bank vaults and ATMs), cash items in the process of collection (checks and electronic items presented but not yet settled), balances due from depository institutions (correspondent bank balances), and — most importantly for monetary policy — balances with Federal Reserve Banks. Reserve balances held at the Fed expanded from roughly $1.5 trillion before the COVID-19 pandemic to over $3 trillion during the quantitative easing programs of 2020–2021, as the Fed purchased Treasury and mortgage-backed securities and credited bank reserve accounts. Tracking reserve balances in the H.8 is one way to watch the mechanical effect of Fed asset purchases and sales on the banking system.

Other assets cover a residual category including bank premises, other real estate owned (foreclosed properties), intangibles, and miscellaneous items. This category expands during recessions as banks accumulate foreclosed collateral.

Liabilities: What Banks Owe

The liability side of the H.8 is dominated by deposits, which typically fund 80–90% of total bank assets. The release breaks deposits into four segments:

Beyond deposits, the H.8 reports borrowings: federal funds purchased and securities sold under repurchase agreements (repos), other borrowed money (principally Federal Home Loan Bank advances and subordinated debt), and trading liabilities. Fed funds and repo are overnight or very short-term funding; FHLB advances are term credit extended to member institutions against pledged collateral, often used by mortgage-heavy thrifts and community banks to fund illiquid loan portfolios.

The residual — assets minus liabilities — equals equity capital. The H.8 does not present a detailed capital breakdown (that is in the quarterly Call Reports), but the residual tracks with system-wide capitalization and is a rough proxy for the buffer absorbing any deterioration in asset values.

Bank Groups: The Analytical Disaggregation

The H.8 does not publish a single aggregate. It presents data for five bank groups, and comparing them reveals structurally different business models and stress points.

The large-versus-small bank split is analytically critical. During stress, these two groups behave very differently. Large banks benefit from implicit too-big-to-fail credibility, access to capital markets, and diversified funding. Small banks rely more heavily on local deposit franchises, have more concentrated loan books, and face sharper liquidity pressure when local economic conditions deteriorate.

The SVB Crisis Visible in Real Time

The March 2023 Silicon Valley Bank collapse is the sharpest illustration of what the H.8 can show in near real time. SVB failed on March 10, 2023, followed by Signature Bank two days later. Within a week, the H.8 data for the week ending March 15 showed the largest single-week deposit outflow from small domestically chartered banks ever recorded — roughly $98 billion in one week as depositors fled smaller institutions for the perceived safety of the largest banks and money market funds.

The counterpart was equally visible: large bank deposits rose sharply in the same week, confirming the flight-to-quality dynamic. The two series — large bank deposits up, small bank deposits down — diverged in a way that no quarterly Call Report could have revealed until months later. The H.8 made the deposit-flight visible within days.

The unrealized loss problem was also encoded in the H.8 data, though less directly. The securities held-to-maturity category had swollen across the banking system as banks deployed pandemic-era deposit surges into longer-dated Treasuries and agency MBS at the 2020–2021 rate lows. By late 2022, with the fed funds rate above 4%, those portfolios carried enormous unrealized losses. The H.8 does not report mark-to-market values directly, but the combination of rapidly rising HTM balances (visible in the H.8 securities breakdown) and contemporaneous rate data made the scope of the interest rate risk legible to any analyst tracking the weekly release.

H.8 Versus the Call Report

The H.8 and the Call Report (formally the FFIEC 041/051, and the FR Y-9C for bank holding companies) are the two primary official sources for US commercial bank balance sheet data, but they serve fundamentally different purposes and should not be treated as substitutes.

The H.8 is weekly, aggregate, and fast. It publishes within two business days of the reference Wednesday and covers the full banking system as a single aggregate. It has no institution-level detail, no income statement, no capital ratio breakdown, and no off-balance-sheet exposure data.

The Call Report is quarterly, institution-level, and comprehensive. Every federally insured bank files a Call Report within 30–45 days of each quarter end. The report contains a full balance sheet, an income statement, regulatory capital ratios (Common Equity Tier 1, Total Risk-Based Capital), credit quality metrics (nonperforming loans, charge-offs, allowances), and off-balance-sheet exposures (loan commitments, letters of credit, derivatives notional). The FFIEC Central Data Repository (CDR) publishes all Call Report data in machine-readable form, and the FDIC's Statistics on Depository Institutions (SDI) provides a cleaned analytical interface.

The practical workflow for banking system analysis is to use the H.8 for weekly monitoring of aggregate trends — credit expansion, deposit flows, reserve positions — and to use Call Reports for quarterly deep-dives into specific institutions or for analyzing capital adequacy, asset quality, and earnings.

Key Research Uses

Credit cycle tracking. C&I loan growth measured year-over-year from the H.8 BUSLOANS series is a reliable leading indicator of business investment and economic momentum. C&I lending typically peaks six to twelve months before a recession begins, as banks tighten standards and businesses reduce short-term borrowing in response to deteriorating conditions. The H.8 makes this observable weekly rather than quarterly.

Deposit flight monitoring. The large-versus-small bank deposit split is the fastest available signal of banking system stress. Flows from small to large banks, or from banks to money market funds (visible indirectly via the Fed's reverse repo facility data), indicate elevated systemic anxiety even when no individual institution has failed.

QE and QT balance sheet effects. Federal Reserve asset purchases (quantitative easing) mechanically create reserves on bank balance sheets: when the Fed buys a Treasury from a dealer, it credits the dealer's bank's reserve account. This shows up in the H.8 cash assets category as rising Federal Reserve Bank balances. Quantitative tightening — allowing securities to mature without reinvestment — reverses the flow. Tracking reserve balances in the H.8 alongside the Fed's own H.4.1 release (factors affecting reserve balances) documents the plumbing of monetary policy transmission.

Monetary policy transmission to lending. How quickly and fully do rate increases reduce loan growth? The H.8 weekly frequency makes it possible to track the lagged response of C&I, real estate, and consumer lending to Fed rate changes, distinguishing sectors where transmission is fast (large time deposits repricing immediately) from sectors where it is slow (30-year fixed mortgages already on bank books).

FRED Access and Key Series

All H.8 series are available through the Federal Reserve Bank of St. Louis's FRED database, the standard access point for macroeconomic and financial time series. The FRED series IDs for the most commonly used H.8 variables are:

The fredapi Python library provides a direct interface to FRED without requiring manual CSV downloads. It returns pandas Series objects indexed by date, making time series analysis straightforward. A free API key is available by registering at fred.stlouisfed.org.

Python: C&I Loan Growth and the Large vs. Small Bank Deposit Divergence

The following script pulls weekly C&I loan balances and deposit levels for large and small domestically chartered banks from FRED, computes year-over-year percent change for each series, identifies the worst single-week small-bank deposit drop during the March 2023 stress, and plots the divergence between large and small bank deposit trends alongside C&I loan growth.

import pandas as pd
from fredapi import Fred
import matplotlib.pyplot as plt
import matplotlib.dates as mdates

# Set your FRED API key here
fred = Fred(api_key="YOUR_FRED_API_KEY")

# --- Pull weekly C&I loans: all commercial banks ---
# BUSLOANS: Commercial and Industrial Loans, All Commercial Banks (weekly, SA)
ci_all = fred.get_series("BUSLOANS", observation_start="2021-01-01")

# --- Pull deposits: large vs. small domestically chartered banks ---
# DPSACBW027SBOG: Deposits, All Commercial Banks (weekly, SA, billions)
dep_all = fred.get_series("DPSACBW027SBOG", observation_start="2021-01-01")

# Large banks (top 25): DPSACBSL (Deposits, Large Domestically Chartered Banks)
dep_large = fred.get_series("DPSACBSL", observation_start="2021-01-01")

# Small banks (26th and below): DPSACBSM (Deposits, Small Domestically Chartered Banks)
dep_small = fred.get_series("DPSACBSM", observation_start="2021-01-01")

# --- Compute year-over-year percent change for each series ---
def yoy_pct(series):
    # Align to weekly frequency; 52 periods = approx 1 year
    return series.pct_change(periods=52) * 100

ci_yoy = yoy_pct(ci_all)
dep_large_yoy = yoy_pct(dep_large)
dep_small_yoy = yoy_pct(dep_small)

# --- Identify the SVB stress window (Mar 2023) ---
stress_start = pd.Timestamp("2023-03-01")
stress_end = pd.Timestamp("2023-06-30")

# Single-week deposit change at small banks around SVB collapse
dep_small_weekly = dep_small.diff()
worst_week = dep_small_weekly.loc[stress_start:stress_end].idxmin()
worst_drop = dep_small_weekly.loc[worst_week]
print("Worst single-week small-bank deposit drop:")
print("  Date: " + str(worst_week.date()))
print("  Change: $" + str(round(worst_drop, 1)) + "B")

# --- Plot deposit YoY divergence: large vs. small banks ---
fig, axes = plt.subplots(2, 1, figsize=(11, 8), sharex=True)

ax1 = axes[0]
ax1.plot(dep_large_yoy.index, dep_large_yoy.values, color="#0b4a8f", label="Large banks (top 25)")
ax1.plot(dep_small_yoy.index, dep_small_yoy.values, color="#b45309", label="Small banks (26th+)")
ax1.axvspan(stress_start, stress_end, alpha=0.12, color="#dc2626", label="SVB stress window")
ax1.axhline(0, color="#888", linewidth=0.7, linestyle="--")
ax1.set_ylabel("YoY % change")
ax1.set_title("Deposit Growth: Large vs. Small Domestically Chartered Banks")
ax1.legend(fontsize=9)
ax1.grid(axis="y", alpha=0.4)

ax2 = axes[1]
ax2.plot(ci_yoy.index, ci_yoy.values, color="#166534", label="C&I loans, all banks")
ax2.axvspan(stress_start, stress_end, alpha=0.12, color="#dc2626")
ax2.axhline(0, color="#888", linewidth=0.7, linestyle="--")
ax2.set_ylabel("YoY % change")
ax2.set_title("C&I Loan Growth, All Commercial Banks")
ax2.legend(fontsize=9)
ax2.grid(axis="y", alpha=0.4)

ax2.xaxis.set_major_formatter(mdates.DateFormatter("%b %Y"))
ax2.xaxis.set_major_locator(mdates.MonthLocator(interval=3))
plt.setp(ax2.xaxis.get_majorticklabels(), rotation=30, ha="right")

plt.tight_layout()
plt.savefig("h8_bank_balance_sheet.png", dpi=150, bbox_inches="tight")
plt.show()
print("Chart saved to h8_bank_balance_sheet.png")

A few notes on the implementation. Year-over-year percent change is computed with a 52-period lag on the weekly series, which approximates one calendar year. The SVB stress window is shaded on both panels to show the deposit-flight episode in context against both the deposit series and the contemporaneous C&I loan growth trajectory. The FRED series for large and small bank deposits (DPSACBSL and DPSACBSM) are not seasonally adjusted, so short-term fluctuations may reflect calendar effects as well as genuine balance sheet changes. For trend analysis, the year-over-year transformation removes most seasonal noise without requiring the Fed's proprietary adjustment factors.

Extending this script to pull held-to-maturity securities balances (FRED series WRMFSL for large banks) alongside the effective federal funds rate (FEDFUNDS) makes the duration risk accumulation of 2020–2022 directly visible: HTM balances expanded precisely as the rate cycle turned, locking in losses that would not be marked to market until the securities were sold or the institution failed.

Limitations and Practical Cautions

The H.8 is an aggregate and is therefore silent on institution-level risk. A banking system where one large institution is acutely stressed can look stable in the aggregate until the institution actually fails. The March 2023 episode was an exception — the deposit flight was large enough to register in the large-versus-small split — but smaller episodes of institution-specific stress do not appear in H.8 data. For monitoring specific institutions, Call Reports and bank holding company filings (FR Y-9C) are required.

Seasonal adjustment methodology has changed over the history of the H.8, creating occasional discontinuities in the adjusted series. For long-run historical analysis, the not-seasonally-adjusted series paired with year-over-year comparisons is often more reliable than the adjusted series for periods spanning methodology changes.

The H.8 covers commercial banks, not the full financial system. Money market funds, insurance companies, pension funds, broker-dealers, and non-bank lenders (the “shadow banking” system) hold financial assets comparable in scale to the commercial banking system but appear in other Fed statistical releases: the Financial Accounts of the United States (Z.1), the prime and government money market fund data, and the broker-dealer credit release (H.15 and related). Analysis of systemic financial conditions requires looking across all these releases together.


Banking regulatory compliance often intersects with OFAC sanctions screening — all US financial institutions must block transactions involving sanctioned entities and jurisdictions. See Treasury OFAC Sanctions: The Blocked Persons List and How to Screen Against It.

Consumer financial protection enforcement actions are a related dimension of banking system oversight. The CFPB publishes all enforcement actions in machine-readable form. See CFPB Enforcement Actions: The Public Record of Consumer Finance Violations.

Credit unions operate alongside commercial banks but are regulated by the NCUA rather than the Fed or OCC — and publish their own quarterly balance sheet data with comparable granularity. See NCUA Credit Union Data: The Complete Balance Sheet and Membership Statistics for Every US Credit Union.