{
  "study": {
    "slug": "fda-drug-device-recalls-2026",
    "title": "How serious is the average FDA recall? About one in eleven is the most serious tier",
    "standfirst": "Of 56,777 FDA drug and device recalls on file, 5,237 — 9.2%, about one in eleven — carry Class I, the agency's most serious tier, signaling a reasonable probability of serious injury or death. Devices drive 68.9% of recalls; 99.4% are voluntary, company-initiated withdrawals, not FDA-ordered.",
    "desk": "care-quality",
    "article_type": "Original Research",
    "published": "2026-06-14",
    "issue": 71,
    "doi": "10.5072/fonteum/fda-drug-device-recalls-2026",
    "url": "https://fonteum.com/research/fda-drug-device-recalls-2026",
    "methodology_version": "fda-recalls/v1"
  },
  "data_as_of": "2026-06-14",
  "datasets": [
    {
      "slug": "fda-enforcement-reports",
      "name": "FDA Enforcement Reports",
      "publisher": "FDA — Recall Enforcement Reports (openFDA)",
      "upstream_url": null
    }
  ],
  "key_findings": [
    {
      "number": "9.2%",
      "finding": "of all 56,777 FDA drug and device recalls are Class I — the agency's most serious classification, defined as a reasonable probability of serious injury or death. That is 5,237 recalls, about one in eleven",
      "dataset": "fda-enforcement-reports"
    },
    {
      "number": "68.9%",
      "finding": "of recalls are medical devices (39,095), not drugs (17,682, 31.1%) — devices are recalled more than two to one over drugs across the file",
      "dataset": "fda-enforcement-reports"
    },
    {
      "number": "99.4%",
      "finding": "of recalls are voluntary, company-initiated withdrawals; the FDA mandated just 302 (0.5%). Recalls are overwhelmingly self-reported by manufacturers, not agency-ordered",
      "dataset": "fda-enforcement-reports"
    },
    {
      "number": "9.8% vs 9.0%",
      "finding": "drug recalls are marginally more likely to be Class I than device recalls, and far more likely to be lowest-risk Class III (9.6% vs 2.6%); device recalls cluster in mid-severity Class II (88.4%)",
      "dataset": "fda-enforcement-reports"
    }
  ],
  "faqs": [
    {
      "q": "How many FDA drug and device recalls are there, and how serious are they?",
      "a": "The dataset holds 56,777 FDA drug and device recalls. Of those, 5,237 — 9.2%, about one in eleven — are Class I, the agency's most serious classification, which the FDA defines as a reasonable probability that the product will cause serious adverse health consequences or death. The large majority, 48,820 recalls (86.0%), are mid-severity Class II, and 2,720 (4.8%) are lowest-risk Class III."
    },
    {
      "q": "Are most FDA recalls drugs or medical devices?",
      "a": "Devices, by more than two to one. Medical devices account for 39,095 recalls (68.9%) and drugs for 17,682 (31.1%). The split partly reflects how the two product families are regulated: a single device design change or software fix can trigger a recall across many models and lots, so device recalls accumulate faster than drug recalls."
    },
    {
      "q": "Does the FDA order recalls, or do companies issue them?",
      "a": "Almost always the company. 56,430 of the 56,777 recalls (99.4%) are recorded as voluntary, firm-initiated withdrawals, while only 302 (0.5%) are marked FDA-mandated. That reflects the law as much as company behavior — the FDA's authority to compel a recall is narrow and recent for devices and rarely used for drugs, so the standard route is a manufacturer pulling the product itself."
    },
    {
      "q": "Are drug recalls more serious than device recalls?",
      "a": "They are slightly more likely to be the most serious and far more likely to be the least serious. 9.8% of drug recalls are Class I versus 9.0% of device recalls, and 9.6% of drug recalls are lowest-risk Class III versus just 2.6% of device recalls. Device recalls concentrate in mid-severity Class II (88.4%), where a defect is documented but the risk of serious harm is judged remote."
    },
    {
      "q": "Why are recalls listed for a product that was never dangerous?",
      "a": "A recall is a correction or removal, not a verdict that anyone was harmed. Class II and Class III recalls — 90.8% of the file — cover problems like a labeling error, a packaging defect, or an out-of-specification result where the FDA judged the chance of serious harm remote or unlikely. The classification records the agency's risk assessment at the time of the action, not an outcome."
    },
    {
      "q": "Can I reproduce these recall figures?",
      "a": "Yes. Every figure aggregates the public fda_enforcement_reports table (56,777 rows, openFDA recall enforcement data) by classification, product_kind, and voluntary_mandated. The exact SQL — the severity split, the device-versus-drug counts, the per-product class mix, and the voluntary share — is published in the reproducibility block below. No recalling firm is named or ranked."
    }
  ],
  "citation": {
    "apa": "Fonteum Research. (2026, June 14). How serious is the average FDA recall? About one in eleven is the most serious tier. Fonteum Research, Issue 71. https://doi.org/10.5072/fonteum/fda-drug-device-recalls-2026",
    "url": "https://fonteum.com/research/fda-drug-device-recalls-2026"
  },
  "reproducible_sql": "-- FDA drug & device recall severity — fully reproducible query.\n--\n-- Question: when the FDA pulls a drug or a medical device, how serious is it\n-- usually? We measure, over every recall enforcement record on file, the share\n-- that carries each FDA classification (Class I = most serious, a reasonable\n-- probability of serious injury or death; Class II = mid-severity; Class III =\n-- least serious), the device-vs-drug split, the per-product class mix, the\n-- voluntary-vs-mandated share, and recall volume by year.\n--\n-- Source:\n--   public.fda_enforcement_reports — FDA recall enforcement reports via\n--     openFDA (drug + device enforcement endpoints). One row per recall\n--     enforcement record. 56,777 rows; public, read-only.\n--     License: US-Government-Works (17 U.S.C. §105).\n--\n-- Universe: every row. No suppression, no sampling. A single recall event can\n--   span many models/lots, and one event can generate several records, so the\n--   unit is the recall record, not a product, a lot, or a patient.\n--\n-- Snapshot: figures are point-in-time to the 2026-06-14 openFDA snapshot\n--   (max report_date 2026-06-03). The file is updated continuously and recalls\n--   are reclassified/terminated over time, so the bands shift between snapshots.\n\n-- ============================================================================\n-- (1) Headline: severity split across all recalls.\n--     Class I share (9.2%) is the lead figure.\n-- ============================================================================\nSELECT classification,\n       count(*)                                            AS recalls,\n       round(100.0 * count(*) / sum(count(*)) OVER (), 1)  AS share_pct\nFROM public.fda_enforcement_reports\nGROUP BY classification\nORDER BY recalls DESC;\n--  Class II    48,820   86.0\n--  Class I      5,237    9.2   <- most serious; ~1 in 11 recalls\n--  Class III    2,720    4.8\n\n-- ============================================================================\n-- (2) Device vs drug split, with per-product class mix.\n-- ============================================================================\nSELECT product_kind,\n       count(*)                                                          AS recalls,\n       round(100.0 * count(*) / sum(count(*)) OVER (), 1)                AS share_pct,\n       count(*) FILTER (WHERE classification = 'Class I')                AS class1,\n       round(100.0 * count(*) FILTER (WHERE classification = 'Class I')\n             / count(*), 1)                                              AS class1_pct,\n       count(*) FILTER (WHERE classification = 'Class II')               AS class2,\n       round(100.0 * count(*) FILTER (WHERE classification = 'Class II')\n             / count(*), 1)                                              AS class2_pct,\n       count(*) FILTER (WHERE classification = 'Class III')              AS class3,\n       round(100.0 * count(*) FILTER (WHERE classification = 'Class III')\n             / count(*), 1)                                              AS class3_pct\nFROM public.fda_enforcement_reports\nGROUP BY product_kind\nORDER BY recalls DESC;\n--  device  39,095  68.9  | I 3,510 (9.0)  II 34,560 (88.4)  III 1,025 (2.6)\n--  drug    17,682  31.1  | I 1,727 (9.8)  II 14,260 (80.6)  III 1,695 (9.6)\n\n-- ============================================================================\n-- (3) Voluntary vs FDA-mandated.\n-- ============================================================================\nSELECT\n  count(*)                                                            AS recalls,\n  count(*) FILTER (WHERE voluntary_mandated ILIKE 'Voluntary%')       AS voluntary,\n  round(100.0 * count(*) FILTER (WHERE voluntary_mandated ILIKE 'Voluntary%')\n        / count(*), 1)                                                AS voluntary_pct,\n  count(*) FILTER (WHERE voluntary_mandated ILIKE '%mandated%')       AS mandated,\n  round(100.0 * count(*) FILTER (WHERE voluntary_mandated ILIKE '%mandated%')\n        / count(*), 1)                                                AS mandated_pct,\n  count(DISTINCT firm_name_normalized)                               AS distinct_firms\nFROM public.fda_enforcement_reports;\n--  recalls 56,777 · voluntary 56,430 (99.4%) · mandated 302 (0.5%)\n--  distinct_firms 4,204   (45 records carry neither label cleanly)\n\n-- ============================================================================\n-- (4) Recall volume by year (full calendar years 2015-2025).\n--     2026 excluded as a partial year; pre-2012 is < 0.8% of the file.\n-- ============================================================================\nSELECT date_part('year', recall_initiation_date)::int             AS yr,\n       count(*)                                                   AS recalls,\n       count(*) FILTER (WHERE classification = 'Class I')         AS class1,\n       count(*) FILTER (WHERE product_kind = 'drug')              AS drugs,\n       count(*) FILTER (WHERE product_kind = 'device')            AS devices\nFROM public.fda_enforcement_reports\nWHERE recall_initiation_date >= '2015-01-01'\n  AND recall_initiation_date <  '2026-01-01'\nGROUP BY 1\nORDER BY 1;\n--  2015 4,640 / I 202 / drug 1,733 / device 2,907\n--  2016 4,228 / I 175 / drug 1,199 / device 3,029\n--  2017 4,454 / I 203 / drug 1,141 / device 3,313\n--  2018 4,694 / I 652 / drug 1,681 / device 3,013\n--  2019 4,798 / I 418 / drug 1,788 / device 3,010\n--  2020 3,532 / I 287 / drug   930 / device 2,602\n--  2021 3,412 / I 295 / drug 1,152 / device 2,260\n--  2022 3,667 / I 275 / drug 1,391 / device 2,276\n--  2023 3,723 / I 670 / drug 1,122 / device 2,601\n--  2024 3,832 / I 384 / drug   557 / device 3,275\n--  2025 3,608 / I 422 / drug   778 / device 2,830\n\n-- ============================================================================\n-- (5) Reason themes by product kind (keyword match; categories OVERLAP — the\n--     reason field is free text, so a recall can match more than one bucket).\n--     Directional signal only, not a partition.\n-- ============================================================================\nWITH r AS (\n  SELECT product_kind, lower(reason_for_recall) AS rsn\n  FROM public.fda_enforcement_reports\n)\nSELECT product_kind,\n  count(*) FILTER (WHERE rsn ~ 'contaminat|microbial|steril|bacteria|fungal|mold|particulate|foreign') AS contamination_sterility,\n  count(*) FILTER (WHERE rsn ~ 'label|mislabel|incorrect.*label|packag')                                AS labeling_packaging,\n  count(*) FILTER (WHERE rsn ~ 'specification|out of spec|potency|subpotent|superpotent|assay|impurit|dissolution|stability|degrad') AS specs_potency,\n  count(*) FILTER (WHERE rsn ~ 'software|malfunction|defective|failure|fail to|may fail|component')      AS device_defect,\n  count(*) FILTER (WHERE rsn ~ 'cgmp|gmp|manufactur|process')                                            AS manufacturing,\n  count(*)                                                                                               AS total\nFROM r\nGROUP BY product_kind\nORDER BY total DESC;\n--  device | contam 7,839 · label 7,461 · specs 2,494 · defect 6,300 · mfg 5,229 · total 39,095\n--  drug   | contam 9,226 · label 2,569 · specs 3,613 · defect   517 · mfg 5,134 · total 17,682\n\n-- ============================================================================\n-- (6) Universe reconciliation — totals over the published file.\n-- ============================================================================\nSELECT\n  count(*)                                                        AS total_rows,\n  count(*) FILTER (WHERE product_kind = 'drug')                   AS drug_rows,\n  count(*) FILTER (WHERE product_kind = 'device')                 AS device_rows,\n  count(DISTINCT firm_name_normalized)                            AS distinct_firms,\n  count(*) FILTER (WHERE recall_initiation_date >= '2012-01-01')  AS y2012plus,\n  min(recall_initiation_date)                                     AS earliest,\n  max(recall_initiation_date)                                     AS latest\nFROM public.fda_enforcement_reports;\n--  total_rows 56,777 · drug 17,682 · device 39,095 · firms 4,204\n--  y2012plus 56,321 (99.2%) · earliest 1930-12-11 (single outlier) · latest 2026-05-18",
  "license": "U.S. Government Works (federal sources; 17 U.S.C. §105)",
  "generated_by": "Fonteum — https://fonteum.com",
  "notes": "Aggregate, source-traced figures frozen to the snapshot above. Reproduce by running reproducible_sql against the cited federal dataset; no per-entity records are included."
}
