Somewhere on a trading desk, an order flashes onto the book and vanishes a few milliseconds later, never meant to be filled—a feint to push the price the trader's real order will profit from. Years later that flicker becomes a line in a federal complaint. The Commodity Futures Trading Commission's Division of Enforcement is the agency that turns the conduct of the derivatives markets—the spoofing, the benchmark rigging, the Ponzi schemes dressed up as commodity pools, and now the collapse of crypto exchanges—into civil cases, and its public enforcement record is the register of those actions: roughly 4,400 enforcement actions and press records, each naming a respondent, an alleged violation of the Commodity Exchange Act, a date, and the money the government sought to claw back.
This article covers what the CFTC enforcement record is and how the Commodity Exchange Act frames it; what the CFTC actually regulates—futures, options, and the swaps it inherited from the 2008 crisis—and how Dodd-Frank reshaped its mandate; the difference between an administrative order and a federal-court complaint, and what each implies; the recurring eras of CFTC enforcement, from benchmark manipulation through the spoofing prosecutions that Dodd-Frank's explicit anti-spoofing provision made possible; the digital-asset cases and the contested boundary between the CFTC and the SEC over whether a crypto token is a commodity or a security; the monetary relief the agency recovers and what civil penalties, disgorgement, and restitution each mean; how the record joins to other market-regulator enforcement data and to the CFTC's own market-positioning data; a Python workflow that pulls the actions from cftc.gov and tallies them by year and violation type while ranking respondents by recovered relief; and the caveats—a dataset derived from press releases, parsed dollar figures, and the limits of name matching—that every analyst must internalize before drawing conclusions.
What the dataset is
The Commodity Futures Trading Commission (CFTC) is the independent federal agency that regulates the United States derivatives markets. When its Division of Enforcement charges a person or firm with breaking the law it administers, it announces the action—and, when the matter resolves, the outcome—in a public press release and an entry in its enforcement-actions listing at cftc.gov. Taken together, these announcements form the public record of CFTC enforcement: who was charged, with what, when, in what forum, and for how much. This dataset is a structured capture of that record, comprising roughly 4,400 enforcement actions and press records keyed by the action and the respondent.
In our database this record is stored as the table cftc_actions, with the grain of one row per enforcement action and respondent: a single sweep that charges a dozen related defendants can contribute several rows, and a respondent charged in two separate matters appears twice. It is distinct from the CFTC's Commitments of Traders data, which reports aggregate market positioning rather than enforcement—a different CFTC dataset entirely. The columns capture who was charged, in what forum, for what conduct, when, and with what financial consequence:
respondent -- the charged party (firm or individual)
action_type -- administrative order or federal-court complaint
release_date -- date the action was announced / filed
docket_or_release -- docket number or press-release identifier
title -- the headline summarizing the action
summary -- narrative description of the alleged conduct
violation -- the alleged violation (spoofing, manipulation,
fraud, registration, reporting) under the CEA
statute_cited -- the Commodity Exchange Act section(s) charged
civil_penalty -- civil monetary penalty imposed (where recorded)
disgorgement -- ill-gotten gains ordered returned
restitution -- amounts ordered repaid to harmed customers
status -- filed, settled, litigating, or resolvedThree groups of fields do most of the work. Identity and forum—the respondent and the action_type—answer who was charged and where, the administrative-versus-federal-court distinction that the next section unpacks. Conduct—the title, summary, violation, and statute cited—answer what the party allegedly did and under which provision of the Commodity Exchange Act. And consequence—the civil penalty, disgorgement, and restitution, plus the release_date and status—answer how much the government sought, of what kind, and how the matter stands. Because the conduct is often described in free text rather than a clean coded field, the violation category is frequently something an analyst must derive from the release text, which is exactly what the Python workflow later in this article does.
What it is and the CFTC regulatory frame
The CFTC was created by the Commodity Futures Trading Commission Act of 1974, which established it as an independent agency and gave it authority over the trading of commodity futures and options in the United States. The substantive law it enforces is the Commodity Exchange Act (CEA), the statute—rooted in earlier grain-futures legislation—that governs the derivatives markets and prohibits fraud, manipulation, and other abuses in them. Before 1974, oversight of futures was lodged in the Department of Agriculture and focused narrowly on agricultural commodities; the 1974 Act consolidated that authority in a dedicated commission and extended it across the full range of commodities traded on the futures exchanges. The basic theory of the agency has remained constant ever since: the derivatives markets perform an essential economic function—letting producers, consumers, and financial firms hedge and discover prices—and that function depends on the markets being free of fraud and manipulation, which is the integrity the CFTC exists to police.
For its first three and a half decades the CFTC regulated principally the exchange-traded derivatives—futures and options on futures bought and sold on organized exchanges. The vast world of over-the-counter swaps—privately negotiated contracts on interest rates, credit, currencies, and commodities—sat largely outside its reach, a gap that the 2008 financial crisis exposed catastrophically when the failure of opaque, interconnected swap positions threatened the financial system. The response was the Dodd-Frank Wall Street Reform and Consumer Protection Act of 2010, which substantially expanded the CFTC's mandate by bringing the swaps markets under comprehensive federal regulation for the first time: it required standardized swaps to be cleared and traded on regulated platforms, mandated reporting of swap transactions to data repositories, created registration regimes for swap dealers and major swap participants, and—crucial for enforcement—strengthened the CFTC's anti-fraud and anti-manipulation authority and added an explicit prohibition on disruptive trading practices. Dodd-Frank is the reason the modern enforcement record reaches so far beyond the exchange floor.
The work of bringing cases falls to the Division of Enforcement, the CFTC's litigating arm. It investigates suspected violations of the CEA and the Commission's regulations—through subpoenas, document production, testimony, and referrals from exchanges, self-regulatory bodies, and whistleblowers—and it recommends that the Commission authorize charges. Because the CFTC is a civil regulator, its actions seek civil remedies—monetary penalties, disgorgement, restitution, trading bans, and injunctions—rather than imprisonment; criminal prosecution of the same conduct is the province of the Department of Justice, with which the CFTC frequently coordinates on parallel proceedings. The enforcement record this dataset captures is therefore the civil half of derivatives-market policing, and its existence as a public, announced record reflects a deliberate choice: the deterrent value of an enforcement action depends on the market knowing it happened.
Administrative orders versus federal-court complaints
The single most important structural distinction in the dataset—the one the action_type field captures—is the forum in which the CFTC brings a case. The agency has two principal routes, and which it chooses shapes the procedure, the speed, and what the record looks like.
An administrative order is an action brought within the agency itself rather than in court. The overwhelming majority of administrative actions are settled orders: the respondent, without admitting or denying the findings, consents to an order in which the Commission makes findings of fact, concludes that the CEA was violated, and imposes remedies—a civil penalty, disgorgement, restitution, and often a trading or registration ban. Settled administrative orders are how most CFTC matters actually end, because they resolve the case quickly and certainly for both sides. The record of a settled order is therefore unusually complete: it typically states the conduct, the violated provisions, and the precise monetary terms in one document, which is why so much of the dollar information in the dataset comes from administrative orders.
A federal-court complaint is a civil enforcement action the CFTC files in a United States district court, typically when the matter is contested, when the agency seeks remedies a court is better placed to grant (such as emergency asset freezes and receiverships in fraud cases), or when the respondent will not settle. Court actions can produce consent judgments—the litigation equivalent of a settled order, entered by the court—or, when fully litigated, findings after trial. The distinction matters analytically for two reasons. First, the timing differs: an administrative order usually appears as a single resolved event, while a court complaint is filed first and resolved later, so the same matter can generate a charging announcement and, much later, a resolution announcement—a subtlety any year-over-year count must handle. Second, the monetary figures behave differently: a settled order states the final numbers, whereas a freshly filed complaint states what the CFTC is seeking, which may not be what is ultimately recovered. Reading the action type is the first step in knowing whether a dollar figure in a record is an outcome or an ask.
The eras of enforcement: manipulation and spoofing
CFTC enforcement is not a uniform stream; it comes in recognizable waves, each tied to a kind of market abuse that the agency—often with new statutory tools—turns its attention to. Two of those waves dominate the modern record: benchmark manipulation and spoofing.
Benchmark manipulation produced some of the largest enforcement actions in the agency's history. Financial benchmarks—reference rates and prices that countless contracts settle against—are only trustworthy if the inputs that set them are honest. In the years after the financial crisis, the CFTC, alongside other regulators around the world, pursued the manipulation of the London Interbank Offered Rate (LIBOR) and related interest-rate benchmarks, charging major banks whose traders had submitted false rate quotes to benefit their own derivatives positions, and later pursued the manipulation of foreign-exchange (FX) benchmark rates. These cases established two things that echo through the rest of the record: that the CFTC would reach the conduct of the largest financial institutions, and that benchmark manipulation could command penalties of a scale—hundreds of millions of dollars per institution—that put market integrity enforcement on the front page. They are also the archetype of the manipulation and false-reporting category that the dataset's violation field tries to capture.
Spoofing defines the second great wave, and it is the clearest illustration of how a statutory change reshapes the enforcement record. Spoofing is the practice of placing orders one intends to cancel before execution—creating a false impression of supply or demand to move the price in a direction that profits the trader's genuine, opposite order. It is a species of manipulation, but proving it under the older, general anti-manipulation standard was notoriously hard. Dodd-Frank changed that by adding an explicit anti-spoofing provision to the Commodity Exchange Act, defining spoofing as bidding or offering with the intent to cancel before execution and making it a distinct, directly chargeable offense. That provision unlocked a sustained run of spoofing prosecutions—against individual traders, proprietary trading firms, and the trading desks of major banks—and made spoofing one of the most recognizable categories in the modern enforcement record. Because spoofing leaves a precise forensic trail in order-book data, these cases also marked the CFTC's turn toward data-driven surveillance, where statistical patterns in message traffic, not just tips, generate the leads.
Digital assets and the boundary with the SEC
The fastest-growing category in the contemporary record—and the most legally contested—is digital assets. The CFTC's entry into this space rests on a foundational classification: it treats Bitcoin and many other crypto tokens as commodities, which brings them, and the derivatives written on them, within the Commodity Exchange Act and so within the CFTC's anti-fraud and anti-manipulation authority. On that basis the agency has pursued a broad set of digital-asset matters—outright fraud and Ponzi schemes denominated in crypto, manipulation of crypto markets, the operation of unregistered derivatives platforms, and major actions against large crypto exchanges and prominent actors in the market.
What makes this category contentious is the jurisdictional boundary with the Securities and Exchange Commission. The CFTC and the SEC have long shared—and sometimes contested—the line between commodities and securities, a boundary that runs through products like security futures and that the rise of crypto has thrown into sharp relief. Whether a given token is a commodity (the CFTC's domain) or a security (the SEC's domain, under the investment-contract analysis that descends from the Supreme Court's Howey decision) can determine which agency regulates its issuance and trading, what disclosure rules apply, and which enforcer's rules a platform must satisfy. The two agencies have at times charged the same conduct under their respective statutes, and the unsettled, asset-by-asset nature of the classification is a defining feature of the digital-asset enforcement landscape. For the dataset this has a concrete consequence: a crypto matter in cftc_actions may have a counterpart in the SEC's enforcement record, and a complete picture of how the government polices a given token or platform often requires reading both. The same crypto conduct can also generate a parallel criminal case—fraud, wire fraud, or money-laundering charges—brought by the Department of Justice, so a single collapse can ripple across three federal enforcement records at once.
Monetary relief: penalties, disgorgement, and restitution
The dollar figures in the enforcement record are not interchangeable; the CFTC imposes several distinct kinds of monetary relief, and they answer different questions. Distinguishing them is essential to any analysis that ranks respondents or totals recoveries by year.
A civil monetary penalty is the punitive and deterrent component—a fine paid to the government for violating the law. Its size is calibrated to the gravity of the conduct and, in the largest cases, can run to hundreds of millions or more. Disgorgement is the remedial component aimed at the wrongdoer's gain: it strips the respondent of the ill-gotten profits the violation produced, on the principle that no one should keep the fruits of unlawful conduct, regardless of whether a penalty is also imposed. Restitution is the victim-facing component: it orders the respondent to repay the customers or counterparties who were harmed, returning money to the people who lost it rather than to the Treasury. A single order in a large fraud case can include all three—a penalty to punish, disgorgement to disgorge the gain, and restitution to make victims whole—and totaling them naively can double-count, because disgorgement and restitution can overlap in what they are recovering.
Two practical cautions follow for anyone working with the money fields. First, an ordered amount is not a collected amount: a court or the Commission may order a fraudster to pay tens of millions in restitution, but if the money has vanished, little may ever be recovered—the record states the judgment, not the recovery. Second, in a freshly filed federal-court complaint the figure is what the agency seeks, not what it has obtained, so mixing charging announcements and settlements in a single dollar total compares asks to outcomes. The cleanest analyses separate settled orders from filed complaints and treat each kind of monetary relief as its own quantity rather than collapsing them into a single headline number.
Joining to other enforcement and market data
The CFTC enforcement record is most valuable as one facet of a broader market-integrity picture, and the respondent name—supplemented, where available, by entity identifiers—is the key that links it outward. Three joins matter most.
The first is to other market-regulator enforcement records. The same banks, trading firms, and individuals appear across the enforcement files of multiple agencies—the SEC's actions on the securities side, the self-regulatory bodies that police the exchanges, and the bank regulators—so a respondent in cftc_actionscan frequently be matched to a counterpart action elsewhere. This is exactly the crypto situation described above, where a CFTC commodity-manipulation matter and an SEC securities-fraud matter address the same conduct from two statutory angles. Assembling a cross-regulator view of a given party's enforcement history is one of the most powerful uses of the data, and it depends on careful entity resolution across name and identifier fields rather than naive string matching.
The second join is to the CFTC's own market data, chiefly the Commitments of Traders reports that describe how positions are distributed across categories of traders in the futures markets. Enforcement tells you who broke the rules; positioning data describes the market structure in which they did it. The two are distinct datasets—the enforcement record is keyed by action and respondent, the Commitments of Traders by market and reporting date—but read together they let an analyst situate a manipulation or spoofing case in the market it occurred in. The third, broader join is to the federal exclusion and contracting records: a serious CFTC enforcement matter, like other integrity findings, can feed into the broader ecosystem of who is barred or scrutinized across federal programs, and a compliance screen that aggregates enforcement lists will treat a CFTC action as one signal among many about a counterparty's risk.
Analytical uses
A structured, dated, respondent-resolved record of derivatives-market enforcement supports a distinctive set of analyses that no single press release reveals.
Enforcement intensity over time is the most immediate use. Counting actions by year—and separating administrative orders from court complaints—traces how the agency's activity rises and falls, and overlaying the count with the violation mix shows the eras described above: the post-crisis benchmark wave, the spoofing run that followed Dodd-Frank, and the recent surge of digital-asset cases. The necessary caution, developed in the caveats, is that a year-over-year count is sensitive to how charging announcements and resolutions are de-duplicated.
Violation-mix analysis exploits the conduct described in each record. Classifying actions into spoofing, manipulation, fraud, registration, reporting, and digital-asset categories—largely a text-classification task, since the conduct is described in prose—reveals where enforcement attention concentrates and how that focus migrates as new abuses emerge and new tools arrive. Monetary-relief ranking is the analysis the Python workflow demonstrates: ranking respondents and years by recovered penalties, disgorgement, and restitution shows where the largest recoveries land and which kinds of conduct command the heaviest financial consequences. Finally, repeat-respondent and cross-regulator analysis uses the respondent field to surface parties that recur across CFTC matters or across the enforcement records of several agencies—the firms and individuals whose names appear again and again, which is both a fraud signal and a measure of how the regulators' attention clusters.
Python workflow: actions, violation types, and relief from cftc.gov
The script below pulls the CFTC's enforcement actions and press records from cftc.gov, tallies them by year and by violation type, and ranks respondents by the largest monetary relief it can recover from the release text. No API key is required. The CFTC does not publish a JSON API for these announcements—the press releases and enforcement actions live as paginated HTML pages—so the script fetches those listing pages and parses the titles, dates, and links out of the markup. Because the conduct—and often the dollar figures—live in free-text titles and summaries rather than clean coded fields, the script classifies the violation by keyword and parses dollar amounts with a regular expression; both are deliberately coarse first passes, and any serious use should validate the classification against the cited statute and confirm dollar figures against the underlying orders. The listing path and the extraction patterns shift between site releases, so they are isolated at the top rather than hard-coded.
import requests, re
import pandas as pd
from collections import Counter
# CFTC enforcement actions and press releases -- published as HTML at
# cftc.gov. No API key is required, and the CFTC does NOT expose a JSON
# API for these: the press releases live at /PressRoom/PressReleases and
# the enforcement actions at /LawRegulation/EnforcementActions, both as
# paginated HTML pages. This script fetches those listing pages and
# parses the titles, dates, and links out of the markup. Because the
# page template shifts between site releases, the listing URL and the
# extraction patterns are isolated here rather than hard-coded deep in
# the logic.
#
# This script:
# 1. Pulls press-release / enforcement listing pages page by page
# 2. Tallies actions by year
# 3. Tallies actions by alleged violation type (keyword classified)
# 4. Ranks respondents by total monetary relief where a dollar
# figure is recoverable from the headline text
LISTING = "https://www.cftc.gov/PressRoom/PressReleases"
# Each listing row renders roughly as:
# <a href="/PressRoom/PressReleases/9011-24">Title ...</a> ... 04/28/2026
ITEM = re.compile(
r'href="(/PressRoom/PressReleases/[^"]+)"[^>]*>(.*?)</a>', re.I | re.S)
DATE = re.compile(r"(\d{2})/(\d{2})/(\d{4})")
TAG = re.compile(r"<[^>]+>")
def fetch(pages=40):
rows = []
seen = set()
for p in range(pages):
r = requests.get(LISTING, params={"page": p}, timeout=120,
headers={"User-Agent": "research-script"})
if r.status_code != 200:
break
html = r.text
found = ITEM.findall(html)
if not found:
break
# Date strings appear in document order; zip them to the links.
dates = DATE.findall(html)
for i, (href, raw_title) in enumerate(found):
if href in seen:
continue
seen.add(href)
title = TAG.sub("", raw_title).strip()
d = dates[i] if i < len(dates) else None
rows.append({
"href": href,
"title": title,
"date": ("{}-{}-{}".format(d[2], d[0], d[1]) if d else None),
})
return pd.DataFrame(rows)
# Keyword map from headline text to a coarse violation category.
VIOLATION = {
"spoofing": ["spoof", "spoofing"],
"manipulation": ["manipulat", "benchmark", "libor", "false report"],
"fraud": ["fraud", "ponzi", "misappropriat", "deceiv"],
"digital_asset": ["digital asset", "bitcoin", "crypto", "token", "ether"],
"registration": ["unregistered", "failure to register", "registration"],
"reporting": ["recordkeeping", "supervision", "failure to report"],
}
def classify(text):
t = (text or "").lower()
for label, needles in VIOLATION.items():
if any(n in t for n in needles):
return label
return "other"
# Pull a dollar figure (penalty / disgorgement / restitution) from text.
MONEY = re.compile(r"\\$\\s?([0-9][0-9,]*(?:\\.[0-9]+)?)\\s*(million|billion)?", re.I)
def relief(text):
best = 0.0
for amt, scale in MONEY.findall(text or ""):
val = float(amt.replace(",", ""))
if scale and scale.lower() == "million":
val *= 1_000_000
elif scale and scale.lower() == "billion":
val *= 1_000_000_000
best = max(best, val)
return best
df = fetch()
print(f"Records loaded: {len(df):,}")
# --- 1. Actions by year ------------------------------------------------
years = pd.to_datetime(df["date"], errors="coerce").dt.year
print("\nActions by year:")
for y, n in years.value_counts().sort_index().items():
print(f" {int(y)} {n:>4,}")
# --- 2. Actions by violation type --------------------------------------
cats = Counter(classify(t) for t in df["title"])
print("\nActions by violation type:")
for label, n in cats.most_common():
print(f" {label:<14} {n:>5,}")
# --- 3. Respondents ranked by recovered monetary relief ----------------
# (Headlines often carry the dollar figure; the full order has the rest.)
df["_relief"] = [relief(t) for t in df["title"]]
top = df.sort_values("_relief", ascending=False).head(10)
print("\nLargest monetary relief parsed from headline text:")
for _, row in top.iterrows():
print(f" ${row['_relief']:>16,.0f} {str(row['title'])[:54]}")
Two things about this script deserve emphasis. First, the keyword-based violation classification is a starting point, not a system of record—a release mentioning “manipulation” in passing while charging a registration failure will be misclassified, and a matter charging several distinct violations collapses to a single label. A rigorous classification reads the statute cited and, ideally, the order itself, treating the keyword pass as a triage step that flags records for review. Second, and more important, the monetary parsing is the most fragile part: pulling the largest dollar figure from a release headline conflates penalties, disgorgement, and restitution, picks up amounts that are merely sought in a filed complaint rather than recovered, and can latch onto an unrelated figure such as a victim's loss. The parsed numbers are useful for ranking and rough scale, not for authoritative totals; for those, the individual orders, and the CFTC's own enforcement summaries, are the proper source.
Limitations and analytical caveats
The CFTC enforcement record is the most comprehensive public account of derivatives-market enforcement available, but it carries structural limitations that an analyst must internalize before drawing conclusions—or, worse, before quoting a total.
It is a press-release-derived dataset. The record is assembled from the CFTC's announcements and enforcement-actions listing, which are communications written to summarize matters for the public, not normalized database rows. The consequence is that key analytic fields—the precise violation, the breakdown of monetary relief, the respondent's exact legal name—are often embedded in prose rather than populated as clean attributes, so deriving them requires text processing that introduces its own error. The authoritative version of any single matter is the underlying order or complaint; the dataset is the index to those documents, not a substitute for them.
Parsed dollar figures are approximate and easy to misread.For the reasons set out above, a dollar amount extracted from release text may be a penalty, disgorgement, restitution, an aggregate, or an amount merely sought; it may be ordered but never collected; and totaling across records risks double-counting overlapping remedies. Any headline recovery number built by summing parsed figures should be treated as an order-of-magnitude estimate and reconciled against the CFTC's own published enforcement totals before it is relied on.
Counting actions is harder than it looks. A single matter can generate more than one record—a charging announcement when a federal-court complaint is filed and a separate resolution announcement when it settles—while a single sweep can name many respondents. Whether the right unit of analysis is the matter, the announcement, or the respondent depends on the question, and a year-over-year count that does not consciously choose and de-duplicate will mix them. The same de-duplication problem afflicts cross-agency joins, where the same conduct appears in multiple enforcement records.
Name matching is treacherous, and the record is civil.Respondent names are free text—trading firms restructure and rename, individuals appear with and without middle initials, and common firm names collide—so any join to another dataset on name alone generates false matches that must be adjudicated against addresses, identifiers, and dockets. And the dataset records civil enforcement: the absence of a party from cftc_actions does not mean it was never investigated, charged criminally, or sanctioned by another regulator, and the presence of an action—especially a settled order entered without admission—is the resolution the parties agreed to, not a criminal adjudication. Reading more into a record than its forum and remedy support over-reads what the data can bear.
Held with these caveats in mind, the cftc_actions table is a uniquely valuable resource: roughly 4,400 enforcement actions and press records that trace, respondent by respondent and year by year, how the United States has policed the integrity of its derivatives markets—from the benchmark scandals of the post-crisis years through the spoofing prosecutions Dodd-Frank made possible to the crypto cases now redrawing the boundary between two federal regulators—the civil enforcement record that turns market abuse into an accountable, searchable account.
Related writing
CFTC Commitments of Traders: The Federal Database Behind Futures Market Positioning — The CFTC's other great public dataset: where the enforcement record names who broke the rules, the Commitments of Traders reports describe the positioning of the futures markets in which manipulation and spoofing occur, and the two read together situate a case in its market.
Compliance Screening Across 30+ Federal Enforcement Lists: How the Risk Score Works — A serious CFTC enforcement action is one signal among many in counterparty due diligence, and the risk score shows how a derivatives-market matter folds into a multi-list screen across the federal enforcement and exclusion records.
FTC Enforcement: The Federal Record of Consumer-Protection and Antitrust Actions — A parallel press-release-derived enforcement record from a different market regulator, with the same analytic shape—respondent, conduct, forum, and relief—and the same caveats about parsing dollar figures and counting actions out of agency announcements.