Technical writing

The recall record: what the CPSC product safety database shows and what manufacturers hide

· 12 min read· AI Analytics
Regulatory dataCPSCProduct safetyConsumer protectionRecalls

The Consumer Product Safety Commission has published a structured database of more than 9,800 product recalls dating to 1973. The database is public, bulk-downloadable, and largely ignored by everyone except product liability lawyers and the occasional investigative reporter. It documents fires, electrocutions, child strangulations, and carbon monoxide poisonings—but the field that most reveals the system's design is one that rarely appears in press releases: the return rate. On average, manufacturers recover between 10 and 30 percent of recalled units. The other 70 to 90 percent remain in circulation.

The agency and its authority

Congress created the Consumer Product Safety Commission in 1972 under the Consumer Product Safety Act, consolidating product-safety authority that had been scattered across the Food and Drug Administration, the Federal Trade Commission, and the Department of Commerce. The CPSC covers roughly 15,000 categories of consumer products sold in the United States—everything from power tools and furniture to children's toys, household chemicals, and recreational equipment. It explicitly does not cover automobiles (NHTSA), food (FDA/USDA), drugs (FDA), or alcohol and tobacco (TTB/ATF).

The agency's primary enforcement mechanism is the recall, authorized under Section 15 of the Consumer Product Safety Act (15 U.S.C. § 2064). That section requires any manufacturer, distributor, or retailer that obtains information reasonably supporting the conclusion that a product contains a defect which could create a substantial product hazard to immediately inform the Commission. The operative word is “voluntary”: the company reports, the agency investigates, and the parties negotiate a corrective action plan. Mandatory recalls exist in theory under Section 15(d) but are vanishingly rare in practice—CPSC staff estimate that more than 95 percent of recalls are conducted voluntarily under Section 15(b) and (c).

The implication is structural. The company that designed the product, sourced its components, and set its quality controls is also the entity that negotiates the hazard description, the affected unit count, the remedy type, and the press release language with CPSC staff. The agency can reject proposed language or demand a broader scope, but the back-and-forth happens before anything is made public. What appears on recalls.gov is the negotiated outcome, not an independent agency finding.

Dataset structure and access

CPSC publishes its recall data through three complementary access points. The main consumer-facing interface is recalls.gov, a joint portal with NHTSA, FDA, and USDA that aggregates recalls across agencies. For CPSC-specific bulk access, the canonical sources are:

  • Bulk download — CSV and JSON files available at cpsc.gov/recalls/recalls-data. The full dataset exports as a single CSV covering all recalls from 1974 to the present. The file is updated quarterly. As of mid-2026, it runs to approximately 9,800 rows.
  • Legacy API — The CPSC product search API at https://www.cpsc.gov/cgi-bin/prod.aspx accepts query parameters for product description, manufacturer name, recall date range, and hazard type. It returns XML and supports pagination via RecallNumber as a cursor. This endpoint predates modern REST conventions but remains functional.
  • SaferProducts.gov API — A separate but related dataset: consumer-submitted incident reports at saferproducts.gov, also bulk-downloadable. This is the pre-recall signal: incidents that have been reported but have not yet resulted in a formal recall action.

Key fields in the recall record

The bulk CSV schema has remained broadly stable since CPSC modernized its public data infrastructure in 2011. Fields relevant to substantive analysis:

  • RecallNumber — CPSC-assigned identifier, format YY-NNN(two-digit year, sequential number within that year). Unique per recall action. Use this as the join key when linking to CPSC press release archives.
  • RecallDate — the date the recall was publicly announced. Not the date the company first notified CPSC, which may be weeks or months earlier. The negotiation lag between initial notification and public announcement is not published in the dataset.
  • Name / ProductDescription — the product name and description as negotiated in the press release. These fields are free text and not normalized; a single manufacturer may appear under multiple name variants across recalls.
  • Manufacturer / ManufacturerCountry — the responsible entity. Manufacturer country is analytically useful: Chinese-manufactured products account for a growing share of recalls, particularly in electronics and children's products.
  • Units — units involved in the recall. This is one of the most negotiated fields in the dataset. Manufacturers have an incentive to minimize the stated unit count; CPSC staff push back based on sales records and import data. The published number reflects the agreed estimate, which may differ materially from actual units sold.
  • Hazard — free-text hazard description. CPSC uses a taxonomy internally, but the published field maps loosely to it. Common values include “Fire/Burn Hazard,” “Fall Hazard,” “Tip-Over Hazard,” “Laceration Hazard,” “Entrapment Hazard,” “Choking Hazard,” and “Carbon Monoxide Hazard.”
  • Remedy — what the manufacturer is offering consumers: refund, replacement, repair, or (in some cases) a voucher. The remedy type matters for measuring recall effectiveness: cash refunds have substantially higher redemption rates than repair programs, which require the consumer to ship or carry the product to a service center.
  • Incidents / Injuries / Deaths — counts of reported incidents, injuries, and fatalities associated with the hazard. These fields are frequently empty or set to zero even when incidents are documented, because “no reports of injuries” language in press releases is often negotiated as a condition of the voluntary cooperation that produces the recall.
  • ProductTypes — CPSC's internal product category classification, returned as a semicolon-delimited list. More reliable for taxonomic analysis than the free-text ProductDescription.

