Methodology
Last updated: 2026-05-21
Product Recall Tracker aggregates 78,569 product safety recalls from three federal agencies. This page explains exactly how we collect, normalize, classify, and present that data — so you can judge for yourself how reliable each field is.
Data sources
CPSC — Consumer Product Safety Commission
We use the CPSC's public Recalls.csv dataset from the Saferproducts.gov Publicly Available Consumer Product Safety Information Database (SPDB). Each row contains the recall title, date, summary description, and repair number. The dataset goes back to 1973 and covers consumer products: toys, furniture, appliances, electronics, sporting goods, children's products, and more.
FDA — Food and Drug Administration
We use the openFDA API — specifically drug/event.json — to ingest drug adverse event reports. Each record represents a single safety signal: a patient, prescriber, or manufacturer reporting a reaction to a medication. A single adverse event report does not constitute a formal recall, but recurring patterns inform FDA enforcement action. We re-import the latest 20,000 events on each refresh.
USDA — Food Safety and Inspection Service (FSIS)
We use the FSIS recall API (fsis.usda.gov/fsis/api/recall/v/1) to ingest meat, poultry, and processed egg recalls. Records include the title, description (HTML), recall date, year, establishment, and PDF label links. The dataset covers public health alerts (PHAs) and formal recalls.
Refresh cadence
Our ingest pipeline runs daily. New recalls typically appear in our index within 24 hours of being published by the source agency. The "last updated" date in the footer reflects the most recent successful sync.
How we normalize records
Each agency uses a different schema. We normalize to a shared format with these fields:
- id —
{source}-{originalId}(e.g.cpsc-26472) - title — verbatim from the agency notice
- brandName / brandSlug — extracted heuristically (see below)
- category / categoryLabel — classified via keyword rules (see below)
- hazard — detected via keyword match on title+description (fire, choking, electrical, foodborne, etc.)
- severity — one of
critical,high,medium,standard - recallDate / year — ISO date and calendar year
- unitsAffected — estimated from the description, or a sensible default per source
- description — sanitized HTML or plain text from the source
Brand extraction
For CPSC recalls, the brand is not a structured field — it's part of the title. We extract the brand by matching common patterns like "BrandName Recalls...", "BrandName Offers...", or by falling back to the first two words of the title. This is imperfect; corrections are always welcome (see Contact).
For FDA records, the brand is the medicinalproduct field. For USDA records, the brand is the field_establishment field.
Category classification
Because CPSC does not assign categories, we apply a 20-rule keyword matcher to the recall title + description. The first rule that matches wins. Categories include:
- Children's Products — cribs, strollers, toys-for-kids, car seats…
- Toys — dolls, action figures, building sets, plush…
- Furniture — dressers, beds, tables, sofas…
- Appliances / Small Appliances — refrigerators, microwaves, toasters, vacuums…
- Electronics — laptops, phones, headphones, monitors…
- Batteries & Power — lithium-ion batteries, chargers, power banks…
- Tools & Hardware — power tools, ladders, generators…
- Outdoor & Yard — mowers, grills, fire pits, patio furniture…
- Sporting Goods — bicycles, helmets, fitness equipment…
- Plus apparel/jewelry, home decor, pool/spa, safety/security, pet products, auto accessories
Anything that doesn't match falls back to Consumer Products. FDA records default to Drugs; USDA records default to Food.
Severity scoring
Severity is derived from keyword signals and unit counts:
- Critical — death, fatality, fire, burn, or "do not use/drive" language detected
- High — serious injury, hospitalization, amputation, or 100,000+ units affected
- Medium — injury possible, 10,000+ units affected
- Standard — everything else
This scoring is heuristic. The official severity for any recall comes from the issuing agency's own language — read the recall description and follow the agency's guidance.
Limitations & caveats
- FDA data is adverse events, not formal recalls — a record indicates a safety signal, not a confirmed product defect.
- CPSC unit counts are estimates — we parse phrases like "about 5 million" from the summary text; if the description doesn't state a count, we use a 50,000 default.
- Brand matching can be wrong — title patterns vary; please report errors.
- We don't issue recalls — we re-index public data. For official recall instructions, contact the manufacturer or the issuing agency.
Open data
All of our source data is public domain. Our ingest scripts are kept in-house but the data we display is sourced directly and verifiable against the agencies' own published feeds. If you need raw recall data, use the agency sources directly:
Reporting corrections
Found a wrong brand, mismatched category, or stale entry? Email corrections@productrecalltracker.com with the recall ID and what looks off. We process these on a rolling basis.