Not every securities case ends up in front of a federal judge. When the SEC moves against a broker who churned client accounts, an adviser who looted a fund, an accountant who signed off on a fraudulent audit, or a shell company that stopped filing its reports, it often acts in its own house—before an administrative law judge, or the Commission itself—and memorializes the result in an order. Order after order: cease-and-desist commands, industry bars, accountant suspensions, registration revocations. Our table holds roughly 18,400 of these administrative proceedings, the in-house half of the agency's enforcement output and the running record of how it disciplines the industry it regulates.
This article covers what an administrative proceeding is and how it differs from the court cases the SEC announces through its Litigation Releases; how the Division of Enforcement and the Commission choose the in-house forum over district court; the two decisions that reshaped that choice—Lucia v. SEC in 2018 and SEC v. Jarkesy in 2024; the anatomy of an order instituting proceedings and the kinds of action it announces—cease-and-desist orders, associational and industry bars, accountant suspensions under Rule 102(e), and delinquent-filing revocations; the structure of our sec_admin_proceedings table and its columns; the join by respondent to the EDGAR company registry and to the compliance screening lists; a Python workflow that pulls proceedings from the public sec.gov listing, tallies them by year, and searches by respondent name; and the caveats—the order-not-trial nature of the record, the forum-selection distortion, name-matching ambiguity, and follow-on duplication—that every analyst must internalize before drawing conclusions.
What the dataset is
The SEC enforces the federal securities laws along two tracks. It can file a civil action in United States district court, which it announces through a Litigation Release, or it can institute an administrative proceeding, adjudicated inside the agency before its own administrative law judges and, on appeal or in settled matters, the Commission itself. An administrative proceeding is the in-house counterpart to a court case: it is begun by an order instituting proceedings (an OIP) rather than a complaint, decided by an ALJ or the Commission rather than a federal judge and jury, and resolved by an order rather than a judgment. This dataset is the record of that track—the orders, the bars, the revocations, the suspensions that the SEC issues without ever going to court.
In our database this record is stored as the table sec_admin_proceedings, with the grain of one row per proceeding—roughly 18,400 of them. The unit of identity is the administrative-proceeding file number, the “3-NNNNN” docket identifier the Commission assigns to every enforcement proceeding it institutes (the “3-” series is the in-house enforcement docket), which is the closest thing the corpus has to a primary key. Each proceeding is also tied to one or more numbered releases—an Exchange Act release (34-), an Investment Advisers Act release (IA-), an Investment Company Act release (IC-), or an Accounting and Auditing Enforcement Release (AAER) for accountant cases—that carry the order text. The columns capture the file number, the date, the respondents, the type of action, the statutory authority, and the document links:
file_number -- the "3-NNNNN" administrative-proceeding docket ID (key)
release_date -- the date the order was issued / proceeding instituted
respondents -- the parties named (firms and/or individuals)
title -- the order caption (usually "In the Matter of ...")
proceeding_type -- OIP, cease-and-desist, follow-on bar, 102(e), 12(j) revocation
summary_text -- the order body: findings, sanctions, undertakings
release_ids -- the numbered releases (34-, IA-, IC-, AAER-) that carry it
sanctions -- bars, suspensions, penalties, disgorgement, C&D as stated
document_links -- linked PDFs: the OIP and subsequent ordersTwo columns do the heaviest analytic lifting. The file_number is the identity that resolves the sequence of orders in a single matter—an OIP, then perhaps a default order, then a final order—back to one proceeding. The respondents field is the join key to the rest of the world: it names the brokers, advisers, accountants, issuers, and individuals the Commission proceeded against, and it is what ties an order to the same entity's EDGAR registration, its other filings, and its appearance on the compliance screening lists. The summary_text is the substance—the findings the order recites and the sanctions it imposes. Because much of that text is unstructured prose, a great deal of the analytic work on this dataset—classifying proceedings by respondent type, distinguishing a bar from a revocation, extracting penalty amounts—is text mining over the order, which is both the corpus's richness and its principal limitation.
The in-house forum versus district court
The single most important thing to understand about this dataset is that it is the other half of SEC enforcement—the in-house half. Where the Litigation Releases record the cases the agency chose to put before a federal judge, the administrative proceedings record the cases it chose to keep inside the agency. The choice of forum is consequential and deliberate, and it follows a rough logic. The administrative forum is faster, governed by the Commission's own Rules of Practice, decided by adjudicators steeped in securities law, and—crucially—it is the natural home for actions against registered entities and professionalsover whom the Commission has direct statutory authority: broker-dealers, investment advisers, transfer agents, and the accountants who practice before it. District court, by contrast, offers broad discovery, a jury, and an Article III judge, and is where the agency has historically brought its largest, most contested fraud cases against people and companies it does not directly license.
Because of this division of labor, the administrative record is the place to look for the discipline of the regulated industry itself. A vast share of these proceedings are follow-on actions: once a broker or adviser is convicted in a criminal case or enjoined in a district-court action, the Commission institutes a separate administrative proceeding to bar that person from the securities industry—the regulatory consequence that the court case alone does not impose. Others are settled cease-and-desist orders in which a firm neither admits nor denies the findings but consents to the order and its sanctions, the workhorse resolution of modern SEC enforcement. For years the agency expanded its use of the administrative forum, including for some fraud cases seeking penalties, because the Dodd-Frank Act of 2010 broadened the penalties it could impose there. That expansion drew constitutional objections that produced the two decisions that now define the dataset.
What Lucia and Jarkesy changed
The first decision concerns who the judges are. In Lucia v. SEC (2018), the Supreme Court held that the SEC's administrative law judges are Officers of the United Stateswithin the meaning of the Constitution's Appointments Clause, and therefore must be appointed by the President, a court, or a head of department—not simply hired by agency staff. The immediate consequence was procedural: the Commission ratified the appointments of its ALJs and gave affected respondents the chance to have their cases reheard before a properly appointed judge. The deeper consequence was constitutional scrutiny of the in-house forum as a whole. Lucia did not curtail the SEC's ability to bring administrative proceedings, but it confirmed that the people deciding them wield significant federal authority and opened the door to the broader challenges that followed.
The second decision concerns what kinds of case may be brought in-house at all. In SEC v. Jarkesy (2024), the Supreme Court held that when the SEC seeks civil penalties for securities fraud, the Seventh Amendment guarantees the defendant a jury trial, which the administrative forum cannot provide. The practical effect is that the agency can no longer route penalty-seeking fraud cases through its own ALJs; those cases must be filed in federal district court. Critically, Jarkesy did not abolish the administrative forum or empty this dataset. It targeted a specific slice—fraud cases seeking civil penalties—and left the in-house forum central to everything else: the registrant discipline, the follow-on bars, the accountant suspensions, the registration revocations, the cease-and-desist orders, and the many regulatory matters that are the administrative forum's bread and butter. The two decisions together push the penalty-seeking fraud cases toward the courts (where they surface as Litigation Releases) while leaving the administrative proceeding the primary instrument for disciplining the regulated industry—which is exactly what makes this dataset, read alongside the litigation releases, the complete picture of SEC enforcement output across both forums.
The categories of action the orders announce
The administrative docket is dominated by a handful of recurring action types, and learning them is what lets an analyst read the corpus as a structured record rather than a wall of prose. Cease-and-desist orders are the most common settled resolution: the Commission finds (on consent, without admission) that a respondent violated a provision of the securities laws and orders them to cease and desist from further violations, frequently coupled with disgorgement, prejudgment interest, and a civil penalty. Associational and industry bars are the registrant-discipline core—orders barring an individual from associating with a broker-dealer, investment adviser, or other registered entity, sometimes for a fixed term and sometimes permanently. A large share of these are follow-on bars predicated on a prior criminal conviction or court injunction, instituted precisely to impose the industry consequence the other forum could not.
Accountant and auditor actions are a distinctive and heavily watched branch, brought under Rule 102(e) of the Commission's Rules of Practice, which lets the SEC censure, suspend, or permanently deny the privilege of appearing or practicing before it—the power to bar an accountant or auditor from working on SEC filings. These are typically announced as Accounting and Auditing Enforcement Releases (AAERs), and they are the federal record of professional discipline for the audit industry. Delinquent-filing revocations are the high-volume, housekeeping end of the docket: under Section 12(j) of the Exchange Act, the Commission revokes the registration of issuers—often dormant shells—that have failed to file required periodic reports, an action that clears the market of stocks whose disclosure has gone dark and forecloses their abuse in pump-and-dump schemes. Rounding out the docket are proceedings against transfer agents, municipal advisors, and other registered participants the Commission directly oversees. Each category is legible in the order stream by its statutory authority and the sanction it imposes.
The anatomy of an order and the matter lifecycle
An administrative matter begins with an order instituting proceedings (the OIP), the in-house analogue of a complaint. The OIP names the respondents, recites the conduct the Division of Enforcement alleges, identifies the statutory provisions at issue, and specifies what the proceeding will determine—whether to enter a cease-and-desist order, impose a bar, revoke a registration, or assess a penalty. In a settled matter, the OIP and the final order arrive together: the respondent has already agreed to the resolution, consents to the entry of findings without admitting or denying them, and the single order both institutes and disposes of the proceeding. In a litigated matter, the OIP starts a contested case before an ALJ, who holds a hearing and issues an initial decision; that decision can be appealed to the Commission, whose opinion is itself a reviewable order, and from there to a federal court of appeals. The same file number threads through every stage.
The crucial structural fact is that a single matter can be a sequence of orders, not one. A litigated proceeding may generate an OIP, an ALJ initial decision, and a Commission opinion, each a separate document under the same file number; a defaulting respondent may draw a default order; and a firm-and-individual matter may be split so that the firm settles while an individual litigates. More importantly, the same underlying conduct often spans both forums: the SEC sues in district court, obtains an injunction announced through a Litigation Release, and then institutes a follow-on administrative proceeding to bar the individual— so the same person legitimately appears once in the litigation-release corpus and again here. This is what makes the dataset analytically rich—an analyst can follow a respondent from court to industry bar—but it is also the source of the most common counting error: treating each order or each release ID as a distinct enforcement action inflates both action counts and any penalty totals, because the same sanction may be recited in the OIP and again in the final order. Resolving orders back to matters, usually by clustering on the shared file number and respondents, is the necessary first step in any rigorous analysis.
Joining to the company registry and the screening lists
The administrative-proceeding table is most valuable not in isolation but as one node in the larger graph of securities-market data, and the respondent is the key that connects it. Three joins matter most.
The first is to the EDGAR company registry. When the respondent is a registered entity—an investment adviser, a broker-dealer, a public issuer in a delinquent-filing revocation—its name in the order can be resolved to a CIK, the Central Index Key EDGAR assigns to every filer, and from there to the entity's registration, industry, and filing history. That resolution is what turns an order from a stand-alone item into an enforcement event attached to a known registrant: it lets an analyst connect a 12(j) revocation to the issuer's last filing, or an adviser bar to the firm's Form ADV history. The match is cleanest for registered firms and issuers and far harder for the many individual respondents—the barred broker, the suspended accountant—who have no EDGAR presence of their own; for those, the registry resolves the firm they were associated with rather than the person.
The second join is to the compliance screening lists. An SEC bar, suspension, or revocation is precisely the kind of adverse regulatory event that due-diligence and onboarding systems exist to surface: a barred broker, a suspended accountant, or a firm under a cease-and-desist order is a red flag for counterparties, employers, and licensing authorities. Joining the administrative proceedings to the broader universe of federal enforcement and exclusion lists—by normalized respondent name—is what lets a screening engine answer “has this person or firm been barred, suspended, or sanctioned by the SEC, and is that bar still in effect?” alongside the other enforcement signals it aggregates. The administrative record is an especially valuable screening input precisely because it is where the industry-disqualifying sanctions live—the bars that determine whether someone may lawfully work in the securities business at all. The third, essential join is to the litigation-release record: because the same matter often runs through both forums, reading the two enforcement streams together is the only way to see the agency's complete output, to connect a court injunction to its follow-on bar, and—post-Jarkesy—to track how penalty-seeking cases have migrated from the in-house forum back into the courts.
Analytical uses
A multi-decade, respondent-named, date-stamped record of the SEC's in-house enforcement supports a distinctive set of analyses that the court-case record alone cannot.
Registrant-discipline tracking is the most distinctive use. Because the administrative forum is where brokers, advisers, and accountants are actually barred and suspended, this dataset is the federal record of professional discipline in the securities industry: which firms and individuals have been excluded, on what grounds, for how long, and whether the bar is permanent or time-limited. Aggregated by respondent type and year, it shows how the intensity of registrant discipline rises and falls and how the mix shifts among broker, adviser, and accountant actions. The accountant and auditor bars under Rule 102(e), read through the AAER stream, are a self-contained record of audit-profession discipline that analysts of audit quality and gatekeeper accountability rely on directly.
Forum-allocation analysis brings the litigation-release join to bear: comparing the administrative and court streams over time—and watching how the boundary moved after Lucia and Jarkesy—is the only way to measure total SEC enforcement and to understand the agency's forum strategy rather than mistaking a shift in venue for a shift in intensity. Delinquent-filer and registration-revocation analysis exploits the 12(j) proceedings to study how the Commission polices the disclosure perimeter and clears dormant shells from the market. And screening and due diligence uses the corpus as a high-signal source of industry-disqualifying events: matching a counterparty's name against the bar-and-suspension record answers whether the SEC has formally excluded them from the securities business, which is among the most material facts a compliance review can establish.
Python workflow: pulling proceedings and searching by respondent
The script below works from the public sec.gov administrative-proceedings listing—the in-house counterpart to the litigation-releases listing—which accepts a year filter and returns the proceedings the Commission acted on in that year. It does three things: tallies the number of proceedings per year over a span (the enforcement-volume metric), classifies a year's proceedings by a coarse respondent-type keyword scheme (the registrant-discipline metric), and searches the listing text for a respondent name (the screening metric). There is no JSON API for the proceedings, but the listing is public and stable; sec.gov requires a descriptive User-Agent header identifying the caller, and the script pauses between requests to stay well within the site's rate expectations. Because the page markup can change, the script isolates the file-number pattern and the listing URL so they are easy to update.
import requests
import re
import time
from collections import Counter
# SEC administrative proceedings are published on sec.gov as a
# year-filtered HTML listing -- the in-house counterpart to the
# litigation-releases listing. There is no JSON API, but the listing is
# public and stable. EDGAR/sec.gov requires a descriptive User-Agent
# identifying the caller; requests without one are throttled or blocked.
# Keep the request rate modest (well under ~10/sec) and pause between
# years.
HEADERS = {"User-Agent": "AI Analytics research info@ai-analytics.org"}
LISTING = "https://www.sec.gov/enforcement-litigation/administrative-proceedings"
# Each proceeding carries an "administrative proceeding file number" of
# the form 3-NNNNN (the "3-" series is the Commission's enforcement
# docket) and links to the order instituting proceedings (the OIP) and
# any subsequent orders as PDFs under /files/litigation/admin/YYYY/.
AP_FILE = re.compile(r"\b3-\d{4,6}\b")
RELEASE = re.compile(r"\b(?:34|IA|IC|AAER)-\d+\b")
TAG = re.compile(r"<[^>]+>")
def fetch_year(year):
# The listing accepts a ?year= filter returning every administrative
# proceeding the Commission instituted or acted on in that year.
params = {"year": year, "month": "All"}
r = requests.get(LISTING, headers=HEADERS, params=params, timeout=60)
r.raise_for_status()
return r.text
def proceedings_in_year(year):
html = fetch_year(year)
text = re.sub(r"\s+", " ", TAG.sub(" ", html))
files = sorted(set(AP_FILE.findall(html)))
return files, text
# --- 1. Proceedings per year --------------------------------------------
def tally_by_year(start, end):
counts = {}
for year in range(start, end + 1):
files, _ = proceedings_in_year(year)
counts[year] = len(files)
print(f"{year}: {len(files):>4} administrative proceedings")
time.sleep(1) # be polite to sec.gov
total = sum(counts.values())
print(f" {start}-{end}: {total:,} proceedings "
f"({total / max(len(counts), 1):.0f}/yr average)")
return counts
# --- 2. Respondent-type mix across a year -------------------------------
# Coarse keyword classification of who the order is against. A rigorous
# version would parse the OIP PDFs and the cited statutory authority.
RESP_TYPES = {
"broker-dealer": ["broker", "broker-dealer", "registered representative"],
"investment adviser": ["investment adviser", "investment advisor"],
"accountant / auditor": ["accountant", "auditor", "Rule 102(e)", "CPA"],
"issuer / delinquent filer": ["delinquent", "revoke", "Section 12(j)"],
"transfer agent / other": ["transfer agent", "municipal advisor"],
}
def respondent_mix(year):
_, text = proceedings_in_year(year)
low = text.lower()
tally = Counter()
for label, needles in RESP_TYPES.items():
tally[label] = sum(low.count(n.lower()) for n in needles)
print(f"\nRespondent-type keyword mix across {year}:")
for label, n in tally.most_common():
print(f" {label:<28} {n:>4}")
return tally
# --- 3. Search the listing text for a respondent name -------------------
def search(name, years):
needle = name.lower()
hits = []
for year in years:
_, text = proceedings_in_year(year)
if needle in text.lower():
hits.append(year)
time.sleep(0.5)
print(f"\n'{name}' appears in the listing for: {hits or 'no year searched'}")
return hits
tally_by_year(2020, 2024)
# print(respondent_mix(2024))
# search("Wells Fargo", [2023, 2024])
Two practical notes apply. First, the per-year tally counts distinct file numbers that appear on the year's listing, which is a proxy, not a census: a single matter can surface across multiple years as it moves from OIP to final order, and the same file number can carry several release IDs, so the trend it produces is a trend in listing activity rather than a clean count of new matters instituted. For a matter-level series, the proceedings must be clustered by file number and de-duplicated across years before counting. Second, the respondent-type classification is deliberately simple keyword counting over stripped HTML; it is a first pass, not a classifier. A production pipeline would parse the structured OIP and order PDFs the listing links to, read the cited statutory authority (which reliably distinguishes a 102(e) accountant action from a 12(j) revocation from a follow-on bar), and resolve respondent names to EDGAR CIKs and to the screening lists rather than relying on free-text matching—the listing scrape is the entry point, not the finished analysis.
Limitations and analytical caveats
The administrative-proceeding corpus is the most complete public record of the SEC's in-house enforcement, but it carries structural limitations that an analyst must internalize before drawing conclusions from it.
An OIP is an allegation; only the final order is a finding.An order instituting a litigated proceeding sets out the Division of Enforcement's allegations, which the respondent has not yet answered and an adjudicator has not yet tested; the matter may be resolved in the respondent's favor, settled, or dismissed. Even in settled matters, the findings are typically entered on consent without the respondent admitting or denying them—a legally consequential posture that an analyst should not silently convert into an admission of guilt. The dataset is reliable as a record of what the Commission charged and what it ordered; whether a litigated allegation was ultimately sustained lives in the final order, and that is the document that must be read.
It is the in-house half, and the forum mix is not constant.Because the SEC brings a large share of its cases in court, the administrative proceedings are a partial view of total enforcement, and the partition between the two forums has shifted with law and policy—most sharply with Jarkesy, which redirected penalty-seeking fraud cases out of the in-house forum and back into the courts. A time series of proceeding counts therefore mixes changes in true enforcement intensity with changes in wherethe agency brings cases. Any longitudinal claim about whether SEC enforcement is rising or falling must account for the litigation-release stream and for the legal events that move cases between forums; the administrative record alone cannot answer it.
Follow-on orders inflate counts, and the docket is heterogeneous.A single matter yields several orders, and a single course of conduct often produces both a court case and a follow-on administrative bar, so naive counting double-counts enforcement and double-counts the sanctions recited across an OIP and its final order. The docket is also deeply heterogeneous: a high-volume Section 12(j) revocation of a dormant shell and a hard-fought litigated fraud order both occupy one row, and treating them as equivalent “enforcement actions” badly distorts any measure of effort or severity. The delinquent-filing revocations in particular are numerous and routine, and they should usually be analyzed separately from the contested, merits-driven proceedings rather than pooled with them.
Name matching is ambiguous, and many respondents are individuals.The join to EDGAR and to the screening lists depends on matching respondent names, and names are messy: a registered firm may appear under a slightly different name than its registry entry, individuals share names, and the many individual respondents—the barred broker, the suspended accountant, the recidivist promoter—have no EDGAR presence of their own. Resolving a respondent to a CIK succeeds for issuers and registered firms far more reliably than for individuals, so any analysis that leans on the EDGAR join is implicitly weighted toward institutional respondents. Name-based screening must use normalized matching with human review, never a raw string compare, to avoid both false positives that smear an innocent namesake and false negatives that miss a respondent named under a variant form.
Held with these caveats in mind, the sec_admin_proceedings table is a uniquely valuable resource: a respondent-named, date-stamped, multi-decade record of the orders the SEC issues in its own forum—roughly 18,400 proceedings through which the broker bars, adviser suspensions, accountant disqualifications, cease-and-desist orders, and delinquent-filer revocations enter the public record, the in-house half of an enforcement program whose court cases tell the rest of the story and whose center of gravity, after Lucia and Jarkesy, has been redrawn around exactly the registrant discipline this dataset has tracked all along.
Related writing
SEC Litigation Releases: The Federal Record of Securities Cases Filed in Court — The litigation releases are the court half of SEC enforcement to this dataset's in-house half, and because the same matter often runs through both forums—a district-court injunction followed by a follow-on administrative bar—reading the two streams together is the only way to see the agency's complete output and how cases moved after Jarkesy.
Compliance Screening Across 30+ Federal Enforcement Lists: How the Risk Score Works — An SEC bar, suspension, or cease-and-desist order is among the highest-signal industry-disqualifying events a compliance review can find, and joining the administrative proceedings by normalized respondent name is exactly how a barred broker or suspended accountant gets surfaced alongside the other federal enforcement and exclusion signals.
SEC EDGAR Company Registry: The Federal Index That Resolves Every Public Company — The registry is what resolves a registered respondent named in an order—an adviser, a broker-dealer, a delinquent issuer—to a CIK, ticker, and industry, turning an administrative order into an enforcement event attached to a known filer and its full filing history.