The voluntary recall system

Section 15 of the Consumer Product Safety Act (15 U.S.C. § 2064) establishes the framework. Under subsection (b), a manufacturer, distributor, or retailer that obtains information indicating a substantial product hazard must report that information to the CPSC “immediately”—defined in regulation as within 24 hours of obtaining that information. In practice, the reporting obligation is routinely not triggered until a company's legal team determines that the accumulated incident reports cross the regulatory threshold, a determination that often takes months.

Once a report is filed, CPSC staff open a preliminary investigation and initiate what the agency calls a “fast track” or “voluntary corrective action” process. The company agrees to conduct a recall in exchange for CPSC refraining from initiating a formal Section 15(d) mandatory recall proceeding. The terms of that corrective action—scope, remedy, communication plan, and crucially the press release text—are negotiated between the company's representatives and CPSC staff.

The negotiation produces specific linguistic outcomes that are visible in the data. A company facing a fire hazard caused by a design defect in a switching power supply may ultimately agree to language that says the product “can overheat,” omitting that overheating was caused by components sourced below specification. The hazard description that appears in the recall record and the database is the agreed-upon version.

Section 6(a) of the CPSA (15 U.S.C. § 2055(a)) provides the statutory basis for this confidentiality. It prohibits CPSC from publicly disclosing information that would identify a manufacturer or private labeler, or that contains trade secrets or confidential commercial information, without the company's consent. Pre-recall incident reports submitted to CPSC through Section 15 reporting are protected under this provision. The database you can download shows you the post-negotiation summary; the underlying incident reports, CPSC staff analyses, and negotiation communications are not public.

The 15 USC 2055(a) gap versus FDA MedWatch

The gap between what CPSC makes public and what it holds is best understood by comparison with the FDA's MedWatch system. FDA receives adverse event reports for drugs, medical devices, and dietary supplements and makes them public through MAUDE (Manufacturer and User Facility Device Experience) and the FDA Adverse Event Reporting System (FAERS). While both systems have limitations, individual adverse event narratives are publicly accessible for medical devices within 30 days of receipt, and drug adverse events are available in quarterly bulk exports. Researchers can examine the pre-regulatory signal: what reports came in before the agency took action.

Under 15 U.S.C. § 2055(a), CPSC cannot do the equivalent without manufacturer consent. A company that files a Section 15 report acknowledging a potential substantial product hazard is entitled to keep that report confidential. The public record consists of the recall announcement only—the press release summary, the product description, the stated hazard, the remedy. The incident reports that triggered the recall, the internal company analyses, and the negotiation record are all protected.

FOIA requests to CPSC for pre-recall incident reports are routinely denied under 5 U.S.C. § 552(b)(3), which covers information specifically exempted by statute—in this case, Section 6(a) of the CPSA. The SaferProducts.gov consumer report database is a partial workaround: consumers who directly submit reports to CPSC's public portal consent to public disclosure, and those reports are accessible. But they represent only the subset of incident information that came through the consumer-facing portal rather than through manufacturer Section 15 reports.

Recall effectiveness data

CPSC publishes periodic recall effectiveness studies that are among the most revealing documents the agency produces. The most comprehensive is the 2021 Recall Effectiveness Study, which analyzed return rates across a sample of major recalls. The headline finding: median unit return rates cluster between 10 and 30 percent for most product categories.

The variance is significant and instructive:

  • High-value durable goods (appliances, power tools, riding mowers) tend to achieve 40–60% return rates. Consumers are motivated to act when the product is expensive and the remedy is a refund.
  • Children's products with a clear safety hazard and a repair remedy that can be performed at home reach 25–40%. The population of parents who purchased an item for an infant three years ago and still have the original product is limited; the recall finds a depleted base.
  • Small consumables and accessories—phone chargers, extension cords, portable power banks—routinely achieve return rates below 10%. The product is low-cost, the consumer may not associate the brand with the hazard, and the effort of returning a $12 item exceeds the perceived benefit.
  • Repair-based remedies systematically underperform refund or replacement remedies by 10 to 20 percentage points. The friction of scheduling a service appointment or shipping a product suppresses participation even when the hazard is acknowledged.

