Four times a year, every federally insured bank and savings institution in the United States stops and takes a complete photograph of itself—every loan by category, every security, every dollar of deposits, every line of income and expense, the capital that stands behind it all—and files that photograph with its regulators. It is called the Call Report, and it is the most granular public financial statement a bank ever produces. The FDIC stacks those filings into a single record: roughly 1.67 million bank-quarter rows stretching back to 1984, one per institution per quarter, the raw material from which bank health, supervisory ratings, and failure post-mortems are all built.
This article covers what the Call Report is and the statutory obligation that compels it; the FFIEC and the uniform reporting forms—031, 041, and the streamlined 051—on which banks file; the anatomy of the report itself, from the balance sheet and income statement through regulatory capital, asset quality, and liquidity; how the FDIC aggregates the filings into the Quarterly Banking Profile and how examiners turn them into CAMELS supervisory ratings; how the data made Silicon Valley Bank's March 2023 collapse legible in advance—the deposit run and the unrealized losses on long-dated securities were both in the regulatory financials; how the fdic_financials table joins by certificate number to the institutions directory and the failed-bank list; a Python workflow that pulls a bank's quarterly financials from the FDIC BankFind Suite API and computes capital and noncurrent-loan ratios over time; and the caveats—regulatory versus GAAP accounting, the consolidated grain, and restatements—that every analyst must internalize before drawing conclusions.
What the dataset is
The Consolidated Report of Condition and Income, universally called the Call Report, is the quarterly regulatory financial statement that every federally insured commercial bank and savings institution must file. The name decomposes neatly: the “Report of Condition” is the balance sheet—the bank's assets, liabilities, and equity as of quarter-end— and the “Report of Income” is the income statement—the revenue, expense, and earnings over the quarter. The obligation is long-standing; banks have been called upon to report their condition to federal supervisors since the nineteenth century, and the term “Call Report” survives from the era when the Comptroller of the Currency would literally call on banks to report. The modern series is a uniform, electronic filing collected through the interagency machinery described below.
In our database this record is the table fdic_financials, with the grain of one row per institution per quarter: a single bank that has reported every quarter since 1984 contributes well over a hundred rows, one for each quarter-end report date. The table is keyed by the FDIC certificate number (CERT) and the report date, and it carries the headline figures from each filing—the balance-sheet totals, the regulatory capital ratios, and the asset-quality measures. The columns below are a representative slice of what each row holds:
cert -- FDIC certificate number (the institution key)
repdte -- report date (quarter-end, e.g. 20231231)
-- balance sheet (Report of Condition), thousands of dollars:
asset -- total assets
lnlsnet -- net loans and leases
dep -- total deposits
eq -- total equity capital
-- income statement (Report of Income), year-to-date:
netinc -- net income
intinc -- total interest income
-- regulatory capital:
rbc1rwaj -- Tier 1 risk-based capital ratio (percent)
rbcrwaj -- total risk-based capital ratio (percent)
-- asset quality:
nclnls -- noncurrent loans and leases (dollars)
nclnlsr -- noncurrent loans to gross loans (percent)
ntlnls -- net charge-offs on loans and leases
lnatres -- allowance for loan and lease lossesThe cert is the load-bearing column. The FDIC certificate number is the permanent identifier the FDIC assigns to each insured institution when its deposit insurance becomes effective—a stable integer that does not change when the bank renames itself, changes charter type, or is acquired (the surviving entity keeps its CERT; the acquired one's is retired). It is the key that ties a quarter of financials to the same bank's registry record in the institutions directory and, if the bank ever fails, to its entry on the failed-bank list. The repdte is the other half of the key: because every Call Report is dated to a calendar quarter-end—March 31, June 30, September 30, or December 31—the pair (cert, repdte) uniquely identifies a single filing, and ordering a bank's rows by report date produces the time series from which every trend—asset growth, capital erosion, rising delinquency—is read.
The statutory frame and the FFIEC
The Call Report obligation flows from the structure of federal deposit insurance and bank supervision. The Federal Deposit Insurance Corporation (FDIC), created by the Banking Act of 1933 in the wake of the Depression-era bank runs, insures deposits and stands as the backstop when an insured institution fails. Insurance is not free of obligation: in exchange for the federal guarantee, every insured institution submits to supervision and to the reporting that supervision requires. The Call Report is the centerpiece of that reporting—the quarterly disclosure through which the regulators monitor whether each insured bank remains safe and sound and whether the deposit insurance fund is exposed to undue risk.
US bank supervision is divided among several federal agencies. National banks are supervised by the Office of the Comptroller of the Currency (OCC); state-chartered banks that are members of the Federal Reserve System are supervised by the Federal Reserve; and state-chartered nonmember banks are supervised by the FDIC, alongside their state banking departments. To keep three agencies from imposing three incompatible reporting regimes, Congress created the Federal Financial Institutions Examination Council (FFIEC) in 1979—an interagency body charged with prescribing uniform principles, standards, and report forms for the federal examination of financial institutions. The Call Report is collected on FFIEC forms, which is why a state nonmember bank, a national bank, and a Fed member bank all file the same instrument in the same format. The uniformity is precisely what makes the data analyzable across the whole industry: every insured bank's financials are reported on the same line items, defined the same way.
The filing is due roughly thirty days after quarter-end(a short extension applies to banks with foreign offices), and it is submitted electronically through the FFIEC's Central Data Repository, which runs the figures through hundreds of validity and quality-control edits before accepting them. The FDIC then aggregates the accepted filings and publishes them—the institution-level data through the BankFind Suite, and the industry-level synthesis through the Quarterly Banking Profile, the FDIC's flagship statistical report on the condition and performance of the banking industry. The Quarterly Banking Profile is, in effect, the Call Report data summed: every aggregate it reports— industry net income, net interest margin, the volume of noncurrent loans, the level of reserves—is built from the same filings that populate fdic_financials.
The reporting forms: 031, 041, and 051
The Call Report is not a single form but a small family of them, scaled to the size and complexity of the filer. The instinct behind the tiering is regulatory burden: it would be disproportionate to require a small community bank with a few branches in one state to complete the same exhaustive schedules as a globally active institution with foreign offices and complex trading books, so the FFIEC offers progressively streamlined versions.
FFIEC 031 is the most comprehensive version, filed by banks with foreign offices (and, in current practice, the largest institutions). It carries the full set of schedules, including those that capture international operations. FFIEC 041 is the standard form for banks with domestic offices only—the great majority of mid-sized institutions—covering the same conceptual ground without the foreign-office detail. The FFIEC 051 is the streamlined report introduced to reduce burden on smaller, less complex institutions: eligible community banks below a size threshold and meeting certain criteria may file the 051, which removes or reduces a number of schedules and data items that are not material for a simple community bank. The practical consequence for an analyst is important: not every data item is reported by every bank. A field that a large 031 filer populates may be blank or absent for a small 051 filer, not because the bank failed to report but because its form does not ask for it. Any analysis that treats a missing value as a zero, or that compares a schedule across the size spectrum without checking which form each bank filed, risks mistaking the structure of the reporting regime for a real difference between banks.
The anatomy of a Call Report
What makes the Call Report uniquely valuable is its granularity. A bank's public annual report gives shareholders a summarized view; the Call Report gives regulators— and, because it is public, anyone—a far more detailed dissection. It is organized into schedules, and four areas matter most for understanding a bank's health.
The balance sheet (the Report of Condition) details the bank's assets, liabilities, and equity. The asset side is broken down with considerable precision: loans by category— commercial and industrial, commercial real estate, residential mortgages, consumer (credit-card and other), agricultural—each reported separately, so an analyst can see exactly where a bank has concentrated its lending; the securities portfolio, split between held-to-maturity and available-for-sale and by instrument type; cash and balances at other institutions; and the rest. The liability side is dominated by deposits, themselves disaggregated—interest-bearing versus noninterest-bearing, and, critically, the portion of deposits that exceeds the insurance limit (uninsured deposits), a figure whose importance the 2023 failures would make vivid. The income statement (the Report of Income) reports interest income and interest expense, the net interest income that is the core of a traditional bank's earnings, noninterest income and expense, the provision for credit losses, and net income.
The third area is regulatory capital, the buffer that stands between a bank's losses and its insured depositors. The Call Report computes the capital ratios that supervision turns on: common equity Tier 1 (CET1) and Tier 1 capital as percentages of risk-weighted assets, the total risk-based capital ratio, and the leverage ratio (Tier 1 capital to average total assets, which ignores risk weighting). These ratios are not merely descriptive: under the prompt corrective action framework, the capital ratios reported on the Call Report sort each bank into categories—from well capitalized down to critically undercapitalized—and falling into a lower category triggers escalating mandatory regulatory constraints. The fourth area is asset quality: the report carries noncurrent loans (loans ninety or more days past due or in nonaccrual status), net charge-offs (loans written off, net of recoveries), and the allowance for loan and lease losses (the reserve a bank holds against expected credit losses, now set under the CECL expected-loss standard). Together these measure how much of a bank's lending is going bad and whether its reserves are keeping pace—the asset-quality counterpart to the capital cushion.
CAMELS, supervision, and what the data feeds
The Call Report is not an end in itself; it is the quantitative spine of bank supervision. The framework examiners use to summarize a bank's condition is CAMELS, an acronym for the six components on which an institution is rated: Capital adequacy, Asset quality, Management, Earnings, Liquidity, and Sensitivity to market risk. Each component is scored on a one-to-five scale (one being strongest), and a composite rating is assigned. The Call Report supplies the hard numbers behind most of those components directly—capital from the capital schedules, asset quality from the noncurrent-loan and charge-off data, earnings from the income statement, liquidity from the balance-sheet structure—while management and the qualitative dimensions are assessed through on-site examination. Off-site, the agencies run the Call Report data through automated screening systems that flag institutions whose ratios are deteriorating, helping supervisors decide where to direct scarce examination resources between visits. The data also feeds deposit-insurance pricing: the FDIC's risk-based assessment system uses Call Report measures to set the premiums each bank pays into the insurance fund, so a bank with weaker capital and asset quality pays more. The same filing, in other words, simultaneously informs the supervisory rating, the off-site monitoring, the insurance premium, and the public Quarterly Banking Profile.
The data that saw Silicon Valley Bank coming
The clearest demonstration of what the Call Report data can reveal is the March 2023 failure of Silicon Valley Bank (SVB), then among the largest banks in the country and the largest US bank failure since the 2008 crisis. The proximate cause was a classic run—depositors pulled funds with extraordinary speed—but the vulnerabilities that made the run fatal were legible in the bank's regulatory financials well before the panic, which is exactly why the episode is instructive for anyone working with this data.
Two features stood out in the numbers. The first was the deposit base. SVB had grown explosively during the 2020–2021 boom in technology and venture funding, and an unusually large share of its deposits were uninsured—balances above the insurance limit held by a concentrated set of venture-backed companies. The Call Report carries the data to see this: total deposits, and the uninsured portion, are reported figures. A deposit base that is both rapidly grown and heavily uninsured is a deposit base prone to running, because uninsured depositors have every incentive to flee at the first sign of trouble. The second feature was on the asset side: the bank had invested a large share of its assets in long-dated securities—long-maturity Treasuries and mortgage-backed securities—bought when interest rates were near zero. As the Federal Reserve raised rates sharply through 2022, the market value of those long bonds fell far below their cost. Because much of the portfolio was classified as held-to-maturity, the losses were unrealized and did not flow through the headline capital ratios—but the Call Report discloses the fair value of the securities portfolio alongside its book value, so the gap between the two, the unrealized loss, was disclosed. The combination was combustible: a runnable deposit base on one side, and on the other a securities book that could only be sold to meet withdrawals by crystallizing enormous losses. When the run came, that is exactly what happened. The lesson for the analyst is not that the data predicted the precise timing—runs are reflexive and fast—but that the structural vulnerability, the two blades of the scissors, was sitting in plain sight in the regulatory financial data quarters in advance.
Joining to the institutions directory and the failed-bank list
The financials table is most powerful as one facet of an integrated FDIC record, and the certificate number is the universal join key. Two joins matter most.
The first is to the institutions directory(fdic_institutions), the FDIC's registry of every insured bank, active and historical. The financials table is, by design, almost purely numeric—it tells you a CERT's assets and ratios but not the bank's name, its city and state, its charter class, its primary federal regulator, the date it was established, or whether it is still open. All of that lives in the institutions directory, joined by CERT. Without the directory join, a row of fdic_financials is an anonymous set of numbers; with it, every quarter is anchored to a named institution of known location, charter, regulator, and age, which is what makes it possible to group the financials by state, by charter type, by regulator, or by asset-size peer group—the comparisons that turn a single bank's numbers into an industry analysis.
The second join is to the failed-bank list(fdic_bank_failures), the record of every insured institution that has failed. Joining a failed bank's financials—its full quarterly time series up to the quarter before it failed—to its failure record is the foundation of every failure post-mortem and every early-warning model. It lets an analyst look back across the quarters preceding a failure and watch the deterioration unfold: capital ratios sliding toward the prompt-corrective-action thresholds, the noncurrent-loan ratio climbing, charge-offs mounting, the allowance failing to keep up, earnings turning to losses. The same join, run across all failures, is what trains the statistical models that try to predict which open banks are most at risk—models whose features are, almost without exception, ratios computed from the Call Report.
Analytical uses
A complete, uniform, quarterly, institution-resolved record of every insured bank's financials going back four decades supports a distinctive range of analysis.
Bank-health screening is the most direct use: computing the capital, asset-quality, earnings, and liquidity ratios for an institution and tracking them quarter over quarter to see whether the bank is strengthening or deteriorating. Because the data is uniform across the industry, a single bank's ratios can be benchmarked against an asset-size peer group, against its state, or against the industry as a whole—the difference between “a four-percent noncurrent-loan ratio” in the abstract and the same number read against a peer median of one percent. Trend and cycle analysis exploits the four-decade history: the 1980s thrift crisis, the 2008 financial crisis, and the 2023 regional-bank stress are all written into the aggregate series, and the data supports studying how lending, capital, and asset quality move across the credit cycle.
Failure prediction and early warning joins the financials to the failed-bank list to build models that flag deteriorating institutions before they fail—the analytic descendant of the off-site monitoring the regulators themselves perform. Industry structure and concentrationstudies use the asset totals across all banks to measure consolidation—the long decline in the number of US banks, the rising share of assets held by the largest institutions—and to track merger activity through the appearance and retirement of certificate numbers. And sectoral lending analysisuses the loan-category detail on the balance sheet to see where credit is flowing and where it is concentrating—the run-up in commercial real estate exposure, the growth of a particular consumer-lending segment—the kind of concentration that, as the 2023 episode showed, can become a systemic concern.
Python workflow: pulling quarterly financials from the BankFind Suite API
The FDIC publishes the Call Report data through the BankFind Suite financial API at banks.data.fdic.gov/api, which requires no API key. The financials endpoint accepts a filters expression (here restricting to a single certificate number), a comma-separated fields list of the financial variables to return, and sort_by, sort_order, limit, and offsetparameters. The script below pulls a bank's quarterly financials newest-first, builds a time series, and computes two of the core diagnostics: the latest capital ratios (Tier 1 and total risk-based) and the noncurrent-loan ratio together with its four-quarter change— a rising noncurrent ratio being the classic early signal of deteriorating asset quality. A second function ranks a set of banks by one-year asset growth, the marker of rapid, potentially fragile expansion. Requirements: requests and pandas.
import requests
import pandas as pd
# FDIC BankFind Suite -- financials endpoint. No API key required.
# Base path and field codes follow the public BankFind Suite financial API.
# filters=CERT:<n> restrict to one institution by FDIC certificate number
# fields=... comma list of RIS financial variables to return
# sort_by / sort_order, limit, offset, format=json
# Field codes used below (RIS "risview" properties):
# REPDTE report date (quarter-end, YYYYMMDD)
# ASSET total assets (thousands of dollars)
# RBC1RWAJ Tier 1 risk-based capital ratio (percent)
# RBCRWAJ total risk-based capital ratio (percent)
# NCLNLSR noncurrent loans to gross loans and leases (percent)
# DEP total deposits (thousands of dollars)
BASE = "https://banks.data.fdic.gov/api/financials"
FIELDS = "CERT,REPDTE,ASSET,RBC1RWAJ,RBCRWAJ,NCLNLSR,DEP"
def quarterly(cert, limit=200):
# Pull a single bank's quarterly financials, newest first.
params = {
"filters": f"CERT:{cert}",
"fields": FIELDS,
"sort_by": "REPDTE",
"sort_order": "DESC",
"limit": limit,
"format": "json",
}
r = requests.get(BASE, params=params, timeout=120)
r.raise_for_status()
rows = [d["data"] for d in r.json().get("data", [])]
df = pd.DataFrame(rows)
if df.empty:
return df
df["REPDTE"] = pd.to_datetime(df["REPDTE"], format="%Y%m%d")
return df.sort_values("REPDTE").reset_index(drop=True)
def capital_and_asset_quality(cert):
df = quarterly(cert)
if df.empty:
print(f"No financials returned for CERT {cert}.")
return
latest = df.iloc[-1]
print(f"CERT {cert} -- {latest['REPDTE'].date()}")
print(f" Total assets : ${latest['ASSET'] / 1e6:,.2f} B")
print(f" Tier 1 RBC ratio : {latest['RBC1RWAJ']:.2f}%")
print(f" Total RBC ratio : {latest['RBCRWAJ']:.2f}%")
print(f" Noncurrent / loans : {latest['NCLNLSR']:.2f}%")
# Four-quarter change in the noncurrent-loan ratio: a rising number
# is the classic early signal of deteriorating asset quality.
if len(df) >= 5:
delta = latest["NCLNLSR"] - df.iloc[-5]["NCLNLSR"]
print(f" Noncurrent ratio change vs 1 yr ago: {delta:+.2f} pts")
return df
# Rank a set of banks by one-year asset growth -- rapid growth funded by
# uninsured deposits was a marker of the institutions stressed in 2023.
def asset_growth(certs):
out = {}
for c in certs:
df = quarterly(c, limit=8)
if len(df) >= 5:
now, yr_ago = df.iloc[-1]["ASSET"], df.iloc[-5]["ASSET"]
out[c] = (now / yr_ago - 1) * 100 if yr_ago else float("nan")
return dict(sorted(out.items(), key=lambda kv: -kv[1]))
capital_and_asset_quality(3511) # Wells Fargo Bank, N.A. (example CERT)
# print(asset_growth([3511, 628, 18409, 57957]))
Two practical notes apply. First, the field codes are the FDIC's own RIS (Research Information System) variable names—RBC1RWAJ and RBCRWAJ for the Tier 1 and total risk-based capital ratios, NCLNLSR for the noncurrent-loan ratio, ASSET and DEP for total assets and deposits, all reported in thousands of dollars—and the full catalog of several thousand variables is documented in the BankFind Suite financial-properties definitions; any production use should pull the variables it needs by their RIS codes rather than guess at them. Second, the API is the right tool for one bank or a handful, but for industry-scale work—every bank for every quarter—the FDIC also publishes bulk Call Report data downloads (and the FFIEC's Central Data Repository ships the full filings), which are far more efficient than tens of thousands of paginated API calls and carry the authoritative, version-stamped variable definitions for each release.
Limitations and analytical caveats
The Call Report data is the most comprehensive public record of US bank financials in existence, but it carries features that an analyst must internalize before drawing conclusions from it.
It is regulatory accounting, not GAAP, and not market value. The Call Report follows regulatory reporting instructions that, while built on generally accepted accounting principles, diverge from them in places, and its figures are book values prepared for supervision rather than the market values an investor cares about. The SVB episode is the cautionary illustration: held-to-maturity securities are carried at amortized cost, so a portfolio sitting on enormous unrealized losses can show a healthy book value and healthy headline capital ratios—the loss is disclosed in the fair-value detail, but it is not in the headline number. An analyst who reads only the top-line capital ratio, and not the supporting securities and fair-value schedules, will miss exactly the risk that mattered most.
The grain is the consolidated bank, not the holding company. The Call Report is filed at the level of the insured depository institution. A bank held within a larger bank holding company—and most are—has a parent whose own consolidated financials (filed with the Federal Reserve on the FR Y-9C, a separate report) can look materially different, because the holding company includes nonbank subsidiaries, parent-company debt, and activities outside the insured bank. An analysis that uses Call Report data to characterize a banking company when the company holds multiple bank charters, or significant nonbank operations, is measuring the insured bank, not the enterprise. Knowing which level the question is about—the insured charter or the holding company—is essential to picking the right dataset.
Filings are restated, and definitions change over time.Call Reports are amended: a bank can and does file corrections to a prior quarter after the original submission, so a figure pulled today for an old quarter may differ from what was originally filed, and a longitudinal extract should be understood as the as-revised record rather than the as-first-reported one. More subtly, the report's line items and definitions evolve—new schedules are added, capital definitions shift with successive Basel-based capital rules, and the move to the CECL expected-loss model changed how the loan allowance is set—so a forty-year time series is not perfectly like-for-like end to end. Long-horizon comparisons must check that a variable means the same thing in the early years as in the recent ones, and treat definitional breaks as breaks rather than as real movements in the underlying quantity.
Form tiering and reporting lag bound what a snapshot can say. As noted, not every data item is reported by every bank—the streamlined 051 omits items the 031 carries—so a missing value is often a structural absence rather than a zero, and cross-bank comparisons must respect which form each filer used. And the filing arrives roughly a month after quarter-end and is then processed and published, so the most recent quarter is the least complete; the data is authoritative for established quarters and multi-year trends, not a real-time monitor of what a bank looks like today.
Held with those caveats, the fdic_financials table is a uniquely valuable resource: roughly 1.67 million bank-quarter records—one complete, uniform financial photograph per insured institution per quarter, back to 1984—the system of record from which the health of every US bank, the supervisory ratings that govern them, and the post-mortems of the ones that failed are all constructed, and the place where the next crisis, like the last one, will be legible before it arrives.
Related writing
FDIC Institutions: The Federal Registry of Every US Bank, Active and Historical — The directory that gives the financials their identity: joining fdic_financials to the institutions registry by certificate number is what supplies the bank's name, location, charter class, and regulator, turning an anonymous row of ratios into a named institution you can group and compare.
FDIC Bank Failure Data: Every US Bank That Has Failed Since 1934 — The other end of the story: joining a failed bank's quarterly Call Reports to its failure record is the foundation of every failure post-mortem and early-warning model, letting you watch capital and asset quality deteriorate in the quarters before the end.
CFPB Consumer Complaint Database: The Federal Record Behind 3 Million Financial Product Complaints — The consumer-facing complement to the prudential financials: where the Call Report measures a bank's safety and soundness, the CFPB complaint record measures how its customers experience its products, a different federal lens on the same institutions.