Every bank in the United States has a number. Not its routing number and not its ticker—a federal deposit-insurance certificate number, the CERT, assigned by the FDIC when the institution is first insured and carried, unchanged, for the rest of its life—through mergers, name changes, relocations, and, for thousands of them, through failure. The FDIC's BankFind Suite is the registry of every one of those numbers: roughly 27,800 institution records, active and historical, each a single row that says who the bank is, how it is chartered, who regulates it, how big it is, and whether it is still open. It is the master directory of American banking, and the spine that every other FDIC dataset hangs from.
This article covers what the FDIC institutions directory is and how the BankFind Suite publishes it; the FDIC's origins in the bank-failure wave of the Great Depression and its dual role as both deposit insurer and primary regulator; the certificate number (CERT) and why it is the load-bearing key for the entire FDIC data ecosystem; the charter classes that sort banks by who supervises them and divide the regulatory map between the FDIC, the OCC, and the Federal Reserve; the columns that describe each institution's size, age, and location; the active-to-inactive lifecycle and the three ways a bank leaves the register—merger, failure, and voluntary closure; how the table joins to the quarterly call-report financials, the failed-bank list, and enforcement actions through the shared CERT; a Python workflow that pulls active institutions from the no-key BankFind API and aggregates by state, charter class, and asset bucket while tracing establishments against closures over time; and the caveats every analyst must internalize before drawing conclusions from the register.
What the dataset is
The FDIC institutions directory is the canonical list of every institution that is, or ever has been, insured by the Federal Deposit Insurance Corporation. The FDIC publishes it through the BankFind Suite, the agency's family of public data tools and APIs that surface its institution register, branch locations, quarterly financials, failed-bank list, and structure-change history. The institutions component is the foundation of the suite: it is the inventory against which all the other datasets are keyed. Each row is one institution, and the grain is the institution as a legal, insured entity—a single bank chartered, insured, and tracked under one certificate number from the day the FDIC begins insuring its deposits to the day it ceases to exist.
In our database this record is stored as the table fdic_institutions, one row per institution, comprising roughly 27,800 records that span both currently operating banks and the much larger population of banks that have closed, merged, or failed over the decades since 1934. The directory is not a snapshot of who is open today—it is the cumulative register, which is precisely what makes it valuable for historical analysis: it remembers the banks that no longer exist. The columns capture the institution's identity, its charter and regulator, its location, its size, and its status:
cert -- FDIC certificate number (the permanent unique key)
name -- legal name of the institution
city -- headquarters city
stalp -- headquarters state (two-letter postal code)
bkclass -- charter class: N national, SM state member,
NM state nonmember, SB/SA savings, OI insured branch
regagnt -- primary federal regulator (FDIC, OCC, FRB, OTS-legacy)
estymd -- establishment date (when the institution opened)
endefymd -- effective end date (12/31/9999 if still active)
asset -- total assets, in thousands of dollars
dep -- total deposits, in thousands of dollars
active -- 1 if currently insured and operating, 0 if inactive
inactive_reason -- why an inactive bank left: merger, failure, closureThe cert is the load-bearing column. The FDIC certificate number is a persistent integer assigned to an institution when the FDIC first insures it, and it never changes for the life of that institution. It is the key that ties an institution's identity record to its quarterly financial filings, to its failure record if it fails, and to enforcement actions taken against it—all of which carry the same CERT. Two distinctions matter for getting the grain right. First, the CERT identifies the insured institution, not the holding company that may own it: a large bank holding company can own several separately chartered, separately certificated banks, each its own row. Second, when one bank acquires another, the acquired bank's CERT goes inactive and the survivor keeps its own CERT—the certificate number is the thread that lets the structure-change history reconstruct who absorbed whom. The endefymd column encodes the lifecycle: the sentinel value 12/31/9999 marks a still-active institution, while a real date marks the day a closed institution ceased to exist.
The FDIC: insurer and regulator
The Federal Deposit Insurance Corporation was created by the Banking Act of 1933—the Glass-Steagall Act—in direct response to the catastrophe that defined the early years of the Great Depression: a wave of bank failures in which thousands of banks collapsed and ordinary depositors, with no protection, lost their savings when their bank went under. The runs fed on themselves; the fear that a bank might fail made depositors withdraw, and the withdrawals made the failure real. Federal deposit insurance was the structural answer. By guaranteeing deposits up to a stated limit, the government removed the rational basis for a run: if your money is insured, you have no reason to rush to the teller window, and without the rush the self-fulfilling collapse does not start. That guarantee, more than any other single measure, is why the bank panic ceased to be a recurring feature of American economic life after 1934.
The insurance is the FDIC's most visible function, and its terms are precise. The FDIC insures deposits at member banks up to $250,000 per depositor, per insured bank, per ownership category. Each clause does work: the limit applies to each depositor (not each account), at each separately insured bank (so deposits spread across two banks are each covered to the limit), and within each ownership category (single accounts, joint accounts, certain retirement accounts, and revocable-trust accounts are insured separately), which is how a household can be insured well beyond the headline figure by structuring its accounts. The insurance is funded not by taxpayers but by the Deposit Insurance Fund, into which insured banks pay risk-based premiums—the industry, in effect, pre-funds the protection of its own depositors.
But the FDIC is not only an insurer. It is also a primary federal banking regulator, and understanding which banks it regulates is the key to reading the charter-class column. The American banking system has a famously divided supervisory structure. National banks are chartered and 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 banks that are not members of the Federal Reserve System—the state nonmember banks—are supervised primarily by the FDIC itself, in partnership with their state banking departments. The FDIC is therefore simultaneously the insurer of essentially all of these banks and the primary federal regulator of one large slice of them. Layered on top is the FDIC's third role: when an insured bank fails, the FDIC acts as receiver, taking control of the failed institution, protecting the insured depositors, and liquidating or selling the bank's assets. These three roles—insurer of all, regulator of some, receiver of the failed—are what give the FDIC its uniquely complete view of the banking system, and they are why its institution register is the most authoritative one that exists.
The certificate number and the FDIC data spine
The single most important thing to understand about the institutions table is that it is the spine of the entire FDIC data ecosystem, and the CERT is the vertebra that every other dataset attaches to. The FDIC publishes several large, related datasets, and they are useful together precisely because they all key on the same permanent certificate number.
The most voluminous of those companions is the call-report financials. Every insured bank files, on a quarterly basis, a detailed Report of Condition and Income—the “call report”—disclosing its balance sheet, income statement, capital ratios, loan composition, and asset quality. These filings are the granular financial record of American banking, and each one is tagged with the filing bank's CERT. The institutions table supplies the identity—the name, charter class, location, and status—that turns an anonymous quarterly filing into a known bank of known type in a known place. Without the institutions join, a call report is a stream of numbers attached to an integer; with it, the numbers belong to a named, classified, located institution whose trajectory can be followed across quarters and years.
The second companion is the failed-bank list, the FDIC's record of every insured institution that has failed since 1934. It, too, is keyed by CERT, which is what allows an analyst to ask the questions that the failure data alone cannot answer: what kind of bank failed, how big was it, where was it, and—by joining to its last several call reports—what did its balance sheet look like in the quarters before it went down. The third companion is the record of enforcement actions—the formal orders, consent agreements, and civil penalties the banking regulators issue—which likewise reference the institution's certificate number. Layered alongside these is the Summary of Deposits, the annual branch-level deposit survey, whose every branch ties back to a parent institution by CERT. The institutions table is what unifies all of them. It is the dimension table to a constellation of fact tables, and the CERT is the foreign key in every one. Any serious analysis of the banking system begins by anchoring its facts to this register.
Charter classes and the divided supervisory map
The bkclass column sorts every institution into a charter class, and because charter class largely determines who supervises a bank, it is the field that maps the institution onto the divided American regulatory structure. Reading it correctly is essential to any analysis that wants to compare like with like or to attribute supervisory responsibility.
A national bank (class N) is chartered by the federal government through the OCC and is supervised by the OCC; national banks are required to be members of the Federal Reserve System, and their names frequently carry the words “National Association” or the abbreviation “N.A.” The largest banks in the country are predominantly national banks. A state member bank (class SM) is chartered by a state but has chosen to join the Federal Reserve System, and is supervised by the Federal Reserve in concert with its state regulator. A state nonmember bank (class NM) is chartered by a state and has not joined the Federal Reserve System; these are the banks for which the FDIC is the primary federal regulator, and they are the most numerous class by count, dominated by community banks. The savings institutions—savings banks (class SB) and savings associations or thrifts (class SA)—are a historically distinct branch of the industry, oriented toward residential mortgage lending; their federal supervision was consolidated under the OCC and the FDIC after the Office of Thrift Supervision was abolished, and older inactive records may still show the legacy regulator. A final small class, insured branches of foreign banks (class OI), rounds out the register.
The analytic payoff of the charter class is that it lets a single dataset reconstruct the whole supervisory map. By joining charter class to the regulator field, an analyst can partition the entire insured universe by who oversees it—the OCC's national banks and federal thrifts, the Federal Reserve's state member banks, and the FDIC's state nonmember banks—and then ask how each supervisory population differs in size, in geographic concentration, in failure history, and in financial condition. The famous fact that the largest banks are overwhelmingly national-chartered while the long tail of small community banks is overwhelmingly state nonmember is visible directly in the cross-tabulation of charter class against asset size. The charter class is, in short, the field that turns the institutions table from a phone book into a map of how the country chose to divide the job of watching its banks.
Size, age, and location: the descriptive columns
Beyond identity and charter, the register carries the columns that describe each institution as a financial and geographic object, and they are the raw material for most aggregate analysis. Total assets and total deposits are the two headline size measures, reported in thousands of dollars and refreshed from the institution's most recent call report. They are what reveal the defining feature of the American banking distribution: its extreme skew. A handful of very large institutions hold the overwhelming majority of the system's assets, while thousands of small community banks each hold a tiny fraction; any analysis that treats banks as equally weighted units—counting institutions rather than weighting by assets—will describe the long tail rather than the system, and the asset column is what lets the analyst choose the right weighting for the question.
The establishment date (estymd) records when the institution opened, and it is more interesting than it looks. Because the register is cumulative and reaches back through institutions chartered long before the FDIC existed, the establishment dates run from the nineteenth century to the present—some of the largest banks in the country trace their charters to the early 1800s, a lineage the register preserves even though the bank has been transformed many times over. The establishment date, differenced against the effective end date for inactive institutions, also yields each bank's lifespan, and the distribution of lifespans, the rate of new charters per year, and the age profile of survivors versus failures are all derivable from these two date columns alone. The location columns—headquarters city and the two-letter state code—anchor the institution geographically, supporting the state-level concentration analysis that is among the most common uses of the register and connecting, through geography, to questions about banking deserts, regional consolidation, and the uneven distribution of community banks across the country.
The lifecycle: active, inactive, and how banks leave
The active flag and the effective end date together encode the lifecycle of every institution, and the lifecycle is where the register becomes a historical record rather than a directory. An institution is active while it is insured and operating; its active flag is 1 and its endefymd carries the sentinel 12/31/9999. When the institution ceases to exist, the flag flips to 0 and the end date records the day it left—and crucially, the record does not disappear. The inactive institution stays in the register forever, which is exactly why the table can answer questions about banks that no longer exist.
There are three fundamentally different ways an institution becomes inactive, and conflating them is one of the most common analytic errors with this data. The first and overwhelmingly most common is merger or acquisition: one bank is absorbed into another, the acquired bank's CERT goes inactive, and its deposits, branches, and customers continue uninterrupted under the survivor's certificate. A merger is not a failure—no depositor loses anything, and the disappearance of the CERT reflects consolidation, not distress. The decades-long decline in the total number of US banks is driven primarily by mergers, not failures, and reading every disappearance as a collapse badly misstates the health of the system.
The second exit is failure: the institution becomes insolvent or otherwise unable to meet its obligations, its primary regulator closes it, and the FDIC steps in as receiver to protect insured depositors and wind down the bank. Failures are the exits that matter most for financial-stability analysis, they cluster sharply in crises—the savings-and-loan collapse around 1990, the 2008–2010 financial crisis—and they are the population enumerated in detail by the separate failed-bank list, joined back to the register by CERT. The third exit is voluntary closure: a solvent institution that winds down its operations, surrenders its charter, and ceases business in an orderly way without failing—an exit that, like a merger, involves no loss to insured depositors. The inactive_reason distinction is therefore indispensable: a credible study of bank failures must filter the inactive population down to genuine failures, and a study of industry consolidation must do the opposite and isolate the mergers, because the three exits tell three completely different stories about the banking system.
Joining to financials, failures, and enforcement
The institutions table is most powerful not in isolation but as the hub of the FDIC data ecosystem, and the CERT is the universal join key that makes the integration possible. Three joins do most of the analytic work.
The first is to the call-report financials. Joining fdic_institutions to the quarterly financial filings by CERT is what lets an analyst follow a named bank's balance sheet over time: capital adequacy, loan growth, deposit composition, asset quality, and profitability, quarter by quarter, attached to a bank of known charter class, size, and location. Because the institutions table supplies the classification, the financials can be aggregated meaningfully—community banks versus the largest institutions, state nonmember banks versus national banks, one state versus another—rather than collapsed into a featureless industry total. This join is the foundation of essentially all quantitative banking research built on FDIC data.
The second join is to the failed-bank list. By matching failures back to the register, an analyst can profile what kind of institution failed in each episode of distress—the charter classes, the size distribution, the geography—and, by chaining the CERT through to the failed bank's final call reports, can study the financial signatures that preceded failure: the deterioration in capital, the surge in nonperforming loans, the concentration in commercial real estate that turned out to be fatal. This is the join that turns the failure list from a roll of names into a dataset capable of supporting early-warning analysis. The third join is to enforcement actions and, more broadly, to the structure-change history that records every merger, acquisition, charter conversion, and relocation. Together these let the register reconstruct lineage—tracing a surviving bank's CERT back through the chain of institutions it absorbed—which is essential for any longitudinal study that must hold a banking franchise constant across decades of consolidation.
Analytical uses
A complete, permanently keyed register of every American bank, active and historical, supports a distinctive set of analyses that no narrower dataset can.
Industry consolidation and the long decline in bank countis the most immediate. The number of US banks has fallen by more than half over recent decades, and the register, with its establishment and end dates and its merger-versus-failure distinction, is the dataset that lets an analyst decompose that decline—how much is attributable to mergers, how much to failures, how much to a near-total collapse in the rate of new bank charters—and to track the trajectory year by year. The famous fact that new bank formation has slowed to a trickle is read directly from the thinning of recent establishment dates.
Geographic and competitive concentration exploits the location and asset columns: counting institutions and summing assets by state reveals where banking is concentrated, where community banks remain dense, and where consolidation has hollowed out local banking—an input to questions about credit access and banking deserts. Charter-class and supervisory analysis uses the bkclass and regulator fields to compare the populations overseen by the OCC, the Federal Reserve, and the FDIC, asking whether failure rates, asset concentration, or financial condition differ systematically across the supervisory divide. And failure forecasting and crisis study brings the joins to bear: combining the register with the failed-bank list and the call reports to model which institution characteristics—size, charter, geography, balance-sheet composition—predicted failure in past crises, and to identify the populations most exposed in the next one.
Python workflow: pulling institutions from the BankFind API
The script below pulls institution records from the FDIC BankFind Suite API, which requires no API key for public data, and computes several of the core metrics: the concentration of active institutions by state, the charter-class mix together with each class's share of total assets, the distribution of institutions across asset-size buckets, and—by pulling the full historical set including inactive banks—the net change in chartered institutions over recent years, tracing establishments against closures. The API returns results in a nested envelope (each record arrives as a data object inside the top-level data array), so the script flattens that structure before building the DataFrame, and it pages through the result set using limit and offset because a full pull exceeds any single page.
import requests
import pandas as pd
from datetime import datetime
# FDIC BankFind Suite API -- no API key required for public data.
# Base path for the institutions dataset; one row per institution.
# filters -- Elasticsearch query-string filters (e.g. ACTIVE:1)
# fields -- comma-separated list of columns to return
# limit/offset for paging; max limit is 10,000 per request
# sort_by / sort_order to order the result set
# format=json returns {"meta": {...}, "data": [{"data": {...}}, ...]}
BASE = "https://banks.data.fdic.gov/api"
FIELDS = "CERT,NAME,STALP,CITY,BKCLASS,REGAGNT,ESTYMD,ENDEFYMD,ASSET,DEP,ACTIVE"
def pull(active_only=True, page=10000):
# Page through the institutions endpoint and flatten the nested
# {"data": {...}} envelope into a plain DataFrame.
rows, offset = [], 0
flt = "ACTIVE:1" if active_only else ""
while True:
params = {"fields": FIELDS, "limit": page, "offset": offset,
"sort_by": "CERT", "sort_order": "ASC", "format": "json"}
if flt:
params["filters"] = flt
r = requests.get(BASE + "/institutions", params=params, timeout=120)
r.raise_for_status()
batch = r.json().get("data", [])
if not batch:
break
rows.extend(rec["data"] for rec in batch)
offset += page
if len(batch) < page:
break
return pd.DataFrame(rows)
active = pull(active_only=True)
print(f"Active insured institutions: {len(active):,}")
# --- 1. Concentration by state -----------------------------------------
by_state = active.groupby("STALP").size().sort_values(ascending=False)
print("\nTop 10 states by number of active institutions:")
for st, n in by_state.head(10).items():
print(f" {st} {n:>5,}")
# --- 2. Charter-class mix and asset share ------------------------------
# BKCLASS: N=national bank, SM=state member, NM=state nonmember,
# SB=savings bank, SA=savings association, OI=insured branch.
active["ASSET"] = pd.to_numeric(active["ASSET"], errors="coerce")
mix = active.groupby("BKCLASS").agg(
count=("CERT", "size"), assets=("ASSET", "sum")).sort_values("assets", ascending=False)
total_assets = mix["assets"].sum()
print("\nCharter class: count, total assets, asset share:")
for cls, row in mix.iterrows():
share = row["assets"] / max(total_assets, 1)
print(f" {cls:<3} {int(row['count']):>5,} institutions "
f"${row['assets']/1e9:>10,.1f}B ({share:5.1%})")
# --- 3. Asset-size buckets ---------------------------------------------
buckets = [0, 1e8, 3e8, 1e9, 1e10, 1e11, 1e15]
labels = ["<$100M", "$100M-300M", "$300M-1B", "$1B-10B", "$10B-100B", ">$100B"]
active["bucket"] = pd.cut(active["ASSET"], bins=buckets, labels=labels)
print("\nInstitutions by asset-size bucket:")
for b, n in active["bucket"].value_counts().reindex(labels).items():
print(f" {b:<12} {int(n):>5,}")
# --- 4. Establishments vs closures over time ---------------------------
# Pull the full historical set (active + inactive) and trace the count
# of banks established against those whose ENDEFYMD marks an exit.
full = pull(active_only=False)
full["est_yr"] = pd.to_datetime(full["ESTYMD"], errors="coerce").dt.year
# ENDEFYMD is 12/31/9999 for active institutions; treat that as no end.
end = pd.to_datetime(full["ENDEFYMD"], errors="coerce")
full["end_yr"] = end.where(end.dt.year < 9999).dt.year
born = full.groupby("est_yr").size()
died = full.groupby("end_yr").size()
net = (born.subtract(died, fill_value=0)).loc[1980:datetime.now().year]
print("\nNet change in chartered institutions, recent years:")
for yr, delta in net.tail(10).items():
print(f" {int(yr)}: {int(delta):+,}")
Two practical notes apply. First, the asset and deposit figures in the register are carried in thousands of dollars and reflect the institution's most recent call report, so they are a point-in-time snapshot rather than a time series; for anything that needs the trajectory of a bank's balance sheet, the CERT must be joined to the quarterly financials endpoint, which is the proper source for historical financial series. Second, the establishment-versus-closure analysis at the end is deliberately coarse—it nets gross establishments against gross ends per year—and a rigorous consolidation study must go further and separate the end dates by reason, counting mergers, failures, and voluntary closures as the distinct phenomena they are, because a year in which a hundred banks merged away tells an entirely different story from a year in which a hundred banks failed. The BankFind structure-change and failures endpoints supply exactly the detail needed to make that separation.
Limitations and analytical caveats
The FDIC institutions register is the most authoritative directory of American banks that exists, but it carries structural features an analyst must internalize before drawing conclusions from it.
A disappeared CERT is usually a merger, not a failure.The most consequential caveat is the one already stressed: the great majority of inactive institutions left the register through merger or voluntary closure, not through failure. The decades-long fall in the number of US banks is overwhelmingly a consolidation story, and treating every inactive record—or every drop in the bank count—as evidence of distress dramatically overstates the system's instability. Any analysis touching the inactive population must filter on the reason for inactivation, and any study of failures specifically must restrict itself to genuine failures rather than to the much larger universe of disappearances.
The institution is not the holding company. The register keys on the insured institution, identified by its CERT, not on the bank holding company that may own it. A single holding company can own several separately chartered, separately certificated banks, and the largest banking organizations in the country are holding-company structures whose true scale is not captured by any one CERT. An analysis that wants to measure organizations rather than charters has to roll institutions up to their holding companies using a separate ownership crosswalk; counting CERTs alone measures charters, which is a different and often smaller unit than the banking franchise the public thinks of as “the bank.”
Asset and deposit figures are a snapshot, and the register is not a financial time series. The size columns reflect the most recent call report and are refreshed in place; the institutions table does not carry the history of those figures. Any conclusion about growth, decline, or the path of a bank's balance sheet must come from the call-report financials joined by CERT, not from the register's point-in-time numbers. Relatedly, the figures are as good as the underlying regulatory filings and inherit the reporting conventions and any restatements of those filings.
The register covers insured institutions, and lineage requires care. The directory is the register of FDIC-insured institutions; entities that are not FDIC-insured—credit unions, which are insured separately by the National Credit Union Administration, and various nonbank financial firms—are simply not in it, so the register is the universe of insured banks and thrifts, not of all financial institutions. And because mergers retire CERTs while survivors keep theirs, reconstructing the full lineage of a long-lived banking franchise across decades of acquisitions demands the structure-change history, not the institutions table alone; the register tells you a bank's current identity and status, but the chain of who absorbed whom lives in the change records.
Held with these caveats in mind, the fdic_institutions table is a uniquely valuable resource: a permanently keyed, charter-classified, lifecycle-stamped register of every bank the United States has insured since 1934—the directory that gives a name, a charter, a regulator, and a place to every certificate number, and the spine that ties the FDIC's financials, failures, and enforcement records into a single account of American banking.
Related writing
FDIC Bank Failure Data: Every US Bank That Has Failed Since 1934 — The failure-specific companion to the register: where the institutions table holds every insured bank active and historical, the failed-bank list isolates the genuine failures, joined back to the register by the same CERT to profile what kind of bank collapsed in each crisis.
HMDA Mortgage Lender Filings: The Federal Record of Who Reports Under the Home Mortgage Disclosure Act — Many of the banks in the FDIC register are also HMDA reporters, and joining the two connects an institution's charter, size, and supervisor to its mortgage-lending footprint and the fair-lending questions that footprint raises.
CFPB Consumer Complaint Database: The Federal Record Behind 3 Million Financial Product Complaints — The consumer-facing view of the same institutions: complaints name the banks the FDIC register classifies, letting an analyst tie an institution's charter and size to the volume and nature of the complaints filed against it.