The effectiveness data is not included in the main recalls database. CPSC publishes return rate information in a separate dataset available at cpsc.gov/Recalls/Recall-Effectiveness, but coverage is incomplete—only recalls above a certain unit threshold receive formal effectiveness tracking. For smaller recalls, no return rate data is publicly available.

Hazard taxonomy

CPSC uses a formal hazard taxonomy internally that maps to seven primary categories visible in the public data:

  • Fire/Burn Hazard — the largest single category by volume and the most rapidly growing. Includes overheating electronics, flammable materials in upholstered furniture, and—increasingly—lithium-ion battery thermal runaway events. Fire/burn recalls accelerated materially after 2015 as lithium battery penetration in consumer electronics and e-mobility products expanded.
  • Tip-Over Hazard — furniture and storage units that can tip forward when a drawer is opened or weight is applied to the face. This category is dominated by dressers, bookshelves, and clothing storage. The Ikea Malm dresser recalls (2016, involving 29 million units across North America) are the largest by unit count in the database. Pottery Barn, IKEA, and Z Gallerie have each appeared multiple times in this category.
  • Entrapment/Strangulation Hazard — predominantly children's products: window blind cords, crib slats, sleep product spacing, and wearable items with drawstrings. The window blind cord category alone has generated more than 200 recall actions in the database.
  • Laceration Hazard — blades, broken glass, sharp plastic edges. Common in kitchen appliances, power tools, and children's toys that fail to maintain structural integrity under normal use.
  • Choking Hazard — small parts that detach or are accessible in products intended for children under three. CPSC's small parts regulation (16 C.F.R. Part 1501) sets the testing standard; recalls in this category typically involve products that were not adequately tested against it or that fail under use conditions the test did not anticipate.
  • Carbon Monoxide Hazard — generators, gas-powered tools, and heating equipment. This category is relatively small by volume but produces a disproportionate share of fatalities. CO poisonings from portable generators run during power outages account for approximately 70 deaths per year in the United States; a substantial fraction involve products subject to prior recall.
  • Lead/Chemical Hazard — excessive heavy metals or toxic chemicals in paint, surface coatings, or product composition. Heavily concentrated in children's jewelry, imported toys, and fidget products.

Notable data patterns

Three macro-trends are legible in a decade-level view of the dataset.

The furniture tip-over epidemic. CPSC data shows a sustained upward trend in furniture tip-over recalls from 2010 onward. The proximate cause is a combination of retailer consolidation around a small number of manufacturers that favor tall, lightweight case goods, and consumer purchasing patterns that favor large-format storage in smaller spaces. The 2016 Ikea Malm action—29 million units, the largest furniture recall in CPSC history—was preceded by three children's deaths and a CPSC investigation that began in 2014. The gap between the first documented incident and the recall announcement is visible in the data as a difference between RecallDate and the dates of underlying incidents in the SaferProducts.gov companion database, which can be queried to surface pre-recall incident accumulation.

Lithium battery recall acceleration. Fire/burn recalls attributable to lithium-ion or lithium polymer batteries increased from fewer than 50 per year in 2015 to more than 200 per year by 2024. The product categories driving this shift: e-bikes and e-scooters, hoverboards (whose 2015–2016 recall wave produced the first major concentrated action), power banks and portable chargers, earbuds with integrated batteries, and most recently entry-level electric vehicle charging equipment. The CPSC has published a dedicated lithium battery recall tracker on its website, but the raw incident data is not fully separated by battery type in the bulk CSV—it must be filtered from the free-text Hazard field.

Children's sleep product market. The infant sleep product category has undergone a significant regulatory restructuring since 2021. The Safe Sleep for Babies Act, enacted in May 2022, banned inclined sleepers (products that hold infants at an angle greater than ten degrees) and crib bumpers outright. The law followed a series of recalls and documented infant deaths linked primarily to the Fisher-Price Rock 'n Play Sleeper (recalled in 2019, involving more than 4.7 million units) and similar inclined-sleep products. The Rock 'n Play recall generated one of the largest “Deaths” field values in the database for a single recall action: CPSC documented 32 infant deaths associated with the product before the recall was announced, with subsequent reporting suggesting the number exceeded 90 by the time CPSC conducted its public investigation.

Python analysis: fire hazard trends with manufacturer EDGAR cross-reference

The following workflow loads the CPSC bulk CSV, isolates fire and burn hazard recalls, computes a year-over-year trend, and joins the manufacturer list against SEC EDGAR company filings to identify publicly traded companies with recurring recall exposure.

import pandas as pd
import requests
from io import StringIO

# 1. Load the CPSC bulk CSV
url = "https://www.cpsc.gov/recalls/recalls-data"
# Download the CSV from the bulk data page; filename varies by quarter
# Here we assume a local copy at recalls.csv
df = pd.read_csv("recalls.csv", parse_dates=["RecallDate"])

# 2. Normalize the Hazard field and filter to fire/burn
df["hazard_lower"] = df["Hazard"].str.lower().fillna("")
fire = df[
    df["hazard_lower"].str.contains("fire|burn|overheat|ignit", regex=True)
].copy()

# 3. Year-over-year trend
fire["year"] = fire["RecallDate"].dt.year
annual = (
    fire.groupby("year")
    .agg(
        recall_count=("RecallNumber", "count"),
        total_units=("Units", "sum"),
        deaths=("Deaths", "sum"),
        injuries=("Injuries", "sum"),
    )
    .reset_index()
)
annual["yoy_recall_pct"] = annual["recall_count"].pct_change() * 100
print(annual.tail(10).to_string(index=False))

# 4. Cross-reference with SEC EDGAR full-text search
# EDGAR company search: https://efts.sec.gov/LATEST/search-index?q="product+recall"&dateRange=custom&startdt=2024-01-01&enddt=2024-12-31&forms=10-K
def search_edgar(company_name):
    q = company_name.split()[0]  # first token for fuzzy match
    resp = requests.get(
        "https://efts.sec.gov/LATEST/search-index",
        params={"q": f'"{company_name}"', "forms": "10-K,8-K"},
        timeout=10,
    )
    return resp.json().get("hits", {}).get("hits", [])

# Get top fire-recall manufacturers by unit count
top_mfrs = (
    fire.groupby("Manufacturer")["Units"]
    .sum()
    .sort_values(ascending=False)
    .head(20)
    .index.tolist()
)

edgar_hits = {}
for mfr in top_mfrs:
    hits = search_edgar(mfr)
    if hits:
        edgar_hits[mfr] = hits[0]["_source"].get("period_of_report", "")

print("Manufacturers with EDGAR filings:")
for mfr, period in edgar_hits.items():
    print(f"  {mfr}: {period}")

The EDGAR cross-reference is useful for disclosure analysis: SEC requires publicly traded companies to disclose material product liability events in 10-K filings under Item 3 (Legal Proceedings) and 8-K filings for material events. Comparing the recall record against EDGAR filings surfaces cases where a recall was not disclosed in SEC filings as a material event, or where the units or hazard description in the SEC filing differs from the CPSC database. That discrepancy is itself an investigative signal.

SaferProducts.gov as a companion dataset

SaferProducts.gov receives consumer-submitted incident reports under Section 6A of the CPSA (added by the Consumer Product Safety Improvement Act of 2008). Unlike the Section 15 reporting pipeline—where manufacturer-submitted reports are confidential under 15 U.S.C. § 2055(a)—reports submitted directly by consumers through the public portal are disclosed after a brief review period. The database is available in bulk at saferproducts.gov/DownloadReports.

SaferProducts.gov records include product name, product category, brand, date of incident, a free-text incident description, injury type, and victim age group. The data is messy: product names are consumer-entered free text, brand matching requires normalization, and incident descriptions vary from detailed narratives to single-sentence summaries. But the dataset contains something the recalls database does not—the pre-recall incident accumulation signal.

A productive analytical pattern: for a product that was subsequently recalled, pull the SaferProducts.gov incident records in the 12 to 24 months preceding the RecallDate. The number of reported incidents, their severity, and the consistency of their descriptions reveal how long the hazard was documented before the recall was announced. For products with high pre-recall incident counts and low injury severity disclosures in the final recall press release, the gap between what was known and what was admitted is visible in the data.

Cross-agency joins

Several cross-agency join opportunities are worth flagging for researchers and journalists:

NHTSA RECALLS database. The National Highway Traffic Safety Administration operates a parallel recall system for motor vehicles and vehicle equipment (tires, child car seats, motorcycle helmets). Products that straddle the CPSC/NHTSA boundary—primarily child car seats and off-road recreational vehicles—may appear in both databases under different recall numbers and hazard descriptions. NHTSA data is available at api.nhtsa.gov/recalls/recallsByVehicle. Join on product name and manufacturer to find cross-agency overlap.

FDA enforcement actions. Consumer products that contain food, drugs, or medical devices fall under FDA jurisdiction. However, the boundary is porous: a countertop water purifier might be regulated as a consumer product by CPSC or as a medical device by FDA depending on its claims. FDA's enforcement action database is available through the openFDA API at api.fda.gov/food/enforcement.json and covers food recalls, drug recalls, and biologics enforcement. For investigative purposes, querying both CPSC and FDA for the same company name frequently surfaces parallel actions that neither agency cross-references in its public database.

OSHA workplace injury data. Consumer products that cause injuries in workplace settings may generate both a CPSC recall and an OSHA inspection record. OSHA's enforcement data is available at enforcedata.dol.gov. The OSHA IMIS (Integrated Management Information System) case data includes industry code, establishment name, inspection type, and violation details. Joining OSHA inspection records to CPSC recall records by manufacturer name and approximate date produces cases where a workplace injury from a product preceded the consumer recall by months or years.

What the API returns and what it omits

The CPSC product search API at https://www.cpsc.gov/cgi-bin/prod.aspx accepts the following query parameters:

# Search by product keyword and date range
GET https://www.cpsc.gov/cgi-bin/prod.aspx
  ?recordType=RECALL
  &keyword=lithium+battery
  &beginDate=2022-01-01
  &endDate=2024-12-31
  &pageSize=50
  &pageNumber=1

# Response is XML; relevant elements:
# <RecallNumber>    -- YYNNN format
# <RecallDate>      -- ISO 8601
# <Name>            -- product name
# <Manufacturer>    -- manufacturer name
# <Units>           -- unit count
# <Hazard>          -- hazard description
# <Remedy>          -- remedy type
# <Incidents>       -- incident count
# <Injuries>        -- injury count
# <Deaths>          -- death count

The API does not expose the underlying CPSC case file number, the date of the initial manufacturer report to CPSC, the number of Section 15 reports filed before the recall was announced, the names of CPSC staff involved in the negotiation, or the content of any pre-announcement communications. All of those are subject to 15 U.S.C. § 2055(a) and must be requested via FOIA—where they are denied under FOIA Exemption 3 (information specifically exempted by statute).

The practical consequence for journalists: the CPSC database accurately documents what was recalled, when, and how many units. It does not document what the company knew before the recall, how long it took them to file, whether the reported incident count understates the actual incident count, or what remedies were proposed and rejected during negotiation. Those questions require sources beyond the public dataset.

Limitations and researcher notes

Several known data quality issues are worth flagging before building automated pipelines on this dataset:

Units field inconsistency. The Unitsfield is stated as a number but represents an estimate, not a count. For some recalls, CPSC publishes “approximately” language in the press release that is not reflected in the numeric field. Unit counts for recalls involving retail-channel products are particularly unreliable because they depend on retailer sell-through estimates that manufacturers provide and CPSC cannot independently verify.

Incidents/Injuries/Deaths underreporting. These fields are populated from the content of the press release. A press release that says “no reports of injuries” will produce a zero in the field even if CPSC's internal file contains incident reports. The SaferProducts.gov companion dataset often shows nonzero incident counts for the same product and time period. The ratio between the CPSC-published incident count and the SaferProducts incident count is itself a data point about how conservatively the manufacturer negotiated the press release.

Manufacturer name normalization. The same legal entity may appear under its parent name, subsidiary name, importer name, or trade name across different recalls. A company that rebrands after a major recall will not automatically appear as the same manufacturer in subsequent records. Entity resolution against SEC EDGAR or state corporate registries is recommended before any manufacturer-level aggregation.

Related writing

For the STOCK Act congressional trading dataset — how scanned House Clerk PDFs become structured data, and what the disclosures reveal about committee-linked trading around legislation: Trading on the inside: using STOCK Act filings to track congressional stock transactions →

The asylum lottery: what EOIR data reveals about judge-by-judge grant rate disparities — Another DOJ agency where bulk data exposes a structural gap between stated policy and measured outcomes — asylum grant rates ranging from 5% to 90%+ for applicants of identical nationality.

Repetitive loss: what FEMA's flood insurance claims data reveals about 2.7 million paid claims — Another federal dataset where the gap between what is publicly documented and what the agency knows internally is structural—and where the public data still reveals patterns that policy documents obscure.

The gun dealer map: what ATF's Federal Firearms Licensee data shows and what it hides — A parallel case study in how statutory confidentiality provisions shape what federal enforcement databases make public, and what investigative pathways remain open despite them.